首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 命令列新增用戶與授權:從高風險 % 帳號到安全 localhost 限制實戰

     編輯:MySQL 綜合教學

前言

透過 GRANT 同時完成「建立用戶」與「授權」是 MySQL 特有便利功能。本文示範高風險通配帳號與安全本機限制帳號的建立差異,並說明移除密碼的操作。

語法模板

GRANT 權限 ON 資料庫.表 TO '用戶'@'主機' IDENTIFIED BY '密碼';

案例 1:高風險帳號 (任意主機可連)

GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';

風險:密碼外洩即可從全球任何 IP 連線操作所有資料庫。**生產環境嚴禁使用**。

案例 2:安全帳號 (僅限本機 localhost)

GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
  • 外部即使知道密碼,也無法直接連線 (需跳板機/SSH 隧道/應用層)。
  • 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)。

最佳實踐清單

  1. 生產環境**一律限制主機** (具體 IP/網段),禁用 %。
  2. 應用帳號**最小權限**:僅授予所需庫/表/欄位的 SELECT/INSERT/UPDATE/DELETE。
  3. 密碼複雜度:≥12 字元、大小寫、數字、符號;定期輪換。
  4. 根帳號 root 僅允許 localhost,禁止遠端登入。
  5. 定期 SELECT User,Host FROM mysql.user; 審計異常帳號。

延伸閱讀

  • 教您如何查看 MySQL 用戶權限
  • 授予 MySQL 用戶權限的語句 (細分到 View/Procedure)
  • 授予 MySQL 用戶權限的指令詳解
  • MySQL 索引設計必知的 8 件事
  • 如何查看 MySQL 索引
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved