REVOKE स्टेटमेंट से एक या अधिक यूजर्स से विशेषाधिकार वापस लिए जा सकते हैं।
सिंटैक्स
REVOKE privilege_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] privilege_level
FROM user [, user] ...;
पैरामीटर्स व्याख्या
- REVOKE के बाद विशेषाधिकारों की सूची (कॉमा से अलग)
- ON क्लॉज में विशेषाधिकार स्तर (ग्लोबल, डेटाबेस, टेबल, कॉलम)
- FROM क्लॉज में यूजर अकाउंट(स)
उदाहरण: abcd@localhost से सभी विशेषाधिकार वापस लेना
-- वर्तमान विशेषाधिकार देखें
mysql> SHOW GRANTS FOR 'abcd'@'localhost';
+---------------------------------------------------------------------+
| Grants for abcd@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
-- सभी विशेषाधिकार और GRANT OPTION वापस लें
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'abcd'@'localhost';
Query OK, 0 rows affected (0.00 sec)
-- पुष्टि करें
mysql> SHOW GRANTS FOR 'abcd'@'localhost';
+------------------------------------------+
| Grants for abcd@localhost |
+------------------------------------------+
| GRANT USAGE ON *.* TO 'abcd'@'localhost' |
+------------------------------------------+
महत्वपूर्ण बिंदु
GRANT OPTIONअलग से वापस लेना पड़ता है (ALL PRIVILEGES में शामिल नहीं)REVOKE ALL PRIVILEGESकेवल स्पष्ट रूप से दिए गए विशेषाधिकार हटाता है- यूजर अकाउंट बना रहता है (केवल
USAGEबचता है) - यूजर पूरी तरह हटाने के लिए:
DROP USER 'user'@'host';
स्तर-विशिष्ट REVOKE
-- डेटाबेस स्तर
REVOKE SELECT ON mydb.* FROM 'user'@'host';
-- टेबल स्तर
REVOKE INSERT ON mydb.mytable FROM 'user'@'host';
-- कॉलम स्तर
REVOKE UPDATE (col1, col2) ON mydb.mytable FROM 'user'@'host';