Mysql
MySQL 5.5.16 允許匿名連接
顯然,我可以連接到 MySQL(至少從我的本地主機),而無需提供任何使用者名或密碼。只要密碼為空,我什至可以將任何內容作為使用者名。我可以訪問
information_schema
和test
數據庫。我可以創建表格。如果我執行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 …成功!