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


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

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

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

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

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


51
2018-02-27 21:45


मूल




जवाब:


आदेश SHOW GRANTS [FOR user] जो आप खोज रहे हैं देख यहाँ अधिक जानकारी के लिए।


58
2018-02-27 22:10





यहाँ है MySQL दस्तावेज़ीकरण के लिये SHOW GRANTS:

SHOW GRANTS [FOR user]

यह कथन GRANT कथन या कथन सूचीबद्ध करता है जो MySQL उपयोगकर्ता खाते को दिए गए विशेषाधिकारों को डुप्लिकेट करने के लिए जारी किए जाने चाहिए। खाते को अनुदान प्रारूप के लिए उसी प्रारूप का उपयोग करके नामित किया गया है; उदाहरण के लिए, 'जेफरी' @ 'लोकलहोस्ट'। यदि आप खाता नाम का केवल उपयोगकर्ता नाम भाग निर्दिष्ट करते हैं, तो '%' का होस्ट नाम भाग उपयोग किया जाता है। खाता नाम निर्दिष्ट करने के बारे में अतिरिक्त जानकारी के लिए, खंड 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 सुरक्षा डिफिनेर के साथ परिभाषित एक संग्रहीत प्रक्रिया के भीतर), प्रदर्शित अनुदान निश्चित हैं और चालक नहीं।

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

ग्रांट्स को MySQL डेटाबेस के लिए SELECT विशेषाधिकार की आवश्यकता है।


36
2018-02-27 21:46