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

MySQL 權限體系詳解:三大類權限、授權表與最小權限原則

     編輯:MySQL 資料庫相關知識

權限三大分類

MySQL 權限儲存在 mysql 系統資料庫的多張授權表中,分為三類:

類別適用對象風險等級典型權限
普通用戶權限開發、讀寫業務資料低SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER 等
管理員權限DBA、運維極高SHUTDOWN, RELOAD, PROCESS, FILE, SUPER, REPLICATION SLAVE/CLIENT 等
特殊權限特定場景視用途ALL PRIVILEGES, GRANT OPTION, USAGE 等

核心授權表結構

  • user:全域帳號、密碼、全域權限。
  • db:資料庫級權限。
  • tables_priv、columns_priv:表/欄級細粒度權限。
  • procs_priv:存儲程序/函數權限。
  • proxies_priv:代理用戶權限。

最小權限原則實踐

  1. 業務帳號:僅授予特定資料庫的 SELECT, INSERT, UPDATE, DELETE,禁止 DROP, ALTER。
  2. 讀寫分離:從庫帳號僅授 SELECT;遷移/同步帳號加 REPLICATION SLAVE。
  3. 開發/測試環境:可放寬至 CREATE, DROP, INDEX,但嚴禁 SHUTDOWN, FILE, SUPER。
  4. 審計與回收:定期 SHOW GRANTS FOR 'user'@'host'; 核對,離職即回收。

授權與回收語法

-- 授權
GRANT SELECT, INSERT ON db_name.* TO 'app_user'@'10.0.%' IDENTIFIED BY 'strong_pwd';

-- 回收
REVOKE INSERT ON db_name.* FROM 'app_user'@'10.0.%';

-- 查看
SHOW GRANTS FOR 'app_user'@'10.0.%';

高危權限警示

⚠️ 以下權限極其敏感,非核心 DBA 嚴禁授予:
  • FILE:可讀寫伺服器任意檔案(配合 LOAD DATA INFILE、SELECT ... INTO OUTFILE)。
  • SUPER:可殺死任何連線、修改全域變數、啟動/停止複寫。
  • SHUTDOWN:可關閉資料庫服務。
  • GRANT OPTION:可將自身權限轉授他人,權限擴散隱患極大。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved