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

MySQL तालिका स्तर अनुमतियों के बारे में जानें

निम्नलिखित की तरह अनुदान विवरण देखना बहुत आम है जो किसी दिए गए डेटाबेस में सभी तालिकाओं तक पहुंच प्रदान करता है।

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)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि कोड:2013। क्वेरी के दौरान MySQL सर्वर से कनेक्शन टूट गया

  2. MySQL इंसर्ट क्वेरी WHERE क्लॉज के साथ काम नहीं करती है

  3. मैं पायथन में एक MySQL डेटाबेस से कैसे जुड़ सकता हूँ?

  4. दो पंक्तियों के बीच समय अंतर की गणना करें

  5. Ubuntu 12.04 पर phpMyAdmin के साथ MySQL कैसे स्थापित करें?