MySQL: एक उपयोगकर्ता बनाना जो कई मेजबानों से जुड़ सकता है


30

मैं MySQL का उपयोग कर रहा हूं और मुझे एक खाता बनाने की आवश्यकता है जो या तो लोकलहोस्ट से या किसी अन्य सर्वर से कनेक्ट कर सकता है, अर्थात 10.1.1.1। तो मैं कर रहा हूँ:

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'bob'@'10.1.1.1' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE on MyDatabse.* to 'bob'@'localhost', 'bob'@'10.1.1.1';

यह ठीक काम करता है, लेकिन क्या एक उपयोगकर्ता खाता बनाने के लिए और अधिक सुरुचिपूर्ण तरीका है जो कई आईपी से जुड़ा हुआ है या इसे इस तरह से करने की आवश्यकता है?

मेरी मुख्य चिंता यह है कि भविष्य में, अनुमतियाँ एक 'बॉब' खाते के लिए अपडेट की जाएंगी, लेकिन दूसरी नहीं।

जवाबों:


20

यदि आप होस्ट करने के लिए प्रतिबंधित करना चाहते हैं और सबनेट या वाइल्डकार्ड के आधार पर निर्दिष्ट नहीं करना चाहते हैं %, तो यह एकमात्र तरीका है। अधिक विवरण MySQL प्रलेखन में उपलब्ध हैं ।

मैं अभी भी ओवरहेड को खत्म करने के तरीकों को खोजने की कोशिश कर रहा हूं जब बड़े MySQL प्रतिष्ठानों के लिए प्रमाणीकरण का प्रबंधन और अभी तक एक सही समाधान खोजने के लिए है।


8

आइए, MySQL शेल के भीतर एक नया उपयोगकर्ता "चमिंडा" बनाकर शुरू करें:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

पहली बात यह है कि उपयोगकर्ता को आवश्यक अनुमति प्रदान करना है और यहां मैंने विशेष उपयोगकर्ता को सभी अनुमति दी हैं।

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

सभी विशेषाधिकार पुनः लोड करें।

FLUSH PRIVILEGES;

यदि आप 10.1.1% के रूप में एक विशेष उपयोगकर्ता के उपयोग के लिए आईपी की सीमा की अनुमति देना चाहते हैं।

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';

नोट: यहाँ होस्ट नाम =% है और इसका मतलब है कि आप किसी भी होस्ट से इस डेटाबेस सर्वर का उपयोग कर सकते हैं। उपयोगकर्ता को सभी विशेषाधिकार प्रदान करना एक बड़ा जोखिम है और यह एक सर्वोत्तम अभ्यास नहीं है। इसके अलावा आप 'chaminda' को 'bob' में बदल सकते हैं।


5
इस सवाल का जवाब नहीं है। यह सभी IP से उपयोगकर्ता तक पहुँच प्रदान करता है, लेकिन OP, IP के सूची में से एकल उपयोगकर्ता को डेटाबेस तक पहुँचने की अनुमति देने के बारे में अधिक सुरुचिपूर्ण तरीके से पूछ रहा है। मूल रूप से, कई IP से कई बार उपयोगकर्ता को जोड़ने के लिए कई कथनों के बजाय, विचार एक एकल उपयोगकर्ता को जोड़ने का है जो डेटाबेस को कई IP से एक्सेस कर सकता है, जो प्रबंधन को आसान और कम त्रुटि वाला बनाता है।
एंथनी

आप 100.199 से मेल खाने के लिए 10.1.1.1__ जैसे वाइल्डकार्ड के रूप में _ का भी उपयोग कर सकते हैं, लेकिन 200 के लिए आपको एक अलग खाता बनाने या% वाइल्डकार्ड का उपयोग करने की आवश्यकता है और इसमें 0-99 और 201-255 भी शामिल हैं
चामिंडा बंदारा

-3

MySQL एक पंक्ति में कई वाइल्डकार्ड की अनुमति देता है। उपयोगकर्ता के Bobलिए होस्ट सेट करने के लिए एक संभावित समाधान है

locahost/10.1.1.1

संदर्भ:

http://dev.mysql.com/doc/refman/5.1/en/connection-access.html


वह नहीं है जो दस्तावेज कह रहा है। जैसा कि तालिका में सूचीबद्ध है, /255.255.255.0 एक नेटमास्क है। यदि होस्ट परिभाषा में कई वाइल्डकार्ड को सूचीबद्ध करने का एक तरीका है, तो वह ऐसा करने का तरीका नहीं है।
मेजिकमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.