Mysql

MySQL 5.5.16 允許匿名連接

  • March 14, 2012

顯然,我可以連接到 MySQL(至少從我的本地主機),而無需提供任何使用者名或密碼。只要密碼為空,我什至可以將任何內容作為使用者名。我可以訪問information_schematest數據庫。我可以創建表格。如果我執行SELECT USER()它,它會返回正確的值 randomstring@localhost,其中隨機字元串是我在連接時用於使用者名的任何字元串。

mysql.user表包含 root@localhost、root@127.0.0.1、@localhost 和 pma@localhost。UPDATE user SET password=...我為所有記錄手動設置了加密密碼(帶有空使用者名的記錄看起來很可疑,但我認為它與此無關,我認為它從一開始就存在。

更糟糕的是,如果我添加一個帶密碼的使用者,我只能使用空字元串作為密碼進行連接(就像我將任何內容作為使用者名一樣)。如果我嘗試使用我創建的使用者名和創建它時提供的密碼 ( CREATE USER .. IDENTIFIED BY ..) 進行連接,則它不起作用。

有誰知道出了什麼問題以及我該如何解決?

**注意:**我使用的是 XAMPP 包提供的用於 Windows 的 MySQL 5.5.16。

您只需刪除匿名使用者即可。

以後,執行 /usr/bin/mysql_secure_installation(RPM 安裝中的位置)將提示您刪除這些匿名使用者。

預設情況下,MySQL 安裝有一個匿名使用者,允許任何人登錄 MySQL,而無需為他們創建使用者帳戶。這僅用於測試,並使安裝更順暢。您應該在進入生產環境之前刪除它們。

移除匿名使用者?

$$ Y/n $$y …成功!

引用自:https://serverfault.com/questions/368641