Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में SHOW GRANTS से विशिष्ट उपयोगकर्ता के सभी अधिकार (ग्रांट) देखें

MySQL में किसी विशिष्ट उपयोगकर्ता खाते को दिए गए सभी अधिकारों (प्रिविलेज) को देखने के लिए SHOW GRANTS स्टेटमेंट का उपयोग करें। यह सुरक्षा ऑडिट, समस्या निवारण, और अधिकार प्रबंधन के लिए आवश्यक है।

सिंटैक्स

SHOW GRANTS FOR 'username'@'hostname';

व्यावहारिक उदाहरण

चरण 1: सभी उपयोगकर्ता खाते सूचीबद्ध करें

mysql> SELECT User, Host FROM mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| Bob              | %         |
| Charlie          | %         |
| Robert           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam             | localhost |
| Adam Smith       | localhost |
| Chris            | localhost |
| David            | localhost |
| James            | localhost |
| John             | localhost |
| John Doe         | localhost |
| Michael          | localhost |
| Mike             | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
+------------------+-----------+

चरण 2: विशिष्ट उपयोगकर्ता के ग्रांट देखें

mysql> SHOW GRANTS FOR 'John'@'localhost';

परिणाम

+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for John@localhost                                                                                                                                                                                                                                                                                                   |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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 `John`@`localhost` |
| 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 `John`@`localhost` |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

आउटपुट समझना

  • पहली पंक्ति: मानक SQL प्रिविलेज (SELECT, INSERT, UPDATE, DROP, आदि) - *.* पर (सभी डेटाबेस, सभी टेबल)
  • दूसरी पंक्ति: डायनामिक प्रिविलेज/एडमिन भूमिकाएं (MySQL 8.0+) - BACKUP_ADMIN, BINLOG_ADMIN, आदि
  • ON *.* का अर्थ है वैश्विक अधिकार (सभी डेटाबेस/टेबल)

सामान्य ग्रांट पैटर्न

वर्तमान उपयोगकर्ता के ग्रांट

SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER();

सभी उपयोगकर्ताओं के ग्रांट (स्क्रिप्टिंग के लिए)

SELECT CONCAT("SHOW GRANTS FOR '", User, "'@'", Host, "';") 
FROM mysql.user;

केवल विशिष्ट डेटाबेस के ग्रांट

SHOW GRANTS FOR 'user'@'host' ON database_name.*;

महत्वपूर्ण प्रिविलेज श्रेणियां

सर्वोत्तम अभ्यास

  • न्यूनतम अधिकार सिद्धांत: केवल आवश्यक अधिकार दें
  • नियमित ऑडिट: SHOW GRANTS से अनावश्यक अधिकार हटाएं
  • भूमिका उपयोग (MySQL 8.0+): CREATE ROLE, GRANT role TO user - प्रबंधन सरल
  • होस्ट विशिष्टता: 'user'@'%' (कोई भी होस्ट) बनाम 'user'@'localhost' (केवल स्थानीय)

संबंधित कमांड

  • GRANT - अधिकार दें
  • REVOKE - अधिकार वापस लें
  • CREATE USER - नया उपयोगकर्ता बनाएं
  • DROP USER - उपयोगकर्ता हटाएं

SHOW GRANTS MySQL सुरक्षा प्रशासन का प्राथमिक उपकरण है - नियमित रूप से उपयोग करें।

  1. - MySQL में टेबल के सभी फील्ड/कॉलम कैसे प्रदर्शित करें?

    MySQL में किसी टेबल के सभी कॉलम (फील्ड) की सूची प्राप्त करने के लिए, INFORMATION_SCHEMA.COLUMNS टेबल को क्वेरी करें जहां table_schema वर्तमान डेटाबेस हो और table_name लक्ष्य टेबल हो। यह DESCRIBE या SHOW COLUMNS का प्रोग्रामेटिक विकल्प है। क्वेरी mysql> SELECT column_name AS ALL_FIELDS FROM infor

  1. - MySQL में कॉमा-सेपरेटेड मान वाले कॉलम में विशिष्ट संख्या खोजकर रिकॉर्ड चुनें

    CONCAT() + LIKE कॉमा सेपरेटेड स्ट्रिंग में सटीक संख्या मिलान के लिए: select * from yourTableName where concat(,, yourColumnName, ,) like %,yourValue,%; उदाहरण insert into demo49 values(4,5,6,Adam), (5,3,2,Mike), (3,4,9,Bob); संख्या 4 खोजना select * from demo49 where concat(,, id, ,) like %,4,%;

  1. - MySQL में FIND_IN_SET() से कॉमा-सेपरेटेड कॉलम में विशिष्ट संख्या वाले रिकॉर्ड चुनें

    FIND_IN_SET() फ़ंक्शन FIND_IN_SET(str, strlist) कॉमा-सेपरेटेड सूची में स्ट्रिंग की स्थिति लौटाता है (1-आधारित); नहीं मिलने पर 0। उदाहरण insert into demo73 values(100,101,103,105,SSC), (105,103,1005,1003,104,Computer), (110,105,104,111,Novel); संख्या 103 खोजना 0; +-----------------------+-------

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
श्रेणीउदाहरण
डेटाSELECT, INSERT, UPDATE, DELETE
स्कीमाCREATE, DROP, ALTER, INDEX
प्रशासनRELOAD, SHUTDOWN, PROCESS, SUPER
रीप्लिकेशनREPLICATION SLAVE, REPLICATION CLIENT
सुरक्षाCREATE USER, GRANT OPTION
एडमिन (8.0+)BACKUP_ADMIN, SYSTEM_VARIABLES_ADMIN, आदि