निम्नलिखित की तरह अनुदान विवरण देखना बहुत आम है जो किसी दिए गए डेटाबेस में सभी तालिकाओं तक पहुंच प्रदान करता है।
GRANT SELECT, SHOW VIEW
ON mydatabase.*
TO myreaduser@myhost IDENTIFIED BY 'somepassword';
FLUSH PRIVILEGES;
जहां mydatabase
, myreaduser
, myhoost
, और somepassword
आपके डेटाबेस के लिए उपयुक्त चर हैं। ध्यान दें कि FLUSH PRIVILEGES
कमांड MySQL के विशेषाधिकारों को रीसेट करता है और जब तक इसे चलाया नहीं जाता तब तक आप नए उपयोगकर्ता अनुदान का उपयोग नहीं कर पाएंगे।
ऐसा उपयोगकर्ता डेटाबेस में सभी तालिकाओं को पढ़ने और एक्सेस करने में सक्षम होगा। इस उदाहरण के लिए हम बोटियो डेटाबेस का उपयोग करने जा रहे हैं जिसमें 3 टेबल हैं:boats
, trips
, और users
।
mysql> show tables;
+------------------+
| Tables_in_boatio |
+------------------+
| boats |
| trips |
| users |
+------------------+
3 rows in set (0.00 sec)
यदि हम एक ऐसा उपयोगकर्ता बनाना चाहते हैं जिसके पास केवल trips
. तक पहुंच हो तालिका, हम केवल वाइल्डकार्ड स्प्लैट (*) को प्रतिस्थापित करते हैं जो सभी तालिकाओं का प्रतिनिधित्व करता है, विशिष्ट तालिकाओं के साथ जो आप चाहते हैं (इस मामले में:trips
)।
GRANT SELECT, SHOW VIEW
ON boatio.trips
TO myreaduser@localhost IDENTIFIED BY 'somepassword';
FLUSH PRIVILEGES;
अब हम नए उपयोगकर्ता के रूप में लॉग इन कर सकते हैं और शो टेबल चला सकते हैं यह देखने के लिए कि उसके पास केवल trips
तक पहुंच है तालिका और अन्य दो नहीं। यह नया उपयोगकर्ता बस यह नहीं जानता कि अन्य टेबल भी मौजूद हैं।
$ mysql -umyreaduser boatio -psomepassword
mysql> show tables;
+------------------+
| Tables_in_boatio |
+------------------+
| trips |
+------------------+
1 row in set (0.00 sec)
उपयोगकर्ता को अधिक तालिकाओं तक पहुंच प्रदान करने के लिए, बस वही GRANT
फिर से चलाएँ अतिरिक्त तालिका नामों के साथ कथन। उदाहरण के लिए, निम्नलिखित trips
तक पहुंच प्रदान करेंगे और users
टेबल लेकिन नहीं boats
।
GRANT SELECT, SHOW VIEW ON boatio.trips TO myreaduser@localhost IDENTIFIED BY 'somepassword';
GRANT SELECT, SHOW VIEW ON boatio.users TO myreaduser@localhost IDENTIFIED BY 'somepassword';
FLUSH PRIVILEGES;
और प्रमाण:उपयोगकर्ता के पास अब trips
. तक पहुंच है और users
टेबल लेकिन नहीं boats
।
$ mysql -umyreaduser boatio -psomepassword
mysql> show tables;
+------------------+
| Tables_in_boatio |
+------------------+
| trips |
| users |
+------------------+
2 rows in set (0.00 sec)