mysql数据库权限表详细解释

来源:互联网 发布:淘宝怎么开通海外渠道 编辑:程序博客网 时间:2024/05/17 04:19

当我们在安装完成Mysql数据库时,会自动创建一个mysql的数据库,mysql数据库下面存储的都是权限表。


这些权限表中最重要的是user表,db表,host表,tables_priv表,columns_priv表,proc_priv表。


下面来详细解释一下:

user表:

   user表是mysql中最重要的一个权限表:


User表有39个字段,这些字段大致可分为4类:用户列,权限列,安全列,资源控制列。


用户列:

   Host,User,Password,分别表示主机名,用户名,密码

权限列:

   Select_priv,Insert_priv等以priv结尾的字段,这些字段决定了用户的权限, 

安全列:

ssl_type   ssl_cipher   x509_issuer和x509_subject。

ssl用于加密,x509标准可以用来标识用户。


资源控制列:

max_questions,max_updates,max_connections和max_user_connections.

max_questions,max_updates分别表示每小时允许执行多少次查询和更新

max_connections 表示每小时可以建立多少连接

max_user_connections规定单个用户可以同时具有的连接数

.



db表和host表

db表中存储了某个用户对一个数据库的权限

db表的结果:


host表结构




db表的用户列有3个字段,分别是Host,Db和User。分别表示主机名,数据库名,和用户名。

host表的用户列有两个字段,分别是Host和Db.分别表示主机名和数据库名


db表和host表的权限列几乎是一样的。只是db表多了一个Create_routine_priv字段和Alter_routine_priv字段。这两个字段决定用户是否具有创建和修改存储过程的权限。


tables_priv表可以对单个表进行权限设置。

columns表可以对单个数据列进行权限设置。


MySQL中权限分配是按照user表,db表,table_priv表和columns_priv表的顺序进行分配的,数据库系统中,先判断user表中的值是否为Y,如果user表中的值是Y,就不需要检查后面的表。如果user表的值为N,则依次检查db表,table_priv表和colums_priv表


procs_priv表可以对存储过程和存储函数进行权限设置。

   procs_priv表包含了8个字段,分别是Host,Db,User,Routine_name,Routine_type,Proc_priv,Timestamp和Grantor。

前三个字段Host,Db,User表示主机名,数据库名,用户名

Routine_name字段表示存储过程或函数的名称。

Routine_type字段表示类型。该字段有两个取值,分别是FUNCTION和PROCEDURE。FUNCTION表示这是个存储函数,PROCEDURE表示这是一个存储过程。

Proc_priv字段表示拥有的权限。权限分别是:Execute,Alter Routine和Grant.

Timestamp字段存储更新的实际

Grantor字段存储权限是谁设置的