官方手册: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
网友评论