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

MySQL में डेटाबेस बनाने से पहले यूजर अधिकार जांचना

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+): यूजर को रोल्स के माध्यम से अधिकार मिल सकते हैं

डेटाबेस बनाने से पहले चेकलिस्ट

  1. SHOW GRANTS FOR CURRENT_USER; चलाएं
  2. CREATE प्रिविलेज की उपस्थिति जांचें
  3. लक्ष्य होस्ट से कनेक्टिविटी सत्यापित करें
  4. डिस्क स्पेस और कोटा जांचें
  1. MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है? MySQL में कैसे चेक करें कि कौन सा डेटाबेस चुना गया है?

    हम इसे DATABASE() मेथड की मदद से DUAL से चेक कर सकते हैं। मान लीजिए, हम डेटाबेस business का उपयोग कर रहे हैं। क्वेरी निम्न है − mysql> USE business; Database changed अब हम DATABASE() को DUAL से चेक कर सकते हैं कि कौन सा डेटाबेस चुना गया है। क्वेरी निम्न है − mysql> SELECT DATA

  1. MySQL Workbench में नया डेटाबेस कैसे बनाएं? MySQL Workbench में नया डेटाबेस कैसे बनाएं?

    MySQL Workbench GUI से डेटाबेस बनाएं MySQL Workbench एक ग्राफिकल इंटरफ़ेस प्रदान करता है नया डेटाबेस (स्कीमा) बनाने के लिए बिना SQL लिखे। चरण-दर-चरण प्रक्रिया MySQL Workbench लॉन्च करें सर्वर से कनेक्ट करें: Database → Connect to Database (Ctrl+U) कनेक्शन चुनें, पासवर्ड दर्ज करें, OK दबाए

  1. कमांड लाइन में MySQL डेटाबेस कैसे बनाएं? कमांड लाइन में MySQL डेटाबेस कैसे बनाएं?

    सबसे पहले, आपको कमांड प्रॉम्प्ट खोलना होगा। आप शॉर्टकट Windows+R की का उपयोग करके खोल सकते हैं। स्क्रीनशॉट इस प्रकार है: अब CMD टाइप करें और OK बटन दबाएं: अब निम्न कमांड प्रॉम्प्ट दिखाई देगा: अब MySQL bin डायरेक्टरी तक पहुंचें। स्क्रीनशॉट इस प्रकार है: कमांड लाइन में MySQL चलाकर डेटाबेस बनाने का