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

MySQL 資料安全防護指南:七大實戰加固策略

     編輯:MySQL 資料庫相關知識

    為何資料庫安全非選擇題

    企業核心資產多集中於資料庫(客戶資料、交易紀錄、知識產權)。硬體故障可靠備份機制解決,但外部入侵、內部洩露、權限濫用需管理員主動建立多層防禦。MySQL 內建多項安全功能,善用可大幅降低風險。

    策略一:清理授權表萬用字元

    mysql.user、db、tables_priv 等授權表允許 %、_ 萬用字元,若疏於管控,駭客可透過低權限帳號橫向移動。
    行動: 定期執行 SHOW GRANTS FOR 'user'@'host'; 審查每個帳號,移除不必要的萬用字元授權,嚴格限制 SUPER、FILE、SHUTDOWN 等高危權限。

    策略二:強制強密碼策略

    • 安裝完成立即設定 root 密碼(預設為空)
    • 啟用 validate_password 外掛,強制長度、大小寫、數字、特殊字元
    • 禁用生日、用戶名、字典詞等弱密碼
    • 啟動選項 --secure-auth 禁止舊式雜湊格式

    策略三:保護設定檔與憑證檔

    客戶端 .my.cnf、.mylogin.cnf 以明文儲存密碼。
    規範: 僅擁有者可讀(chmod 600),置於非公開目錄(~/),嚴禁提交版控。

    策略四:啟用傳輸層加密

    • MySQL 5.7+ 內建 TLS,配置 ssl-ca、ssl-cert、ssl-key 於 [mysqld] 與 [client]
    • 或透過 SSH 隧道:ssh -L 3307:localhost:3306 user@db-host
    • 驗證:SHOW SESSION STATUS LIKE 'Ssl_cipher'; 非空即加密生效

    策略五:封鎖遠程 TCP 連線

    若應用與資料庫同機或經 Unix Socket 通訊:

    [mysqld]
    skip-networking
    bind-address=127.0.0.1

    徹底切斷網路攻擊面;若需遠程管理,改用 VPN/堡壘機/SSH 隧道。

    策略六:啟用並審計 General Log / Audit Log

    • general_log=ON 記錄所有連線與查詢(高負載慎用)
    • 生產環境建議部署 MariaDB Audit Plugin 或 MySQL Enterprise Audit,記錄 DDL/DML、失敗登入、權限變更
    • 日誌轉發至 SIEM(Splunk/ELK)即時告警異常存取

    策略七:最小權限原則與帳號生命週期管理

    • 應用帳號僅授予特定庫 SELECT/INSERT/UPDATE/DELETE
    • 開發/測試帳號定期過期、離職即撤銷
    • 根帳號 root 禁止應用直連,僅供 DBA 緊急維護

    持續安全清單

    1. 每月 SELECT User, Host, authentication_string FROM mysql.user; 檢查空密碼/匿名帳號
    2. 每季滾動更新 root/應用密碼
    3. 每半年複核 GRANT 清單,收回過度授權
    4. 訂閱 MySQL/MariaDB 安全公告,48 小時內修補關鍵 CVE
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved