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

MySQL 授權 (GRANT) 與撤銷 (REVOKE) 完整語法指南

     編輯:MySQL 綜合教學

MySQL 授權 (GRANT) 與撤銷 (REVOKE) 完整語法指南

基本語法:GRANT 權限 ON 資料庫對象 TO 用戶

一、一般資料用戶權限 (CRUD)

GRANT SELECT, INSERT, UPDATE, DELETE ON testdb.* TO common_user@'%';

二、開發人員權限 (DDL、索引、視圖、存儲程序)

-- 表結構
GRANT CREATE, ALTER, DROP ON testdb.* TO developer@'192.168.0.%';
-- 外鍵
GRANT REFERENCES ON testdb.* TO developer@'192.168.0.%';
-- 臨時表
GRANT CREATE TEMPORARY TABLES ON testdb.* TO developer@'192.168.0.%';
-- 索引
GRANT INDEX ON testdb.* TO developer@'192.168.0.%';
-- 視圖
GRANT CREATE VIEW, SHOW VIEW ON testdb.* TO developer@'192.168.0.%';
-- 存儲過程/函數
GRANT CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON testdb.* TO developer@'192.168.0.%';

三、DBA 管理單庫權限

GRANT ALL PRIVILEGES ON testdb TO dba@'localhost';

四、超級 DBA 管理全庫權限

GRANT ALL ON *.* TO dba@'localhost';

五、權限作用層級

  1. 全域:GRANT SELECT ON *.* TO dba@localhost;
  2. 單庫:GRANT SELECT ON testdb.* TO dba@localhost;
  3. 單表:GRANT SELECT, INSERT ON testdb.orders TO dba@localhost;
  4. 欄位級:GRANT SELECT(id, se, rank) ON testdb.apache_log TO dba@localhost;
  5. 存儲程序/函數:GRANT EXECUTE ON PROCEDURE testdb.pr_add TO 'dba'@'localhost';

六、查看權限

SHOW GRANTS;                 -- 當前用戶
SHOW GRANTS FOR dba@localhost;  -- 指定用戶

七、撤銷權限 (REVOKE)

語法同 GRANT,將 TO 改為 FROM:

REVOKE ALL ON *.* FROM dba@localhost;

八、注意事項

  1. 權限變更需用戶重新連線生效
  2. 授權遞傳需 WITH GRANT OPTION,生產環境建議由 DBA 統一管理,不開放此權限

補充:五大授權系統表

  • user:全域權限、連線認證
  • db:庫級權限
  • host:配合 db 進行主機級訪問控制 (不受 GRANT/REVOKE 影響)
  • tables_priv:表級權限
  • columns_priv:欄位級權限

掌握分層授權體系,能精準實施最小權限原則,保障資料庫安全。

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