在生產環境中,合理配置 MySQL 遠程訪問權限是資料庫安全的關鍵一環。本文將系統梳理授權命令語法、Host 欄位匹配規則及實戰案例,助你精準管控資料庫存取權限。
假設需允許 IP 為 192.168.2.3 的 test 用戶訪問本機所有資料庫,執行以下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'192.168.2.3' IDENTIFIED BY '123456'; mysql> FLUSH PRIVILEGES;
標準授權語法結構如下:
GRANT 權限列表 ON 資料庫.表 TO '用戶名'@'主機' IDENTIFIED BY '密碼';
ALL PRIVILEGES 代表所有權限,亦可指定 SELECT、INSERT 等單一權限*.* 表示所有資料庫所有表,亦可縮小範圍如 mydb.*% 通配所有 IP,localhost 僅限本機,具體 IP 則精準限制MySQL 通過 mysql.user 表的三個範圍列(Host、User、Password)進行身份檢查。只有當客戶端主機名、用戶名與表中記錄同時匹配,且密碼正確時,連接才會被接受。
db.example.com)、IPv4/IPv6 地址、localhost 表示本地回環% 匹配任意字符序列,_ 匹配單個字符,用法同 LIKE 操作符%:匹配所有主機%.mysql.com:匹配 mysql.com 域名下所有主機192.168.%:匹配 192.168 網段所有 IP%'user'@'%' 全通配授權,優先限制具體 IP 或網段mysql.user 表,清理無用或過期賬號REQUIRE SSL 子句FLUSH PRIVILEGES 使變更即時生效掌握上述機制,即可構建兼具靈活性與安全性的 MySQL 遠程訪問控制體系。