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

MySQL में INFORMATION_SCHEMA से सभी यूजर ग्रांट्स देखना

INFORMATION_SCHEMA.SCHEMA_PRIVILEGES

MySQL में सभी यूजर्स के स्कीमा-स्तरीय प्रिविलेजेस देखने के लिए INFORMATION_SCHEMA.SCHEMA_PRIVILEGES टेबल को क्वेरी करें।

क्वेरी

mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES;

नमूना आउटपुट (संक्षिप्त)

+-----------------------------+---------------+--------------------+-------------------------+--------------+
| GRANTEE                     | TABLE_CATALOG | TABLE_SCHEMA       | PRIVILEGE_TYPE          | IS_GRANTABLE |
+-----------------------------+---------------+--------------------+-------------------------+--------------+
| 'mysql.sys'@'localhost'     | def           | sys                | TRIGGER                 | NO           |
| 'Adam Smith'@'localhost'    | def           | test               | SELECT                  | NO           |
| 'Adam Smith'@'localhost'    | def           | test               | INSERT                  | NO           |
| 'Adam Smith'@'localhost'    | def           | test               | UPDATE                  | NO           |
| 'Adam Smith'@'localhost'    | def           | test               | DELETE                  | NO           |
| 'Adam Smith'@'localhost'    | def           | test               | CREATE                  | NO           |
| 'Adam Smith'@'localhost'    | def           | test               | DROP                    | NO           |
| ...                         | ...           | ...                | ...                     | ...          |
| 'Robert'@'%'                | def           | sample             | SELECT                  | YES          |
| 'Robert'@'%'                | def           | sample             | INSERT                  | YES          |
| ...                         | ...           | ...                | ...                     | ...          |
+-----------------------------+---------------+--------------------+-------------------------+--------------+
46 rows in set (0.00 sec)

कॉलम व्याख्या

कॉलमविवरण
GRANTEEयूजर अकाउंट ('user'@'host' फॉर्मेट में)
TABLE_CATALOGकैटलॉग नाम (हमेशा 'def' MySQL में)
TABLE_SCHEMAडेटाबेस/स्कीमा नाम
PRIVILEGE_TYPEप्रिविलेज प्रकार (SELECT, INSERT, CREATE, आदि)
IS_GRANTABLEYES यदि यूजर यह प्रिविलेज दूसरों को दे सकता है

उपयोगी फ़िल्टरिंग क्वेरीज

विशिष्ट यूजर के प्रिविलेजेस

SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES 
WHERE GRANTEE LIKE '%Adam Smith%';

विशिष्ट डेटाबेस के प्रिविलेजेस

SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES 
WHERE TABLE_SCHEMA = 'test';

विशिष्ट प्रिविलेज वाले यूजर्स

SELECT DISTINCT GRANTEE FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES 
WHERE PRIVILEGE_TYPE = 'CREATE' AND TABLE_SCHEMA = 'test';

ग्रांटेबल प्रिविलेजेस (WITH GRANT OPTION)

SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES 
WHERE IS_GRANTABLE = 'YES';

अन्य प्रिविलेज टेबल्स

टेबलस्कोपउद्देश्य
SCHEMA_PRIVILEGESडेटाबेस/स्कीमाCREATE, DROP, ALTER आदि
TABLE_PRIVILEGESटेबलSELECT, INSERT, UPDATE, DELETE, INDEX आदि
COLUMN_PRIVILEGESकॉलमकॉलम-स्तरीय SELECT/INSERT/UPDATE
USER_PRIVILEGESग्लोबलSUPER, RELOAD, SHUTDOWN, CREATE USER आदि

SHOW GRANTS vs INFORMATION_SCHEMA

पहलूSHOW GRANTSINFORMATION_SCHEMA
आउटपुट फॉर्मेटGRANT स्टेटमेंट्स (पठनीय)टेबुलर (प्रोग्रामेटिक)
स्कोपविशिष्ट यूजरसभी यूजर्स (फ़िल्टर करने योग्य)
रोल्स (8.0+)दिखाता हैअलग टेबल: ROLE_TABLE_GRANTS आदि

सभी प्रिविलेजेस का पूर्ण दृश्य (MySQL 8.0+)

SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES
UNION ALL
SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
UNION ALL
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
UNION ALL
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES;
  1. - MySQL में विशिष्ट यूज़र के लॉगिन समय को कैसे अपडेट करें?

    MySQL में किसी विशिष्ट यूज़र के लॉगिन समय को अपडेट करने के लिए, UPDATE स्टेटमेंट के साथ WHERE क्लॉज़ का उपयोग करें। यदि एक ही यूज़र के एकाधिक रिकॉर्ड हैं, तो ORDER BY ... LIMIT 1 से नवीनतम रिकॉर्ड अपडेट करें। उदाहरण: Carol का लॉगिन समय अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1

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

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

  1. - MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

    MySQL में NULL मानों को संभालना: IFNULL() और COALESCE() MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) NULL मानों सहित डेटा