12.1 权限表
12.1.1 user表
user表user表是MySQL中最重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局的
用户列
user表的用户列包括Host、User、Password,分别表示主机名。用户名和密码,其中Host和User为联合主键。权限列
权限列字段决定了用户的权限,描述了在全局范围内允许对数据和数据库进行的操作,还包括查询权限,修改权限等普通权限,还包括关闭服务器、超级权限和加载用户等高级权限。普通权限用于操作,高级权限用于管理。
安全列
安全列有6个字段,两个是
ssl相关,两个是x509相关的,另外两个是授权插件相关的。ssl用于加密;x509标准可用于标识用户;Plugin字段标识可以用于验证身份插件,如果为空,服务器使用内建授权验证机制验证用户身份。可通过SHOW VARIABLES LIKE 'have_openssl'语句来查询服务器是否支持ssl功能。资源控制列
max_questions用户每小时允许的查询次数max_updates用户每小时允许的更新操作次数max_connections用户每小时允许执行的连接操作次数max_user_connections用户每小时允许建立的连接次数
12.1.2 db表和host表
db表和host表用户列
db表用户列有3个字段,分别是Host、User、Db,标识从某个主机连接某个用户对某个数据库的操作权限,这3个字段的组合构成了db表的主键。host 表不存储用户名称,用户列只有2个字段,分别是Host和Db,表示从某个主机连接的用户对某个数据库的操作权限,其只有2个字段,分别是Host和Db,表示从某个主机连接的用户对某个数据库的操作权限,其主键包括Host和Db两个字段。host很少用到,一般情况下db表就可以满足权限控制需求了。权限列
db表和host表的权限列大致相同,表中create_routine_priv和alter_routine_priv这两个字段表明用户是否有创建和修改存储过程的权限。user表中的权限是针对所有数据库的,如果希望用户只对某个数据库有操作权限,那么需要将user表中对应的权限设置为N,然后在db表中设置对应数据库的操作权限。
12.1.3 tables_priv表和columns_priv表
tables_priv表和columns_priv表tables_priv表用来对表设置操作权限,columns_priv表用来对表的某列设置权限 tables_ priv表有8个字段,分别是Host、Db、User、Table_ name、Grantor、Timestamp、Table_priv和Column_priv, 各个字段说明如下:
Host、Db、User和Table_name4个字段,分表示主机名、数据库名、用户名和表名。Grantor表示修改该记录的用户。Timestamp字段表示修改该记录的时间。Table_priv表示对表的操作权限,包括Select、Insert、Update、Delete、Create、Drop、Grant、References、Index和Alter等。Column_priv字段表示对表中的列的操作权限,包括Select、Insert、Update和References。
columns_priv表只有7个字段,分别是Host、Db、User、Table_name、Column_name、Timestamp、Column_priv。其中:Column_name用来指定对哪些数据列具有操作权限。
12.1.4 procs_priv表
procs_priv表procs_piv表包含8个字段分别是Host、Db、 Uscr、Routine_name、 Routire_ype、Grantor、Proc_priv和Timestamp,各个字段的说明如下:
Host、Db和User字段分别表示主机名、数据库名和用户名。Routine_name表示存储过程或函数的名称。Routine_type表示存储过程或函数的类型。Routine_type字段有两个值,分别是FUNCTION和PROCEDURE。FUNCTION表示这是一个函数;PROCEDURE表示这是一个存储过程。Grantor是插入或修改该记录的用户。Proc_priv表示拥有的权限,包括Execute、Alter Routine、Grant3种。Timestamp表示记录更新时间。
最后更新于
这有帮助吗?