MySQL是一个多用户管理的数据库,可以为不同用户分配不同的权限,分为root用户和普通用户,root用户未超级管理员,拥有所有权限,而普通用户拥有指定的权限。MySQL是通过权限表来控制用户对数据库访问的,权限表存放在mysql数据库中,主要的权限表有以下几个:user,db,host,table_priv,columns_priv和procs_priv,本文带你了解的是user表。
mysql数据库中user表的所有字段如下
用户列
用户连接MySQL数据库需要输入的信息。
Host:主机名,双主键之一,值为%时表示匹配所有主机
User:用户名,双主键之一
Password:密码名
权限列
权限列决定了用户的权限,描述了用户在全局范围内允许对数据库和数据库进行的操作,字段类型都是枚举Enum,值只能是Y或N,Y表示有权限,N表示没有权限
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:用户是否可以通过SHOWPROCESSLIST命令查看其他用户的进程服务器管理
File_priv:用户是否可以执行SELECTINTOOUTFILE和LOADDATAINFILE命令加载服务器上的文件
Grant_priv:用户是否可以将已经授予给该用户自己的权限再授予其他用户(任何用户赋予全部已有权限)
References_priv:目前只是某些未来功能的占位符;现在没有作用
Index_priv:用户是否可以创建和删除表索引用索引查询表
Alter_priv:用户是否可以重命名和修改表结构
Show_db_priv:用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因
Super_priv:用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SETGLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令超级权限
Create_tmp_table_priv:用户是否可以创建临时表
Lock_tables_priv:用户是否可以使用LOCKTABLES命令阻止对表的访问/修改
Execute_priv:用户是否可以执行存储过程此权限只在MySQL5.0及更高版本中有意义
Repl_slave_priv:用户是否可以读取用于维护复制数据库环境的二进制日志文件此用户位于主系统中,有利于主机和客户机之间的通信主服务器管理
Repl_client_priv:用户是否可以确定复制从服务器和主服务器的位置从服务器管理
Create_view_priv:用户是否可以创建视图此权限只在MySQL5.0及更高版本中有意义
Show_view_priv:用户是否可以查看视图或了解视图如何执行此权限只在MySQL5.0及更高版本中有意义
Create_routine_priv:用户是否可以更改或放弃存储过程和函数此权限是在MySQL5.0中引入的
Alter_routine_priv:用户是否可以修改或删除存储函数及函数此权限是在MySQL5.0中引入的
Create_user_priv:用户是否可以执行CREATEUSER命令,这个命令用于创建新的MySQL账户
Event_priv:用户是否创建、修改和删除事件这个权限是MySQL5.1.6新增的
Trigger_priv:用户是否创建和删除触发器,这个权限是MySQL5.1.6新增的
Create_tablespace_priv:用户是否可以创建表空间
安全列
ssl_type:支持ssl标准加密安全字段
ssl_cipher:支持ssl标准加密安全字段
x_issuer:支持x标准字段
x_subject:支持x标准字段
plugin:5.5.7开始,mysql引入plugins以进行用户连接时的密码验证,plugin创建外部/代理用户
authentication_string:通过authentication_string可以控制两者的映射关系,(PAMplugin等,PAM可以支持多个服务名)尤其是在使用代理用户时,并须声明这一点
资源控制列
max_questions:0每小时允许执行多少次查询
max_updates:0每小时可以执行多少次更新:0表示无限制
max_connections:0每小时可以建立的多少次连接:0表示无限制
max_user_connections:0单用户可以同时具有的连接数:0表示无限制
其他列
password_expired:密码过期Y,说明该用户密码已过期N相反