安裝 MySQL 後自動建立 root 與匿名用戶 (User=''),密碼皆為空。許多教學只提醒改 root 密碼,忽略匿名用戶風險。
user='', password='', host='localhost' 成功連線SELECT * FROM mysql.user 發現匿名用戶在 localhost 擁有近乎 root 權限 (含 Grant_priv)CREATE USER + GRANT 建立高權限帳號UPDATE user SET Password=PASSWORD('newpass') WHERE User=''; FLUSH PRIVILEGES;DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES;mysql 系統庫Shutdown_priv, Reload_priv, Process_priv, File_priv最小權限原則:每個帳號僅賦予完成業務所需最小權限,定期審計 mysql.user 表。