透過 GRANT 同時完成「建立用戶」與「授權」是 MySQL 特有便利功能。本文示範高風險通配帳號與安全本機限制帳號的建立差異,並說明移除密碼的操作。
GRANT 權限 ON 資料庫.表 TO '用戶'@'主機' IDENTIFIED BY '密碼';
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
風險:密碼外洩即可從全球任何 IP 連線操作所有資料庫。**生產環境嚴禁使用**。
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
localhost 走 Unix socket,非 TCP,效能略高且更安全。GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
或使用 SET PASSWORD FOR 'test2'@'localhost' = ''; (5.7+ 建議 ALTER USER)。
%。root 僅允許 localhost,禁止遠端登入。SELECT User,Host FROM mysql.user; 審計異常帳號。