SHOW GRANTS कमांड
किसी यूजर के अधिकारों (प्रिविलेजेस) को देखने के लिए SHOW GRANTS स्टेटमेंट का उपयोग करें। यह डेटाबेस बनाने से पहले आवश्यक अनुमतियों की जांच के लिए उपयोगी है।
सिंटैक्स
SHOW GRANTS FOR 'username'@'host';
केस 1: वर्तमान यूजर (रूट) के अधिकार
mysql> SHOW GRANTS FOR CURRENT_USER;
आउटपुट (संक्षिप्त)
+----------------------------------------------------------------------------------------------------------------------------------+ | Grants for root@% | +----------------------------------------------------------------------------------------------------------------------------------+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, | | SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, | | CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` | | WITH GRANT OPTION | | GRANT BACKUP_ADMIN, BINLOG_ADMIN, CONNECTION_ADMIN, ENCRYPTION_KEY_ADMIN, GROUP_REPLICATION_ADMIN, PERSIST_RO_VARIABLES_ADMIN, | | REPLICATION_SLAVE_ADMIN, RESOURCE_GROUP_ADMIN, RESOURCE_GROUP_USER, ROLE_ADMIN, SET_USER_ID, SYSTEM_VARIABLES_ADMIN, | | XA_RECOVER_ADMIN ON *.* TO `root`@`%` WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
केस 2: विशिष्ट यूजर (Bob) के अधिकार
mysql> SHOW GRANTS FOR 'Bob'@'%';
आउटपुट (संक्षिप्त)
+----------------------------------------------------------------------------------------------------------------------------------+ | Grants for Bob@% | +----------------------------------------------------------------------------------------------------------------------------------+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, | | SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, | | CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `Bob`@`%` | | WITH GRANT OPTION | | GRANT BACKUP_ADMIN, BINLOG_ADMIN, CONNECTION_ADMIN, ENCRYPTION_KEY_ADMIN, GROUP_REPLICATION_ADMIN, PERSIST_RO_VARIABLES_ADMIN, | | REPLICATION_SLAVE_ADMIN, RESOURCE_GROUP_ADMIN, RESOURCE_GROUP_USER, ROLE_ADMIN, SET_USER_ID, SYSTEM_VARIABLES_ADMIN, | | XA_RECOVER_ADMIN ON *.* TO `Bob`@`%` WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
महत्वपूर्ण प्रिविलेजेस डेटाबेस बनाने के लिए
| प्रिविलेज | विवरण |
|---|---|
| CREATE | डेटाबेस/टेबल बनाने की अनुमति (आवश्यक) |
| DROP | डेटाबेस/टेबल हटाने की अनुमति |
| ALTER | टेबल संरचना बदलने की अनुमति |
| INDEX | इंडेक्स बनाने/हटाने की अनुमति |
| SELECT, INSERT, UPDATE, DELETE | डेटा मैनिपुलेशन (DML) |
वर्तमान यूजर के लिए सरल जांच
SHOW GRANTS;
INFORMATION_SCHEMA से जांचना
SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES WHERE GRANTEE LIKE '%username%';
डेटाबेस-विशिष्ट प्रिविलेजेस देखना
SHOW GRANTS FOR 'user'@'host' ON database_name.*;
सामान्य समस्याएं
- होस्ट मिसमैच: `'user'@'localhost'` ≠ `'user'@'%'` - सही होस्ट उपयोग करें
- प्रॉक्सी यूजर: प्रॉक्सी प्रमाणीकरण के माध्यम से अधिकार प्राप्त हो सकते हैं
- रोल्स (MySQL 8.0+): यूजर को रोल्स के माध्यम से अधिकार मिल सकते हैं
डेटाबेस बनाने से पहले चेकलिस्ट
SHOW GRANTS FOR CURRENT_USER;चलाएंCREATEप्रिविलेज की उपस्थिति जांचें- लक्ष्य होस्ट से कनेक्टिविटी सत्यापित करें
- डिस्क स्पेस और कोटा जांचें