MySQL的user表

来源:互联网 发布:什么是大数据应用平台 编辑:程序博客网 时间:2024/06/03 04:27

MySQL中,用户分为root用户和普通用户
root用户,为超级管理员,具有所有权限,比如,创建用户、删除用户、管理用户等
普通用户,只有被赋予的某些权限

user表

在安装MySQL时,会自动安装一个名为mysql的数据库,该数据库中的表,都是权限表,比如,user、db、host、tables_priv、column_priv和procs_priv
其中,user表示最重要的一个权限表,它记录了允许连接到服务器的账户信息,以及一些全局级的权限信息,通过操作该表,就可以对这些信息进行修改

常用字段

字段名,数据类型,默认值
Host——char(60)——N
User——char(16)——N
Password——char(41)——N
Select_priv——enum(‘N’,’Y’)——N
Insert_priv——enum(‘N’,’Y’)——N
Update_priv——enum(‘N’,’Y’)——N
Delete_priv——enum(‘N’,’Y’)——N
Create_priv——enum(‘N’,’Y’)——N
Drop_priv——enum(‘N’,’Y’)——N
Reload_priv——enum(‘N’,’Y’)——N
Shutdown_priv——enum(‘N’,’Y’)——N
Ssl_type——enum(”,’ANY’,’X509’,’SPECIFIED’)
Ssl_cipher——blob——NULL
X509_issuer——blob——NULL
X509_subject——blob——NULL
Max_questions——int(11) unsigned——0
Max_updates——int(11) unsigned——0
Max_connections——int(11) unsigned——0
Max_user_connections——int(11) unsigned——0
Plugin——char(64)
Anthentication_string——text——NULL

上述列举user表的一些字段,MySQL 的user表中一共有42个字段
这些字段大致分为4类

用户列

user表的用户列,包括Host、User、Password,分别表示主机名、用户名和密码

其中
Host和User列为user表的联合主键,当用户与服务器建立连接时,输入的用户名、主机名和密码必须匹配user表中对应的字段,只有这三个值,都匹配的时候,才允许建立连接。
当修改密码时,只需要修改user表中Password字段的值,即可

权限列

user表的权限列,包括Select_priv、Insert_priv、Update_priv等,以priv结尾的字段,这些字段决定了用户的权限,其中,包括查询权限、修改权限、关闭服务等权限
user表对应的权限,是针对所有数据库的,并且,这些权限列的数据类型都是ENUM,取值只有N和Y

其中
N表示,该用户没有对应的权限
Y表示,该用户有对应的权限
为了安全起见,这些字段的默认值都为N,如果,需要可以对其进行修改

安全列

user表的安全列,用于管理用户的安全信息,其中,包括6个字段
1、ssl_type和ssl_cipher,用于加密
2、x509_issuer和x509_subject标准,可以用来标识用户
3、plugin和authentication_string,用于存储和授权相关的插件

通常,标准的发行版不支持ssl加密,可以使用SHOW VARIABLES LIKE ‘have_openssl’语句查看,如果have_openssl的取值为DISABLED,则表示不支持加密

资源控制列

user表的资源控制列,用于限制用户使用的资源
其中,包括4个字段
1、max_questions,每小时允许用户,执行查询操作的次数
2、max_updates,每小时允许用户,执行更新操作的次数
3、max_connections,每小时允许用户,建立连接的次数
4、max_user_connections,允许单个用户,同时建立连接的次数