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

MySQL 用戶連線授權精解:主機通配符、IP 掩碼、最小權限實戰

     編輯:MySQL 資料庫相關知識

授權語法核心

GRANT privileges ON db.tbl TO 'user'@'host_spec' IDENTIFIED BY 'pass';

host_spec 決定「從哪裡可以連」,支援:

  • 精確主機名:localhost、app.server.com
  • 精確 IP:192.168.1.100
  • 通配符 %:192.168.1.% (C 類)、% (任意)
  • 域名後綴:%.example.com
  • CIDR 掩碼 (3.23+):192.168.128.0/17 → 前 17 位固定,匹配 192.168.128.0 ~ 192.168.255.255

實戰授權矩陣

角色Host Spec權限說明
本地管理root@localhostALL僅本機 socket 連線
應用讀寫app@10.0.1.%SELECT,INSERT,UPDATE,DELETE應用叢集 CIDR
唯讀報表ro@10.0.2.%SELECT分析平台網段
開發測試dev@192.168.%.%ALL ON dev_db.*開發網段、隔離庫
備份帳號backup@10.0.10.10SELECT,LOCK TABLES,RELOAD,REPLICATION CLIENT單一備份伺服器
異地從庫repl@203.0.113.50REPLICATION SLAVE固定公網 IP

通配符優先級與匹配順序

MySQL 授權表排序:最具體優先 → localhost > 192.168.1.100 > 192.168.1.% > %。
建立帳號時避免同用戶多 host 衝突,或用 RENAME USER 整理。

IP 掩碼實戰:精準控制網段

-- 允許 10.0.0.0/8 內所有應用伺服器
GRANT SELECT,INSERT,UPDATE,DELETE ON prod.* TO 'app'@'10.0.0.0/8';

-- 允許 172.16.0.0/12 (RFC1918 B 類)
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.16.0.0/12';

優點:單條規則覆蓋大網段、無需枚舉 IP、自動適應擴容。

安全審計查詢

-- 列出所有非本地帳號
SELECT User, Host FROM mysql.user WHERE Host NOT IN ('localhost','127.0.0.1','::1');

-- 發現過寬授權
SELECT User, Host FROM mysql.user WHERE Host = '%';

-- 檢查高危權限
SELECT User, Host, File_priv, Super_priv, Process_priv FROM mysql.user
WHERE File_priv='Y' OR Super_priv='Y' OR Process_priv='Y';

結語

user@host 是 MySQL 存取控制的基石。精確 IP > CIDR 掩碼 > 通配符 > %,配合最小權限原則,構建「零信任」資料庫網路邊界。

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