Göre MySQL belgelerinde , anonim hesapları şifreleri ekleyerek veya çıkararak MySQL sunucusunu sertleşerek.
İstemcilerin parola olmadan anonim kullanıcı olarak bağlanmasını önlemek istiyorsanız, her anonim hesaba bir parola atamanız veya hesapları kaldırmanız gerekir.
Sertleşmeden önce, kullanıcı tablom böyle görünüyordu.
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 |
+------------------+-----------+-------------------------------------------+
Tüm anonim hesapları kaldırdım, böylece kullanıcı tablosu şimdi böyle görünüyor. (Kullanıcıları yönetmek için kukla kullanıyorum, ancak kukla etkili bir şekilde DROP USER
komut veriyor ).
mysql> select user,host,password from mysql.user;
+------------------+-----------+-------------------------------------------+
| user | host | password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *F3A2A51A9B0F2BE246XXXXXXXXXXXXXXXXXXXXXX |
| debian-sys-maint | localhost | *95C1BF709B26A5BAXXXXXXXXXXXXXXXXXXXXXXXX |
| myuser | localhost | *6C8989366EAF75BB6XXXXXXXXXXXXXXXXXXXXXXX |
+------------------+-----------+-------------------------------------------+
Neden hala kullanıcı adı veya şifre olmadan test sistemime giriş yapabiliyorum?
İstenmeyen kullanıcıların oturum açmasını önlemek için ne yapmam gerekir?
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>
Güncelleme : Bir şifre girmeden root olarak giriş yapabileceğimi de keşfettim.
Güncelleme2 : Bazı iyi bilgileri olan, ancak sorunu çözmeyen bu soruyu buldum .
Anonim kullanıcı yok.
mysql> select user,host,password from mysql.user where user='';
Empty set (0.00 sec)
Olarak giriş yapıyorum root@localhost
.
mysql> select USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
Varsayılan bir parolam veya my.cnf dosyasında tanımlanmış atlama-tablolarım yok
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
Güncelleme3 :
Bu adımları kukla ile denedim (otomatik olarak bir yıkama ayrıcalığı gerçekleştirmelidir). Ayrıca el ile ayrıcalıkları yıkadı ve ayrıca mysql yeniden başlatmayı denedim.
Update4 :
Ayrıca mysql kök parolasını ve temizlenmiş ayrıcalıkları değiştirmeyi denedim. Şans yok, yine de şifre olmadan herhangi bir kullanıcı olarak giriş yapabilirim.