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

MySQL 用戶權限體系全景圖:五層級權限、六大系統表、創建/刪除/修改密碼/收回權限完整操作指南

     編輯:MySQL 綜合教學

五層權限體系

層級範圍存儲表典型授權語句
全局所有庫所有表mysql.userGRANT ALL ON *.* TO user@'%';
庫級單庫所有表mysql.dbGRANT ALL ON db.* TO user@'%';
表級單表所有列mysql.tables_privGRANT SELECT ON db.tbl TO user@'%';
列級單表單列mysql.columns_privGRANT SELECT(col) ON db.tbl TO user@'%';
程序級存儲過程/函數mysql.procs_privGRANT EXECUTE ON PROCEDURE db.sp TO user@'%';

六大權限系統表結構要點

  • mysql.user:全局權限、密碼、資源限制、SSL、插件認證
  • mysql.db:庫級權限,主鍵 (Host, Db, User)
  • mysql.tables_priv:表級權限,Table_priv (set)、Column_priv (set)
  • mysql.columns_priv:列級權限,主鍵含 Column_name
  • mysql.procs_priv:程序級權限,Proc_priv (set)
  • mysql.proxies_priv:代理用戶權限

創建用戶三種方式

DROP USER 'app'@'%';  -- 推薦
-- 或
DELETE FROM mysql.user WHERE User='app' AND Host='%'; FLUSH PRIVILEGES;

修改密碼四種方式


忘記 root 密碼恢復

  1. 停止服務:systemctl stop mysqld
  2. 跳過授權表啟動:mysqld_safe --skip-grant-tables &
  3. 無密碼登錄:mysql -u root
  4. 修改密碼:UPDATE mysql.user SET authentication_string=PASSWORD('new') WHERE User='root'; FLUSH PRIVILEGES;
  5. 正常重啟:systemctl restart mysqld

收回權限

角色典型權限
應用賬號SELECT, INSERT, UPDATE, DELETE, EXECUTE
開發人員SELECT + 建表/改表/刪表/索引/視圖/存儲過程權限
只讀分析SELECT(可限制到列級)
普通 DBA單庫 ALL PRIVILEGES
超級 DBA*.* ALL PRIVILEGES


環境隔離原則

  • 生產庫:僅應用賬號寫入,DBA 變更走審批,開發/測試/分析唯讀
  • 測試庫:測試寫入,開發/分析讀,結構變更雙人審核
  • 開發庫:全團隊讀寫改結構,只要不掛服務即可
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved