मैं MySQL में उपयोगकर्ता के विशेषाधिकार कैसे दिखा सकता हूँ?


69

मुझे पता है कि मैं निम्नलिखित सरल तरीके से उपयोगकर्ता के विशेषाधिकार सेट कर सकता हूं:

grant all on [database name].[table name] to [user name]@[host name];

लेकिन मैं मौजूदा विशेषाधिकार कैसे देख सकता हूं?

मुझे उन आंकड़ों के समान देखना होगा जो अनुदान में उपयोग किए जाते हैं। दूसरे शब्दों में, मैं जानना चाहता हूं कि किसी दिए गए उपयोगकर्ता को किसी दिए गए डेटाबेस से किसी दिए गए डेटाबेस की दी गई तालिका तक पहुंच दी गई है।

मैं इसे कैसे प्राप्त कर सकता हूँ?

जवाबों:



51

यहाँ के लिए MySQL प्रलेखन है SHOW GRANTS:

SHOW GRANTS [FOR user]

यह कथन GRANT स्टेटमेंट या स्टेटमेंट्स को सूचीबद्ध करता है जो MySQL उपयोगकर्ता खाते को दी गई विशेषाधिकारों की नकल करने के लिए जारी किया जाना चाहिए। GRANT स्टेटमेंट के लिए उसी प्रारूप का उपयोग करके खाते का नाम रखा गया है; उदाहरण के लिए, 'जेफ्री' @ 'लोकलहोस्ट'। यदि आप खाते के नाम का केवल उपयोगकर्ता नाम भाग निर्दिष्ट करते हैं, तो '%' का होस्ट नाम भाग का उपयोग किया जाता है। खाता नामों को निर्दिष्ट करने के बारे में अतिरिक्त जानकारी के लिए, धारा 12.5.1.3, "सार सिंटैक्स" देखें।

mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+

सर्वर से कनेक्ट करने के लिए आपके द्वारा उपयोग किए जा रहे खाते को दिए गए विशेषाधिकारों को सूचीबद्ध करने के लिए, आप निम्नलिखित कथनों में से किसी का उपयोग कर सकते हैं:

SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();

MySQL 5.0.24 के अनुसार, यदि CURRENT_USER (या समतुल्य सिंटैक्स में से किसी के लिए) शो का उपयोग DEFINER संदर्भ में किया जाता है, जैसे कि एक संग्रहीत कार्यविधि के भीतर जिसे SQL SECURITY DEFINER के साथ परिभाषित किया गया है, प्रदर्शित किए गए अनुदान निश्चित और आक्रमणकारी नहीं।

शो अनुदान केवल निर्दिष्ट विशेषाधिकारों को नामांकित खाते में प्रदर्शित करता है। अन्य विशेषाधिकार खाते के लिए उपलब्ध हो सकते हैं, लेकिन वे प्रदर्शित नहीं होते हैं। उदाहरण के लिए, यदि कोई अनाम खाता मौजूद है, तो नामांकित खाता अपने विशेषाधिकारों का उपयोग करने में सक्षम हो सकता है, लेकिन SHOW GRANTS उन्हें प्रदर्शित नहीं करेगा।

शो अनुदान mysql डेटाबेस के लिए चयन विशेषाधिकार की आवश्यकता है।


SHOW GRANTS requires the SELECT privilege for the mysql system database, except to display privileges and roles for the current user.
संदीप भट्टाचार्य
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.