Mysql

主機名為空的 MySQL 使用者

  • February 14, 2017

在 MySQL 5.6 伺服器上,該mysql.user表包含一個主機名為空 ( 'jdoe'@'') 的使用者。那是什麼意思?

名為 joe 的使用者可以從任何主機連接。

請注意MySQL 5.0 認證學習指南

在此處輸入圖像描述

在第 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 階段:請求驗證

‘%’ 或空白主機值表示“任何主機”。

這適用於所有級別的贈款。

引用自:https://dba.stackexchange.com/questions/162333