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


69

मैं समझता हूं कि विशेषाधिकारों के साथ एक नया उपयोगकर्ता कैसे बनाया जा सकता है, लेकिन पहले से निर्मित उपयोगकर्ताओं के लिए विशेषाधिकार बदलने का सही तरीका क्या है?

हम एक डीबी ऑडिट चला रहे हैं और कुछ उपयोगकर्ताओं के पास अधिक पहुंच का रास्ता है। इसके अलावा, मैं इन MySQL उपयोगकर्ताओं में से अधिकांश के लिए पासवर्ड नहीं जानता, इसलिए मैं उन्हें हटाना और नए बनाना नहीं चाहता।

जवाबों:


107

उपयोगकर्ताओं को सूचीबद्ध करने के लिए:

select user,host from mysql.user;

विशेषाधिकार दिखाने के लिए:

show grants for 'user'@'host';

विशेषाधिकार बदलने के लिए, पहले निरस्त करें। जैसे कि:

revoke all privileges on *.* from 'user'@'host';

फिर वांछित के रूप में उपयुक्त विशेषाधिकार प्रदान करें:

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';

अंत में, फ्लश:

flush privileges;

MySQL प्रलेखन उत्कृष्ट है:

https://dev.mysql.com/doc/refman/8.0/en/access-control.html


3
अच्छी तरह से निरस्त किए बिना, यह गणतंत्र विशेषाधिकार होगा;
सर्गेई

7
mysql प्रलेखन अपठनीय के पास है, यह उत्तर बहुत बेहतर है
टिमो हुओवेनन

मुझे लगता है कि (पर सभी विशेषाधिकारों को रद्द 'उपयोगकर्ता' @ 'होस्ट' से;) होना चाहिए (सभी पर निरस्त 'उपयोगकर्ता' @ 'होस्ट' से;) धन्यवाद,
निकोलस

1
यह उत्तर स्पष्ट है कि गलत "फ्लश विशेषाधिकार" अनुदान के साथ निर्धारित विशेषाधिकार पर लागू नहीं होते हैं। उपर्युक्त प्रक्रिया के परिणामस्वरूप उपयोगकर्ता के पास रिवोक और अनुदान प्रश्नों के बीच में कोई विशेषाधिकार नहीं होता है, और इसके अतिरिक्त बिना किसी कारण के अनुदान कैश फ्लश करना __ यह काम करेगा यदि आप mysql.user तालिका के बजाय नियमित प्रश्न करते हैं। अनुदान का उपयोग करना और यदि सर्वर प्रश्नों के बीच क्रैश या बंद नहीं होता है।
skullnobrains
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.