首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 遠程訪問授權配置全攻略

     編輯:MySQL 資料庫相關知識

兩種授權方式對比

方式一:直接修改 user 表(不推薦,舊版殘留)

mysql -u root -p
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;

缺點:繞過權限系統,易導致元數據不一致,MySQL 8.0+ 已移除 user.host 直接更新支持。

方式二:GRANT 授權語句(標準、安全、推薦)

場景 1:任意主機 root 訪問(開發/測試環境)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'strong_password' WITH GRANT OPTION;

場景 2:指定 IP 訪問(生產環境最小權限原則)

-- 僅授予增刪改查權限
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'app_user'@'202.11.10.253' IDENTIFIED BY 'db_pass';

-- 授予所有權限(含建表、索引等)
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'202.11.10.253' IDENTIFIED BY 'db_pass';

場景 3:通配符網段授權(內網應用叢集)

GRANT ALL ON db_name.* TO 'cluster_user'@'192.168.1.%' IDENTIFIED BY 'pass';

關鍵後續操作

FLUSH PRIVILEGES;  -- 必須執行,使授權即時生效

安全加固清單

  1. 禁用 root 遠程登錄:生產庫僅允許 root@'localhost' 或 127.0.0.1
  2. 強密碼策略:16 位以上、含大小寫數字符號、定期輪換
  3. 網絡層隔離:安全組/防火牆僅放行應用服務器 IP 段 3306 端口
  4. 啟用 SSL:REQUIRE SSL 強制加密傳輸
  5. 審計日志:開啟 log_bin + audit_log 記錄所有授權變更

常見報錯排查

錯誤現象可能原因解決方法
Host 'x.x.x.x' is not allowed to connect用戶 host 欄位不匹配檢查 SELECT user, host FROM mysql.user; 增加對應授權
Access denied for user 'root'@'%'密碼錯誤或無 GRANT OPTION重置密碼、確認 WITH GRANT OPTION
SSL connection required用戶要求 SSL 但客戶端未配置客戶端加 --ssl-mode=REQUIRED 或用戶改 REQUIRE NONE

遵循最小權限原則,配合網絡層防護,構建安全可控的 MySQL 遠程訪問體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved