मुझे यह लेख वास्तविक MySQL प्रलेखन से भी अधिक उपयोगी MySQL विशेषाधिकार कैसे दिए जाते हैं या अस्वीकार किए जाते हैं, इसकी बड़ी तस्वीर का वर्णन करने के लिए।
सिंहावलोकन लेख का सार यह है कि विशेषाधिकारों को mysql
में अधिकाधिक महीन-दानेदार अनुमति तालिकाओं की एक श्रृंखला द्वारा नियंत्रित किया जाता है डेटाबेस:mysql.user
, mysql.db
, mysql.host
, mysql.tables_priv
, mysql.columns_priv
, mysql.procs_priv
. सामान्य नियम यह है कि अधिक बारीक-बारीक तालिका में विशेषाधिकार के लिए "Y" मान अधिक मोटे अनाज वाली तालिका में "N" मान को अधिरोपित कर देता है। तो अनुशंसित रणनीति user
. में अधिकांश विशेषाधिकारों को अस्वीकार करके शुरू करना है तालिका (जो सबसे मोटे नियंत्रण देता है), और फिर केवल विशिष्ट ओवरराइड बनाएं जो आप अधिक बारीक तालिकाओं में चाहते हैं।
विशेष रूप से, SHOW_DATABASES नामक एक विशेषाधिकार है।
जो Show_db_priv
. द्वारा निर्धारित किया जाता है mysql.user
. में कॉलम मेज़; आप प्रश्न में उपयोगकर्ता के लिए इसे "एन" पर सेट करना चाहेंगे (और जैसा कि ऊपर वर्णित है, आप उपयोगकर्ता तालिका में अधिकांश अन्य अनुमतियां "एन" पर भी सेट करना चाहेंगे) और फिर केवल उन विशेषाधिकारों को प्रदान करें जो उपयोगकर्ता वास्तव में mysql.db
. में आवश्यकता होती है या mysql.tables_priv
तालिका या जो भी आपके विशेष मामले के लिए उपयुक्त होगा।