Linux

MySQL 允許無密碼進入

  • March 3, 2015

我已將我的 MySQL 數據庫配置為要求所有使用者的密碼,甚至是機器本身的 root。

現在我發現我的數據庫中有空使用者

再現:mysql -u root -p然後use mysql;&select * from user;

它給了我 2 個條目,一個帶有“localhost”和使用者 <empty>,另一個帶有機器的主機名和 <empty>。

現在我嘗試使用mysql -u ' '(是的,它是正確的,在 ’ 之間留一個空格)訪問該帳戶,並且我在沒有密碼的情況下登錄。使用者可以“僅”查看 information_schema 和 test,這兩個數據庫是預設創建的。他無權訪問 mysql 或任何其他自定義創建的數據庫。

我已經將此使用者的密碼更改為我不會告訴您的內容

mysql -u root -p
use mysql;
UPDATE mysql.user SET Password=PASSWORD('thisisasecretpassword') WHERE USER='root';
FLUSH PRIVILEGES;

現在我的問題:

  • 是否有任何 MySQL 伺服器容易受到此條目的攻擊?
  • 攻擊者能否破解此帳戶或兩個預設數據庫?
  • 我應該用密碼保護這些使用者還是可以刪除它們?某些 MySQL 內部的東西需要它們嗎?

這些是匿名使用者,因此不需要密碼。預設情況下,它們是在所有安裝中創建的。我不確定為什麼會這樣。

您可以為它們設置密碼或刪除它們。從https://dev.mysql.com/doc/refman/5.6/en/default-privileges.html

如果您想阻止客戶端以匿名使用者身份連接而沒有密碼,您應該為每個匿名帳戶分配一個密碼,或者刪除這些帳戶。

似乎是這個的副本:MySQL 5.5.16 allowed anonymous connections

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