|
MySQL 在安装时会自动创建一个名为 mysql 的数据库,存储的是用户权限表,
其中的 user 表用来记录允许连接到服务器的账号信息。需要注意的是,在 user 表里启用的所有权限都是全局级的,适用于所有数据库。
用户列
用户列存储了用户连接 MySQL 数据库时需要输入的信息,5.7 版本不再使用 Password 来作为密码的字段,而改成了 authentication_string。
用户登录时,如果这 3 个字段同时匹配,MySQL 数据库系统才会允许其登录。
创建新用户时,也是设置这 3 个字段的值。修改用户密码时,实际就是修改 user 表的 authentication_string 字段的值。

Host // 主机 localhost 本地主机,只有表内的主机地址才允许访问数据库
User // 用户
authentication_string // 密码权限列
以 priv 结尾的字段,这些字段值的数据类型为 ENUM,可取的值只有 Y 和 N:
Y 表示该用户有对应的权限,N 表示该用户没有对应的权限。从安全角度考虑,这些字段的默认值都为 N
修改权限,可以使用 GRANT 语句为用户赋予一些权限,也可以通过 UPDATE 语句更新 user 表的方式来设置权限


Select_priv 用户可以通过SELECT命令选择数据
Insert_priv 用户可以通过INSERT命令插入数据
Update_priv 用户可以通过UPDATE命令修改现有数据
Delete_priv 用户可以通过DELETE命令删除现有数据
Create_priv 用户可以创建新的数据库和表
Drop_priv 用户可以删除现有数据库和表
Reload_priv 用户可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表;重新加载权限表
Shutdown_priv 用户可以关闭MySQL服务器;在将此权限提供给root账户之外的任何用户时,都应当非常谨慎
Process_priv 用户可以通过SHOW PROCESSLIST命令查看其他用户的进程;服务器管理
File_priv 用户可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令;加载服务器上的文件
Grant_priv 用户可以将已经授予给该用户自己的权限再授予其他用户(任何用户赋予全部已有权限)
References_priv 某些未来功能的占位符;现在没有作用
Index_priv 用户可以创建和删除表索引;用索引查询表
Alter_priv 用户可以重命名和修改表结构
Show_db_priv 用户可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库;可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因;
Super_priv 用户可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令;超级权限;
Create_tmp_table_priv 用户可以创建临时表
Lock_tables_priv 用户可以使用LOCK TABLES命令阻止对表的访问/修改
Execute_priv 用户可以执行存储过程
Repl_slave_priv 用户可以读取用于维护复制数据库环境的二进制日志文件;此用户位于主系统中,有利于主机和客户机之间的通信;主服务器管理;
Repl_client_priv 用户可以确定复制从服务器和主服务器的位置;从服务器管理
Create_view_priv 用户可以创建视图
Show_view_priv 用户可以查看视图或了解视图如何执行
Create_routine_priv 用户可以更改或放弃存储过程和函数
Alter_routine_priv 用户可以修改或删除存储函数及函数
Create_user_priv 用户可以执行CREATE USER命令,这个命令用于创建新的MySQL账户
Event_priv 用户能否创建、修改和删除事件
Trigger_priv 用户能否创建和删除触发器
Create_tablespace_priv 创建表空间 安全列

ssl_type 支持ssl标准加密安全字段
ssl_cipher 支持ssl标准加密安全字段
x509_issuer 支持x509标准字段
x509_subject 支持x509标准字段
plugin 5.5.7开始,mysql引入plugins以进行用户连接时的密码验证,plugin创建外部/代理用户
authentication_string 通过authentication_string可以控制两者的映射关系,(PAM plugin等,PAM可以支持多个服务名)尤其是在使用代理用户时,并须声明这一点
password_expired 密码过期 Y,说明该用户密码已过期 N相反
password_last_changed 记录密码最近修改时间
password_lifetime 密码有效时间 单位为天
account_locked 用户是否被锁定 Y 被锁定资源控制列
限制用户使用的资源,字段的默认值为 0,表示没有限制。
一个小时内用户查询或者连接数量超过资源控制限制,用户将被锁定,直到下一个小时才可以在此执行对应的操作。可以使用 GRANT 语句更新这些字段的值

max_questions 每小时允许执行多少次查询
max_updates 每小时可以执行多少次更新 :0表示无限制
max_connections 每小时可以建立的多少次连接:0表示无限制
max_user_connections 单用户可以同时具有的连接数:0表示无限制
更新
Create_role_priv
Drop_role_priv
Password_reuse_history
Password_reuse_time
Password_require_current
User_attributes |
|