Root şifresini ayarladıktan sonra neden MYSQL hala şifre olmadan giriş yapmama izin veriyor?


10

Root şifresini ayarladıktan sonra neden MYSQL hala komut satırından şifre olmadan giriş yapmama izin veriyor? Bir kök unix isteminde "mysql" yazabilir ve hiçbir şifre sorar ve hala bana kök erişim sağlar. Neden "mysql -u root" ŞİMDİ bana hesapta belirlediğim şifreyi sormadığını anlamıyorum.

Ayrıca, uzak bir makineden mysql 'root' olarak oturum açamıyorum. Aşağıda doğru şekilde yapılandırmadım mı? Şu hatayı alıyorum: "Ana bilgisayar ... Bu MySQL sunucusuna bağlanmasına izin verilmiyor. '%' İçin yapılandırmadım mı?

İşte benim kullanıcı tablo:

mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| %         | root |                                           |
| 127.0.0.1 | root |                                           |
| ::1       | root |                                           |
| localhost |      |                                           |
| %         |      |                                           |
+-----------+------+-------------------------------------------+
6 rows in set (0.00 sec)

Yanıtlar:


4

Görünüşe göre şifre 'root'@'localhost'kullanıcı girişinde ayarlanmış , ancak girişte ayarlanmamış 'root'@'%'; buna dayanarak şifresiz kimlik doğrulamasına izin verilecektir.

Güvenlik amacıyla, her yerden kök erişimine izin vermeyi yeniden düşünün. İhtiyacınız varsa, yerel ana özelliklerden kurtulun:

drop user 'root'@'localhost';
drop user 'root'@'127.0.0.1';
drop user 'root'@'::1';

Ve 'root'@'%'kullanıcı için şifreyi ayarlayın :

set password for 'root'@'%' = password('passwordhere');

İhtiyacım olan her şey ve sonra bazı. Teşekkürler. Neyin kaldırılması güvenli olmadığından emin değildim ve sorumu yanıtladı. Mükemmel cevap. :-)
djangofan

4

Cevap şu tabloda doğrudur - listelenmiş parolası olmayan "kök" satırlarını kaldırmanız gerekir.

Ayrıca, kullanıcı veya geçiş kullanılmadığında herhangi bir yerden (?!?!) Bağlantılara izin verdiğiniz görülüyor. Muhtemelen kötü bir fikir. Gibi bir şey yapardım:

mysql> use mysql;
mysql> delete from user where password = "";

2

FLUSH PRIVILEGES'i unutmayın ya da şifre olmadan giriş yapabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.