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

MySQL 安全 23 條軍規:從 SSH 隧道到權限最小化、審計日誌、應急預案全覆蓋

     編輯:MySQL 綜合教學

MySQL 官方安全指南提煉 23 條核心防護準則,構建網絡、認證、配置、審計四層纵深防禦體系。本文按防禦維度重組解讀,便於運維團隊落地執行。

網絡傳輸安全 (1-4, 9)

  1. 跨不可信網絡強制 SSH 隧道 加密通訊。
  2. Root 密碼首要修改 (默認空),SET PASSWORD 或 UPDATE mysql.user + FLUSH PRIVILEGES。
  3. 防禦偷聽/篡改/重放/DoS:基於 ACL 訪問控制 + SSL 支援。
  4. 非 Root 用戶禁訪 mysql.user 表,密碼哈希洩露即意味賬號淪陷。
  5. 3306 端口防火牆屏蔽非信任網絡,nmap/telnet 驗證。

認證授權鐵律 (5-8, 12-13, 17-18, 20-21)

  1. GRANT/REVOKE 精細授權,拒絕通配符庫/表授權。
  2. 密碼存儲單向哈希 (MD5/SHA1) 禁明文。
  3. 拒絕字典弱口令,強制複雜度策略。
  4. 應用賬號最小權限,僅必要增刪改查。
  5. 編程接口必用轉義函數 防 SQL 注入 (各語言 escape_string)。
  6. Web 表單參數化/轉義:單引號 %27、雙引號 %22、井號 %23 URL 編碼,杜絕 WHERE id=234 OR 1=1 注入。
  7. 輸入長度校驗 防超長載荷攻擊。
  8. SUPER/PROCESS 權限僅限管理員,PROCESS 可見所有查詢文本,SUPER 可斷連接、改參數、控制復制。
  9. FILE 權限僅限管理員,防 LOAD DATA '/etc/passwd' 任意文件讀取。
  10. max_user_connections 限制單賬號連接數 防連接耗盡 DoS。
  11. GRANT 資源控制選項 (MAX_QUERIES_PER_HOUR 等) 限制資源濫用。

配置與文件系統加固 (14-16, 19, 22)

  1. 配置文件權限 0600,存放非公共目錄 (用戶家目錄)。
  2. 禁用符號鏈接 (--skip-symbolic-links)。
  3. 數據目錄僅啟動用戶可讀寫。
  4. 不信任 DNS 時僅授權 IP。
  5. --local-infile=0 禁用 LOAD DATA LOCAL;--skip-grant-tables 臨時跳過授權 (僅應急);--skip-show-databases 隱藏庫列表。

審計與應急 (23)

  1. 啟用通用查詢日誌:時間戳記錄每連接/斷開/查詢,異常溯源首選。安全是日常工作,持續監控、定期滲透測試、應急預案演練。

Root 密碼遺失應急流程

1. mysqld --skip-grant-tables &
2. mysql -u root mysql
3. UPDATE user SET password=PASSWORD('newpwd') WHERE user='root';
4. FLUSH PRIVILEGES;
5. 正常重啟 mysqld

總結

23 條非清單勾選項,而是 SOP 內化項。最小權限、加密傳輸、審計留痕、定期演練——將安全融入運維基因,才能在攻防博弈中立於不敗之地。

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