2012-04-17 10 views
41

मुझे मौजूदा अमेज़ॅन आरडीएस उदाहरण पर सीमित अनुमति के साथ एक नया MySQL उपयोगकर्ता बनाने की आवश्यकता है। कुछ त्रुटि संदेशों का सामना करने के बाद मैं आधिकारिक MySQL व्यवस्थापक उपकरण का उपयोग करके ऐसा करने में सक्षम था और उपयोगकर्ता अब सूची में दिखाई देता है। हालांकि, मैं किसी भी स्कीमा विशेषाधिकारों को असाइन करने में असमर्थ हूं क्योंकि सभी उपयोगकर्ता गले से बाहर हैं। उदाहरण के लॉन्च होने पर मैं "मास्टर उपयोगकर्ता" के रूप में लॉग इन हूं। कुछ निश्चित नहीं कि यहाँ से कहाँ जाना है। मेरे पास आरडीएस कमांड लाइन टूल्स स्थापित हैं लेकिन वहां कुछ भी ट्रैक करने में सक्षम नहीं था। विचारअमेज़ॅन आरडीएस पर्यावरण में एक नया MySQL उपयोगकर्ता बनाना

उत्तर

39

आपकी सबसे अच्छी शर्त शायद एक mysql कमांड लाइन क्लाइंट के साथ डेटाबेस से कनेक्ट करने के लिए है और SQL उपयोगकर्ता को एक नया उपयोगकर्ता बनाने और उसे विशेषाधिकार असाइन करने के लिए कॉल करें।

उदाहरण के लिए, आप कुछ इस तरह चला सकता है:

mysql -u [your_master_username] -p -h YOURRDSENDPOINT.rds.amazonaws.com 

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword'; 
GRANT SELECT ON [your_database].[some_table] TO 'jeffrey'@'%'; 

खिड़कियों पर आप mysql.exe ग्राहक इस्तेमाल कर सकते हैं, जहाँ भी है।

उपयोगी डॉक्स

एडब्ल्यूएस आरडीएस सुरक्षा समूहों प्रलेखन (भ्रम का एक सामान्य क्षेत्र): http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithSecurityGroups.html

उपयोगकर्ता निर्माण प्रलेखन: http://dev.mysql.com/doc/refman/5.5/en/create-user.html

विशेषाधिकार देने प्रलेखन: http://dev.mysql.com/doc/refman/5.5/en/grant.html

+0

बस एक प्रश्न। चूंकि मेजबान YOURRDSENDPOINT.rds.amazonaws.com है, स्थानीयहोस्ट कार्यों के लिए विशेषाधिकार प्रदान करता है? मैं सफलता के बिना थोड़ी देर के लिए ऐसा करने की कोशिश कर रहा हूं – nightgaunt

+0

यह सिर्फ एक उदाहरण के रूप में प्रदान किया गया था, मैं वाइल्डकार्ड होस्टनाम का उपयोग करने के लिए उत्तर अपडेट करूंगा। – andebauchery

7

मैं था MySQL वर्कबेंच का उपयोग करके सबसे अधिक सफलता और आरडीएस के खिलाफ कच्चे एसक्यूएल निष्पादित:

CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password'; 

बड़ी समस्या अनुमति थी। शुरू में मैंने कोशिश की:

Grant ALL on *.* to 'foo'@'localhost' 

... जिसके परिणामस्वरूप एक्सेस अस्वीकृत त्रुटि हुई।

Error Code: 1045. Access denied for user 'foo'@'%' (using password: YES) 

परेशानी की अनुमति "सुपर" है जो आरडीएस मुझे नहीं देती है, और बदले में मैं अनुदान नहीं दे सकता। नतीजतन, मैं हाथ से अटक कर अनुमतियों हूँ:

Grant SELECT on *.* to 'foo'@'localhost'; 
Grant INSERT on *.* to 'foo'@'localhost'; 
Grant CREATE on *.* to 'foo'@'localhost'; 
+3

यदि आप अपनेडेटाबेस पर सभी को अनुदान देते हैं। * 'Foo' @ 'localhost' के लिए आपको और अधिक सफलता मिल सकती है। * सिस्टम डेटाबेस (स्कीमा) शामिल होगा। – Mike

+0

'अनुदान पर लाभ *। * TO' foo '@' localhost '' rds mariadb पर परीक्षण किया गया, मुझे लगता है कि MySQL समान होना चाहिए। [अमेज़ॅन आरडीएस पर MySQL] देखें (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html) – Leonmax

5

मैं MySQL कार्यक्षेत्र का इस्तेमाल किया है और यह ठीक काम करता है। बस प्रबंधन/उपयोगकर्ता और विशेषाधिकार पर जाएं, नीचे "खाता जोड़ें" बटन दबाएं, और कॉन्फ़िगर करें। आप सुपर विशेषाधिकार नहीं दे सकते हैं, लेकिन शेष

14

मुझे पता है कि यह धागा दो साल पुराना है और अच्छी तरह से मैं इसे ढूंढ रहा हूं इसलिए मैं एडब्ल्यूएस आरडीएस और उपयोगकर्ता अनुमतियों के बारे में एक अपडेट प्राप्त करना चाहता था।

आप आरडीएस वाले किसी भी उपयोगकर्ता के लिए GRANT ALL का उपयोग नहीं कर सकते। जब आप GRANT ALL कथन का उपयोग करते हैं तो आप Global (जैसे एडब्ल्यूएस उन्हें Super Permissions कहते हैं) प्रदान करने का प्रयास कर रहे हैं और जिस तरह से एडब्ल्यूएस आरडीएस सिस्टम स्थापित है, वे उपयोगकर्ताओं को वैश्विक विकल्पों को असाइन करने की अनुमति नहीं देते हैं।

GRANT SELECT,INSERT,UPDATE,DELETE,DROP on

यह आपके उपयोगकर्ता आरडीएस से कनेक्ट करने के लिए एक बार सुरक्षा सेटिंग्स अपने EC2 उदाहरण से उपयोग की अनुमति के लिए सेट हैं सक्षम होने के लिए अनुमति देगा:

आप निम्न करने के लिए अनुमतियां बाहर तोड़ करने के लिए है या इंटरनेट से।

आशा है कि यह जानकारी किसी अन्य व्यक्ति की सहायता करेगी जो मैं एडब्ल्यूएस आरडीएस सिस्टम के साथ देख रहा था।

वाल्डो

+0

अच्छी व्याख्या, चीयर्स। – dkanejs

+0

यह मुझे भी बचाता है। मैं पूरी तरह से निराश था क्यों 'ग्रांट ऑल' के बाद मैं अभी भी कनेक्ट करने में असमर्थ हूं। अब यह स्पष्ट है। –

+0

अच्छा बिंदु! 'ALL' के लिए आपको प्राप्त होने में त्रुटि है:' ERROR 1045 (28000): उपयोगकर्ता के रूट '@'% '(पासवर्ड का उपयोग करके: YES)' – crollywood

5

मैं इस तरह बनाया:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'somepassword'; 
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'localhost'; 

लेकिन फिर भी, एडब्ल्यूएस है कि उपयोगकर्ता के लिए लॉग इन करने के लिए खारिज कर दिया। और मैंने व्यवस्थापक विशेषाधिकारों को बदलने की कोशिश की, लेकिन सफलता नहीं। और मैं mysql workbench के माध्यम से 'localhost' को '%' में बदलें। (या आप उपयोगकर्ता को हटा सकते हैं और फिर से बना सकते हैं) जैसे:

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword'; 
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'%'; 

तब केवल मैं इस नए उपयोगकर्ता के माध्यम से लॉग इन करने में सक्षम था।

संबंधित मुद्दे