Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySql:ग्रांट रीड ओनली ऑप्शंस?

यह इस बात पर निर्भर करता है कि आप "सभी पढ़े गए" को कैसे परिभाषित करते हैं।

टेबल और व्यू से "पढ़ना" SELECT है विशेषाधिकार। अगर "सभी पढ़े" से आपका यही मतलब है तो हाँ:

GRANT SELECT ON *.* TO 'username'@'host_or_wildcard' IDENTIFIED BY 'password';

हालाँकि, ऐसा लगता है कि आपका मतलब सब कुछ "देखने" की क्षमता से है, "देखो लेकिन छूना नहीं।" तो, यहाँ अन्य प्रकार के पठन हैं जो दिमाग में आते हैं:

"पढ़ना" विचारों की परिभाषा है SHOW VIEW विशेषाधिकार।

अन्य उपयोगकर्ताओं द्वारा वर्तमान में निष्पादित प्रश्नों की सूची को "पढ़ना" PROCESS . है विशेषाधिकार।

"पढ़ना" वर्तमान प्रतिकृति स्थिति है REPLICATION CLIENT विशेषाधिकार।

ध्यान दें कि विचाराधीन उपयोगकर्ता की प्रकृति के आधार पर इनमें से कोई भी या सभी आपकी अपेक्षा से अधिक जानकारी को उजागर कर सकता है।

यदि वह रीडिंग आप करना चाहते हैं, तो आप उनमें से किसी को भी (या उपलब्ध विशेषाधिकार ) एक ही GRANT . में बयान।

GRANT SELECT, SHOW VIEW, PROCESS, REPLICATION CLIENT ON *.* TO ...

हालांकि, ऐसा कोई एक विशेषाधिकार नहीं है जो अन्य विशेषाधिकारों के कुछ उपसमुच्चय प्रदान करता है, जो ऐसा लगता है जैसे आप पूछ रहे हैं।

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

mysql> SHOW GRANTS FOR 'not_leet'@'localhost';
+------------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                                      |
+------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, REPLICATION CLIENT ON *.* TO 'not_leet'@'localhost' IDENTIFIED BY PASSWORD '*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' |
+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

पासवर्ड के साथ आप जो नया उपयोगकर्ता जोड़ना चाहते हैं, उससे मेल खाने के लिए 'not_leet' और 'लोकलहोस्ट' को बदलने से एक पुन:प्रयोज्य GRANT का परिणाम होगा। एक नया उपयोगकर्ता बनाने के लिए कथन।

यदि आप चाहते हैं कि एक एकल ऑपरेशन सेट अप हो और उपयोगकर्ताओं को विशेषाधिकारों का सीमित सेट प्रदान करे, और शायद किसी भी अयोग्य विशेषाधिकार को हटा दें, जो कि एक संग्रहीत कार्यविधि बनाकर किया जा सकता है जो वह सब कुछ समाहित करता है जो आप करना चाहते हैं। प्रक्रिया के मुख्य भाग के भीतर, आप GRANT . का निर्माण करेंगे डायनेमिक SQL के साथ स्टेटमेंट और/या सीधे ग्रांट टेबल में हेरफेर करें।

डेटाबेस व्यवस्थापकों पर हाल के इस प्रश्न में , पोस्टर एक अनपेक्षित उपयोगकर्ता के लिए अन्य उपयोगकर्ताओं को संशोधित करने की क्षमता चाहता था, जो निश्चित रूप से ऐसा कुछ नहीं है जो सामान्य रूप से किया जा सकता है - एक उपयोगकर्ता जो अन्य उपयोगकर्ताओं को संशोधित कर सकता है, परिभाषा के अनुसार, एक अप्रतिबंधित उपयोगकर्ता नहीं है - हालांकि - - संग्रहीत प्रक्रियाओं ने उस मामले में एक अच्छा समाधान प्रदान किया, क्योंकि वे अपने DEFINER के सुरक्षा संदर्भ के साथ चलते हैं उपयोगकर्ता, किसी को भी EXECUTE . के साथ अनुमति देता है प्रक्रिया पर विशेषाधिकार अस्थायी रूप से बढ़े हुए विशेषाधिकारों को ग्रहण करने के लिए उन्हें विशिष्ट कार्य करने की अनुमति देने के लिए जो प्रक्रिया को पूरा करती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL डेटाबेस को लॉक करना ताकि एक बार में केवल एक ही व्यक्ति एक क्वेरी चला सके?

  2. Mysql2 मणि ​​स्थापित नहीं कर सकता

  3. Wordpress घातक त्रुटि:ध्यान में न आया त्रुटि:अपरिभाषित फ़ंक्शन mysql_connect () में /wp-includes/wp-db.php:1570 पर कॉल करें

  4. MySQL में COUNT का उपयोग करते समय शून्य के बजाय 0 कैसे लौटाएं?

  5. सुरक्षित मोड के तहत mysql हटाएं