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

MySQL 權限體系深度解讀:從四張權限表到生產安全配置清單

     編輯:MySQL 綜合教學

MySQL 權限體系深度解讀:從四張權限表到生產安全配置清單

「最小權限原則」人人會說,但具體如何落地?本文系統梳理 MySQL 四張權限表驗證邏輯、權限分類、數據庫層權限矩陣,並給出生產環境 9 項安全配置清單與入侵提權分析,助你構建「既安全又能跑」的 MySQL 權限體系。

一、權限驗證流程:四表級聯檢查

  1. user 表:檢查 Host、User、Password,通過則進入權限分配。
  2. 全局權限:user 表中對應權限為 Y → 擁有所有庫權限,停止檢查。
  3. db 表:user 為 N → 檢查 db 表該用戶對具體庫的權限。
  4. tables_priv 表:db 為 N → 檢查表級權限。
  5. columns_priv 表:表級為 N → 檢查列級權限。

原則:**高層 Y 即停止,低層 N 繼續向下**。

二、MySQL 權限分類全景圖

權限分為三大類:

  • 管理權限:SUPER、PROCESS、FILE、RELOAD、SHUTDOWN、CREATE USER 等,僅在 user 表生效。
  • 數據操作權限:SELECT、INSERT、UPDATE、DELETE,可在四層生效。
  • 結構變更權限:CREATE、DROP、ALTER、INDEX 等,庫/表級生效。

(文中附兩張權限詳細表截圖,此處略。)

三、數據庫層 (db 表) 權限建議矩陣

四、生產環境 9 項安全配置清單

  1. 網絡層隔離:防火牆/iptables 僅放行應用服務器 IP 訪問 3306。
  2. 修改默認端口:my.cnf 設 port=xxxx,降低掃描風險。
  3. 強密碼 + 指定 Host:CREATE USER 'app'@'10.0.0.%' IDENTIFIED BY 'StrongPass!'; 禁止 %。
  4. Root 鎖死:強密碼 + host='localhost' 或 127.0.0.1,禁用遠程登錄。
  5. 審計日誌:啟用 general_log 或审计插件,記錄登錄與敏感操作。
  6. 進程用戶最小化:Linux 用專用 mysql 用戶運行,目錄權限 750,data 目錄 770;Windows 用 Network Service 或專用賬號。
  7. 磁盤權限收緊:運行用戶無網站目錄寫入/執行權,無 cmd/sh 執行權。
  8. 應用賬號「單庫全權」:GRANT ALL ON app_db.* TO 'app'@'10.0.%'; 自動排除 SUPER/FILE 等管理權限,兼顧便利與安全。
  9. 清理無用庫:刪除 test 庫(新用戶默認有權限)。

五、常見提權路徑與防禦

角色建議權限說明
只讀賬號SELECT報表、備份、只讀服務
開發/測試SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER日常開發所需,無管理權限
應用賬號SELECT, INSERT, UPDATE, DELETE, EXECUTE視業務精簡,原則上不給 DROP/ALTER
遷移/同步REPLICATION SLAVE / CLIENT專用複制賬號

六、常用權限管理命令速查

-- 新建用戶並授權單庫全權
GRANT ALL PRIVILEGES ON db.* TO 'user'@'host' IDENTIFIED BY 'pass';
-- 僅授權增刪改查
GRANT SELECT,INSERT,UPDATE,DELETE ON db.* TO 'user'@'host' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'user'@'host';
REVOKE DELETE ON *.* FROM 'jack'@'localhost';
DROP USER 'jack'@'localhost';
RENAME USER 'jack'@'%' TO 'jim'@'%';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
DROP DATABASE test;
SELECT * FROM t INTO OUTFILE '/tmp/out.csv';  -- 需 FILE 權限

總結

MySQL 權限體系以四表級聯驗證為核心,生產配置應遵循「網絡隔離、最小權限、專用賬號、進程低權、審計可追溯」五大原則。定期 SHOW GRANTS 掃描異常授權,保持權限面收斂。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
路徑關鍵條件防禦核心
UDF 提權導入惡意 DLL進程用戶無數據目錄寫入權 + 禁用 plugin_dir 寫入
寫啟動項進程用戶有啟動目錄寫入權同上,收緊目錄權限
Root 洩露Root 弱口令/遠程登錄強密碼 + 僅本地 + 進程用戶低權限兜底
普通賬號洩露 (注入/服務器被控)應用賬號密碼外泄單庫全權 + 無 FILE 權限 + 進程用戶低權限,限制損失範圍