आप अनाम लॉगिन को कैसे अक्षम करते हैं?


9

MySQL प्रलेखन के अनुसार , आप पासवर्ड जोड़कर या अनाम खातों को हटाकर MySQL सर्वर को सख्त कर सकते हैं।

यदि आप क्लाइंट को बिना पासवर्ड के अनाम उपयोगकर्ताओं से जुड़ने से रोकना चाहते हैं, तो आपको या तो प्रत्येक अनाम खाते को पासवर्ड असाइन करना चाहिए या फिर खातों को हटा देना चाहिए।

सख्त होने से पहले, मेरी उपयोगकर्ता तालिका इस तरह दिखती थी।

mysql> select user,host,password from mysql.user;
+------------------+-----------+-------------------------------------------+
| user             | host      | password                                  |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *F3A2A51A9B0F2BE246XXXXXXXXXXXXXXXXXXXXXX |
| root             | gitlab    |                                           |
| root             | 127.0.0.1 |                                           |
| root             | ::1       |                                           |
|                  | localhost |                                           |
|                  | gitlab    |                                           |
| debian-sys-maint | localhost | *95C1BF709B26A5BAXXXXXXXXXXXXXXXXXXXXXXXX |
| myuser           | localhost | *6C8989366EAF75BB6XXXXXXXXXXXXXXXXXXXXXXX |
+------------------+-----------+-------------------------------------------+

मैंने सभी अनाम खाते हटा दिए हैं, ताकि उपयोगकर्ता तालिका अब इस तरह दिखे। (मैं उपयोगकर्ताओं को प्रबंधित करने के लिए कठपुतली का उपयोग कर रहा हूं, लेकिन कठपुतली प्रभावी रूप से एक DROP USERकमांड करता है )।

mysql> select user,host,password from mysql.user;
+------------------+-----------+-------------------------------------------+
| user             | host      | password                                  |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *F3A2A51A9B0F2BE246XXXXXXXXXXXXXXXXXXXXXX |
| debian-sys-maint | localhost | *95C1BF709B26A5BAXXXXXXXXXXXXXXXXXXXXXXXX |
| myuser           | localhost | *6C8989366EAF75BB6XXXXXXXXXXXXXXXXXXXXXXX |
+------------------+-----------+-------------------------------------------+

ऐसा क्यों है कि मैं अभी भी उपयोगकर्ता नाम या पासवर्ड के बिना अपने परीक्षण प्रणाली में प्रवेश करने में सक्षम हूं?
किसी भी अवांछित उपयोगकर्ताओं को लॉग इन करने से रोकने के लिए मुझे क्या करने की आवश्यकता है?

root@gitlab:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 98
Server version: 5.5.32-0ubuntu0.12.04.1 (Ubuntu)
....
mysql> 

अपडेट : मैंने यह भी पता लगाया है कि मैं पासवर्ड दर्ज किए बिना रूट के रूप में लॉगिन कर सकता हूं।

अपडेट 2 : मुझे यह सवाल मिला, जिसमें कुछ अच्छी जानकारी है, लेकिन यह मुद्दे को हल नहीं करता है।

अनाम उपयोगकर्ता नहीं हैं।

mysql> select user,host,password from mysql.user where user='';
Empty set (0.00 sec)

मैं लॉगिन करता हूं root@localhost

mysql> select USER(),CURRENT_USER();
+----------------+----------------+
| USER()         | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+ 

मेरे पास डिफ़ॉल्ट पासवर्ड नहीं है, या my.cnf में परिभाषित स्किप-ग्रांट-टेबल नहीं है

root@gitlab:~# cat /etc/mysql/my.cnf |grep -i 'skip-grant-tables'|wc -l
0
root@gitlab:~# cat /etc/mysql/my.cnf |grep -i 'pass'|wc -l
0

अपडेट 3 :

मैंने कठपुतली के साथ इन चरणों का प्रदर्शन करने की कोशिश की है, (जो स्वचालित रूप से एक फ्लश विशेषाधिकारों का प्रदर्शन करना चाहिए)। मैंने मैन्युअल रूप से विशेषाधिकारों को भी हटा दिया है और mysql को पुनः आरंभ करने का भी प्रयास किया है।

Update4 :
मैंने mysql रूट पासवर्ड और फ्लश किए गए विशेषाधिकारों को बदलने की भी कोशिश की है। कोई भाग्य नहीं, मैं अभी भी पासवर्ड के बिना किसी भी उपयोगकर्ता के रूप में लॉग इन कर सकता हूं।


जवाबों:


6

मैं यह समझ गया। जबकि /etc/mysql/my.cnf में एक पासवर्ड कीपर संग्रहीत नहीं था, वहाँ /root/.my.cnf में संग्रहीत पासवर्ड था।

जैसे ही मैंने /root/.my.cnf में पासवर्ड कमेंट किया, मुझे पासवर्ड के बिना लॉग इन करने की अनुमति नहीं थी (जो कि मुझे उम्मीद थी)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.