官方手冊:https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
MySQL是一個多用戶的數據庫,MySQL的用戶可以分為兩大類:
(1)超級管理員用戶(root),擁有全部權限
(2)普通用戶,由root創建,普通用戶只擁有root所分配的權限
mysql 的權限體系大致分為5個層級:
一、全局層級:
全局權限適用于一個給定服務器中的所有數據庫。這些權限存儲在mysql.user表中。
user表存儲了:
1、用戶的信息:
(1)hots列:用戶所在的主機
Localhost表示本機的用戶或者超級管理員
%表示任何主機上的root用戶
(2)user列:用戶名
(3)password(mysql5.7之前)| authentication_string(mysql5.7之后):密碼
2、用戶的權限信息:_priv
3、安全性相關的信息:ssl_、x509_記錄用戶登錄的驗證操作等
4、與資源分配相關的信息:max_
max_questions表示用戶在一個小時內最多可以進行的查詢次數。
max_updates表示用戶在一個小時內最多可以進行的更新次數,也包括增加數據、刪除數據。
max_connections:表示用戶最多可以建立的連接數
二、數據庫層級:
數據庫權限適用于一個給定數據庫中的所有目標。這些權限存儲在mysql.db表中。
db表
1、與用戶相關的字段:hots(用戶所在的主機),user(用戶名),
2、與權限相關的字段:_priv,DB字段規定了_priv權限的有效范圍。
三、表層級:
表權限適用于一個給定表中的所有列。這些權限存儲在mysql.talbes_priv表中。
四、列層級:
列權限適用于一個給定表中的單一列。這些權限存儲在mysql.columns_priv表中。當使用REVOKE時,必須指定與被授權列相同的列。
五、子程序層級:
CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權限適用于已存儲的子程序。這些權限可以被授予為全局層級和數據庫層級。而且,除了CREATE ROUTINE外,這些權限可以被授予為子程序層級,并存儲在mysql.procs_priv表中。
參考文檔:
http://blog.itpub.net/7607759/viewspace-716634
http://blog.csdn.net/mchdba/article/details/45934981
https://www.cnblogs.com/wangchaoyuana/p/7545419.html