MySQL 作為中小型應用首選資料庫,其管理核心在於安全基線建立、最小權限原則落地與標準化運維流程。本文提煉生產環境驗證的核心實踐。
net start mysql 啟動,net stop mysql 停止systemctl start mysqld / enable mysqld/etc/init.d/mysqld start / chkconfig mysqld onUSE mysql;
DELETE FROM user WHERE User = '';
UPDATE user SET authentication_string = PASSWORD('StrongP@ssw0rd!') WHERE User = 'root';
FLUSH PRIVILEGES;
MySQL 8.0+:ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd!';
UPDATE user SET Host = '127.0.0.1' WHERE User = 'root' AND Host = '%';
FLUSH PRIVILEGES;
僅允許本機連接,杜絕遠程 root 登入。
「業務賬號不使用 root,每個應用專用賬號,僅授予必要權限」
常用 GRANT 模板
場景 SQL 範例 權限說明 完整業務庫管理 GRANT ALL ON biz_db.* TO 'app_user'@'10.0.0.%' IDENTIFIED BY 'pass';指定庫所有權限,限制來源 IP 段 唯讀報表賬號 GRANT SELECT ON biz_db.* TO 'ro_user'@'%' IDENTIFIED BY 'pass';僅查詢權限,允許任意 IP (配合防火牆) 寫入服務賬號 GRANT INSERT,UPDATE ON biz_db.orders TO 'svc_order'@'10.0.1.%' IDENTIFIED BY 'pass';表級權限,無 DELETE/DROP 特定表精細控制 GRANT UPDATE (status), SELECT ON biz_db.orders TO 'svc_status'@'%' IDENTIFIED BY 'pass';欄位級權限 (MySQL 8.0+) 權限回收與清理
-- 回收特定權限 REVOKE DELETE ON biz_db.* FROM 'app_user'@'%'; -- 徹底刪除用戶 DROP USER 'old_user'@'%'; -- 查看用戶權限 SHOW GRANTS FOR 'app_user'@'%';四、連接與認證安全加固
密碼策略
- 啟用
validate_password插件 (MySQL 5.6+ 內建)- 設定:長度≥12、混合大小寫數字符號、過期輪換 90 天
- 禁用明文密碼傳輸:強制 SSL/TLS 連接
網路層隔離
- 防火牆僅開放應用服務器 IP 段訪問 3306
- 資料庫服務器不直接暴露公網,置於 VPC 私有子網/防火牆後/DMZ 區
bind-address = 10.0.0.10(僅綁定內網 IP)驗證插件升級
-- MySQL 8.0 預設 caching_sha2_password (更安全) ALTER USER 'app_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'new_pass'; -- 兼容舊驅動可用 mysql_native_password ALTER USER 'legacy_user'@'%' IDENTIFIED WITH mysql_native_password BY 'pass';五、高危權限管控清單
高危權限 風險 管控原則 FILELOAD DATA INFILE讀取任意系統檔案 (如 /etc/passwd)僅 DBA 持有,嚴禁業務賬號 PROCESS查看所有連線執行的 SQL (含敏感數據) 僅監控賬號持有 SUPERKILL 連線、修改全域變數、控制主從同步 極少數 DBA 持有 SHUTDOWN關閉資料庫服務 僅自動化運維賬號 CREATE USER建立新賬號,繞過審批 嚴格管控 六、審計與監控基線
- 啟用一般查詢日誌 (開發環境) / 審計日誌插件 (生產環境)
- 監控關鍵指標:連線數、慢查詢、複製延遲、磁碟空間、InnoDB 緩衝池命中率
- 定期審計:
SELECT User, Host FROM mysql.user WHERE User='root' AND Host='%';(應為空)七、避坑指南:十大常見管理失誤
- 生產庫使用 root 直接連接應用
- 密碼寫在應用配置檔明文 / 程式碼倉庫
- 未限制 root 遠程登入
- 業務賬號擁有 DROP/DATABASE/FILE 權限
- 未啟用 SSL/TLS 加密傳輸
- 3306 直接對公網開放
- 無定期備份/備份未驗證可恢復
- 未監控慢查詢/長事務/鎖等待
- 未限制
max_user_connections導單一賬號併發耗盡資源- 未制定變更管理流程 (DDL 直接跑生產)
八、標準化運維檢查清單 (月度)
- [ ] 核對用戶清單,清理離職/廢棄賬號
- [ ] 檢查權限是否過度授予 (SHOW GRANTS 逐一核對)
- [ ] 驗證備份可恢復性 (隨機抽樣恢復測試)
- [ ] 分析 Top 10 慢查詢,推動索引優化
- [ ] 檢查磁碟空間增長趨勢,規劃擴容
- [ ] 確認主從同步延遲 < 1 秒
- [ ] 更新密碼輪換 (如適用)
- [ ] 審計日誌抽樣分析異常訪問