Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में डेटाबेस पर सभी विशेषाधिकार कैसे प्रदान करें

MySQL में विशेषाधिकारों का संपादन शुरू करने के लिए, आपको पहले अपने सर्वर में लॉग इन करना होगा और फिर mysql से कनेक्ट करना होगा ग्राहक। आमतौर पर आप root . से जुड़ना चाहेंगे या जो भी खाता आपका प्राथमिक, प्रारंभिक 'सुपर उपयोगकर्ता' खाता है, जिसकी संपूर्ण MySQL स्थापना में पूर्ण पहुंच है।

आमतौर पर root जब MySQL स्थापित किया गया था, तब उपयोगकर्ता को एक प्रमाणीकरण पासवर्ड सौंपा गया होगा, लेकिन यदि ऐसा नहीं है, तो आपको root जोड़कर अपनी सुरक्षा के लिए कदम उठाने चाहिए। पासवर्ड जैसा कि आधिकारिक दस्तावेज़ीकरण में दिखाया गया है।

MySQL कमांड-लाइन टूल से कनेक्ट करना

इस उदाहरण के लिए, हम मान लेंगे root प्राथमिक MySQL खाता है। MySQL कमांड-लाइन टूल का उपयोग शुरू करने के लिए (mysqlcli ), अपने सर्वर से root . के रूप में कनेक्ट करें उपयोगकर्ता, फिर mysql जारी करें आदेश:

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>

सफल होने पर, आप अपने MySQL कनेक्शन के बारे में कुछ आउटपुट देखेंगे और mysql . का सामना कर रहे होंगे शीघ्र।

नोट:उस स्थिति में जब आप सीधे सर्वर से root के रूप में कनेक्ट करने में असमर्थ होते हैं mysql . से कनेक्ट होने से पहले उपयोगकर्ता , आप उस उपयोगकर्ता को निर्दिष्ट कर सकते हैं जिसे आप के रूप में कनेक्ट करना चाहते हैं --user= जोड़कर झंडा:

$ mysql --user=username

विशेषाधिकार प्रदान करना

अब जबकि आप mysqlcli . पर हैं शीघ्र, आपको केवल GRANT जारी करने की आवश्यकता है उपयुक्त अनुमतियों को लागू करने के लिए आवश्यक विकल्पों के साथ कमांड करें।

विशेषाधिकार प्रकार

GRANT कमांड विभिन्न प्रकार के विशेषाधिकारों को लागू करने में सक्षम है, CREATE . की क्षमता से सब कुछ टेबल और डेटाबेस, पढ़ें या लिखें FILES , और यहां तक ​​कि SHUTDOWN सर्वर। कमांड के लिए झंडे और विकल्पों की एक विस्तृत श्रृंखला उपलब्ध है, इसलिए आप स्वयं को GRANT से परिचित कराना चाहेंगे। आधिकारिक दस्तावेज़ीकरण के माध्यम से ब्राउज़ करके वास्तव में कर सकते हैं।

डेटाबेस-विशिष्ट विशेषाधिकार

ज्यादातर मामलों में, आप विशेष database . के आधार पर MySQL उपयोगकर्ताओं को विशेषाधिकार प्रदान करेंगे उस खाते तक पहुंच होनी चाहिए। यह सामान्य अभ्यास है, उदाहरण के लिए, प्रत्येक अद्वितीय MySQL database . के लिए सर्वर पर अपना विशिष्ट user रखने के लिए इसके साथ जुड़ा हुआ है, जैसे कि केवल एक ही user एक एकल database . तक प्रमाणीकरण पहुंच है और इसके विपरीत।

GRANT ALL के लिए एक user . को विशेषाधिकार , उस उपयोगकर्ता को एक विशिष्ट database . पर पूर्ण नियंत्रण की अनुमति देता है , निम्नलिखित सिंटैक्स का उपयोग करें:

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

उस आदेश के साथ, हमने MySQL को बताया है:

  • GRANT PRIVILEGES प्रकार का ALL (इस प्रकार निश्चित रूप से सब कुछ)। नोट:अधिकांश आधुनिक MySQL इंस्टॉलेशन के लिए वैकल्पिक PRIVILEGES . की आवश्यकता नहीं होती है कीवर्ड।
  • ये विशेषाधिकार database_name . के लिए हैं और यह सभी . पर लागू होता है उस डेटाबेस की तालिकाएँ, जो .* . द्वारा इंगित की जाती हैं जो इस प्रकार है।
  • ये विशेषाधिकार username को दिए गए हैं जब वह username @'localhost' . द्वारा निर्दिष्ट अनुसार स्थानीय रूप से जुड़ा हुआ है . किसी भी मान्य होस्ट को निर्दिष्ट करने के लिए, 'localhost' को बदलें '%' . के साथ ।

संपूर्ण डेटाबेस को सभी विशेषाधिकार प्रदान करने के बजाय, शायद आप tolkien . देना चाहते हैं उपयोगकर्ता केवल डेटा पढ़ने की क्षमता (SELECT ) authors . से books . की तालिका डेटाबेस। इसे इस तरह आसानी से पूरा किया जा सकता है:

mysql> GRANT ALL PRIVILEGES ON books.authors  TO 'tolkien'@'localhost';

एक और सुपर उपयोगकर्ता बनाना

जबकि विशेष रूप से सुरक्षित नहीं है, कुछ मामलों में आप एक और 'सुपर उपयोगकर्ता' बनाना चाह सकते हैं, जिसमें सर्वर पर सभी डेटाबेस में सभी विशेषाधिकार हों। यह ऊपर की तरह ही किया जा सकता है, लेकिन database_name . को बदलकर वाइल्डकार्ड तारक के साथ:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';

अब tolkien डिफ़ॉल्ट root . के समान विशेषाधिकार हैं खाता, सावधान!

अपने परिवर्तन सहेजना

उपयोगकर्ता विशेषाधिकारों के किसी भी अपडेट के बाद अंतिम चरण के रूप में, FLUSH PRIVILEGES जारी करके परिवर्तनों को सहेजना सुनिश्चित करें। mysql . से कमांड संकेत:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. व्यू के SELECT में FROM क्लॉज में एक सबक्वेरी है

  2. MySQL संस्करण का निर्धारण कैसे करें

  3. हमारे साझा सर्वर पर स्थित MySQL डेटाबेस से दूरस्थ रूप से कैसे कनेक्ट करें

  4. क्या mysql_insert_id उपयोग करने के लिए सुरक्षित है?

  5. GROUP_CONCAT () MySQL में फंक्शन