MySQL數據庫有一個特殊的用戶,即匿名用戶。這個用戶可以允許任何人以任何方式訪問MySQL服務,從而出現安全風險。
mysql>select user,host from mysql.user where user=''; +------+-----------+ | user | host | +------+-----------+ | | localhost | +------+-----------+ 1 row in set (0.00 sec)
如上所示,如果您在MySQL服務器上輸入上述命令,您將看到一個名為“”且host為localhost的用戶。這就是MySQL中的匿名用戶。
由于MySQL默認允許匿名用戶連接,因此任何未經身份驗證的用戶都可以連接到MySQL服務器。這意味著,如果您未禁用匿名用戶,攻擊者可以使用此用戶登錄到MySQL服務器,并訪問甚至更改您的敏感信息。
因此,為了保護MySQL服務器的安全性,您應該刪除MySQL中的匿名用戶。
mysql>delete from mysql.user where user=''; Query OK, 1 row affected (0.00 sec) mysql>flush privileges; Query OK, 0 rows affected (0.00 sec)
上述命令將刪除MySQL中的匿名用戶。執行flush privileges命令以使更改生效。
現在,任何沒有良好身份驗證的用戶都將無法連接到MySQL服務器。