萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 安全加固:必須刪除/禁用的匿名用戶與空密碼賬號

隱患分析

MySQL 初始化會自動創建:

  • root@localhost(超級用戶)
  • ''@localhost(匿名用戶,無密碼)

風險:匿名用戶在 localhost 擁有近乎 root 的權限。攻擊者上傳 Webshell 後,可利用匿名用戶直連數據庫,創建高權限賬號,進而接管整個 MySQL 實例。

修復方案:兩步走

-- 1. 為匿名用戶設置強密碼(或直接刪除,見下)
UPDATE mysql.user SET password=PASSWORD('StrongP@ssw0rd!') WHERE user='';
FLUSH PRIVILEGES;

-- 2. 徹底刪除匿名用戶(推薦)
DROP USER ''@'localhost';
DROP USER ''@'127.0.0.1';
DROP USER ''@'::1';
FLUSH PRIVILEGES;

驗證清理結果

SELECT user, host FROM mysql.user;
-- 應不再出現 user='' 的行

生產環境最小權限清單

  1. 刪除所有匿名賬號
  2. root 僅允許 localhost/127.0.0.1 登入
  3. 業務賬號:僅授予具體庫·表的 SELECT/INSERT/UPDATE/DELETE
  4. 啟用 skip_name_resolve 避免 DNS 劫持
  5. 配置 max_user_connections 限制單用戶連接數
copyright © 萬盛學電腦網 all rights reserved