Mysql
主機名為空的 MySQL 使用者
在 MySQL 5.6 伺服器上,該
mysql.user
表包含一個主機名為空 ('jdoe'@''
) 的使用者。那是什麼意思?
名為 joe 的使用者可以從任何主機連接。
在第 498 頁第 6 段的要點中說:
在 Unix 上,MySQL 帶有一個 mysql_secure_installation 腳本,它可以在您的安裝中執行一些有用的與安全相關的操作。該腳本具有以下功能:
- 為 root 帳戶設置密碼
- 刪除任何可遠端訪問的根帳戶。
- 刪除匿名使用者帳戶。這提高了安全性,因為它可以防止任何人以 root 身份從遠端主機連接到 MySQL 伺服器。結果是任何想要以 root 身份連接的人都必須首先能夠登錄伺服器主機,這提供了額外的攻擊屏障。
- 刪除測試數據庫(如果您刪除匿名帳戶,您可能還想刪除他們有權訪問的測試數據庫)。
該使用者需要立即刪除。
只需執行
DELETE FROM mysql.user WHERE host=''; FLUSH PRIVILEGES;
試一試 !!!
更新 2017-02-01 17:07 EST
根據 MySQL訪問控製文件,第 2 階段:請求驗證
‘%’ 或空白主機值表示“任何主機”。
這適用於所有級別的贈款。