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

MySQL 開啟遠程連接授權全指南:防火牆、安全狗、權限最小化實戰

     編輯:MySQL 綜合教學

MySQL 開啟遠程連接授權全指南:三層防護與最小權限原則

遠程連接 MySQL 涉及網絡通達性、主機防火牆/安全軟件、數據庫賬號授權三層防護。本文提供生產環境可直接執行的標準化流程,強調「僅授權備份 IP、僅授 SELECT/LOCK TABLES 權限」的最小權限原則。

第一層:網絡通達性(端口 3306)

  • 確認服務器防火牆放行 3306:
    firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload (CentOS 7+)
  • 雲廠商安全組/ACL 放行備份服務器 IP 段入站 3306。
  • 自定義端口(如 3307)同理放行對應端口。

第二層:主機安全軟件白名單

  • 安裝「安全狗/雲鎖/安騎士」等 Agent 時,必須將備份服務器 IP 加入白名單。
  • 示例備份 IP:115.28.36.60(文中示例,實際以服務商提供為準)。
  • 白名單配置通常在 Agent 控制台「信任 IP」或「白名單」模塊。

第三層:MySQL 賬號授權(核心)

1. 登錄數據庫

mysql -u root -p
# 輸入 root 密碼進入 mysql> 交互界面

2. 創建遠程備份賬號並授權

-- 僅授權 SELECT 與 LOCK TABLES(mysqldump --single-transaction 需鎖表)
GRANT SELECT, LOCK TABLES ON discuz.* TO 'ted'@'115.28.36.60' IDENTIFIED BY 'StrongPass123!';

-- 通配符 IP(不推薦生產):'%' 表示任意 IP
-- GRANT SELECT, LOCK TABLES ON discuz.* TO 'ted'@'%' IDENTIFIED BY 'StrongPass123!';

-- 全庫全表授權(極不推薦):*.*
-- GRANT SELECT, LOCK TABLES ON *.* TO 'ted'@'115.28.36.60' IDENTIFIED BY 'StrongPass123!';

-- 立即生效
FLUSH PRIVILEGES;

3. 權限模型解析

授權語法生效範圍風險等級
db.*指定庫所有表低
db.table指定庫指定表極低
*.*所有庫所有表高(含系統庫)

4. 驗證授權生效

SELECT Host, User FROM mysql.user WHERE User='ted';
-- 輸出應包含:115.28.36.60 | ted

SHOW GRANTS FOR 'ted'@'115.28.36.60';
-- 輸出應含:GRANT SELECT, LOCK TABLES ON `discuz`.* TO 'ted'@'115.28.36.60'

安全性說明

  • 僅授 SELECT + LOCK TABLES:備份工具(mysqldump/xtrabackup)僅需讀取數據與短暫鎖表,無法修改、刪除、DDL、授權。
  • 綁定具體 IP:即使密碼洩露,攻擊者無法從非白名單 IP 連接。
  • 強密碼策略:≥12 位,含大小寫、數字、特殊符號,定期輪換。
  • 審計日誌:開啟 audit_log 插件記錄所有遠程連接與操作。

常見連不上排查清單

  1. telnet 3306 不通 → 防火牆/安全組/安全狗攔截。
  2. 通但報 Access denied → 賬號/密碼/IP 不匹配,檢查 mysql.user 表 Host 列。
  3. 通但報 Host 'x.x.x.x' is not allowed to connect → skip_name_resolve=1 導致反解失敗,授權時用 IP 而非主機名。
  4. SSL 強制模式下無憑證 → 補全 CA/Client Cert 或暫時關閉 require_secure_transport。

遵循「網絡→主機→數據庫」三層授權、最小權限、IP 綁定、審計日誌,可安全、合規地開放 MySQL 遠程備份通道。

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