用户是数据库的使用者和管理者.
MySQL通过用户的设置来控制数据库操作人员的访问与操作范围.
服务器中名为mysq的数据库,用于维护数据库的用户以及权限的控制和管理
MYSQL中的所有用户信息都保存在 mysql.user数据表中。
展示 mysql.user表中常见的字段:
1.客户端访问服务器的账号字段
- 账号字段
Host和User字段共同组成的复合主键用于区分 MySQL中的账户:
User字段用于代表用户的名称.
Host字段表示允许访问的客户端P地址或主机地址
当Host的值为"*"时,表示所有客户端的用户都可以访问.
查询user表中默认用户的host和user值:
Select host,user From mysql.user;
root:默认的超级用户.
session:MSQL5,7新增用户,用于用户身份验证.
sys: MySQL5.7新增用户,用于系统模式对象的定义,防止DBA(数据库管理员)重命名或删除root用户时发生错误
- 身份验证字段
在MSQL5,7中,mysq.user表中已不再包含 Password字段,而是使用 plugin和 authentication_string字段保存用户身份验证的信息
plugin字段用于指定用户的验证插件名称
authentication_string字段是根据 plugin指定的插件算法对账户明文密码(如123456)加密后的字符串
查询user表中root用户默认的plugin和authentication_string值:
Select plugin,authentication_String
From mysql.user Where user="root";
MySQL中root用户的默认验证插件名为 mysql_native_ password
authentication_ string字段保存的则是一串不能看出具体含义的值,相对于能够直接看懂的明文密码(如123456),它是经过加密处理的暗码.
其他与身份验证的账号密码相关的字段还有 password_ expired(密码是否过期)、 password_last_changed(密码最后一次修改的时间)以及password_lifetime(密码的有效期)
- 安全连接字段
判断当前连接是否符合SSL安全协议:
ssl_type:用于保存安全连接的类型,它的可选值有"(空)、ANY(任意类型),×509(X509证书)、 SPECIFIED(规定的)四种
ssl_cipher:用于保存安全加密连接的特定密码.
x509_issuer:保存由CA签发的有效的Ⅹ509证书.
x509_subject:保存包含主题的有效X509证书.
通常标准的发行版MYSQL并不支持SSL加密连接:
Show Variables Like "Have_openssl";
-
资源限制字段
以"max_"开头的字段,保存对用户可使用的服务器资源的限制.
用来防止用户登录 MySQL服务器后的不法或不合规范的操作浪费服务器的资源。
用户资源限制字段默认值均为0,表示对此用户没有任何的资源限。
max_questions:保存每小时允许用户执行查询操作的最多次数.
max_updates:保存每小时允许用户执行更新操作的最多次数
max_connections:保存每小时允许用户建立连接的最多次数.
max_user_connections:保存允许单个用户同时建立连接的最多数量. -
权限字段
以"priv"结尾的字段一共有29个,这些字段保存了用户的全局权限,如Select_prⅳ查询权限、 Insert_priv插入权限, Update priv更新权限等.
user表对应的权限字段的数据类型都是ENUM枚举类型,取值只有N或Y两种
N表示该用户没有对应权限,默认值都为N.
Y表示该用户有对应权限.
account_locked字段用于保存当前用户是锁定丶还是解锁状态.
该字段是一个枚举类型,当其值为N时表示解锁,此用户可以用于连接服务器
当其值为Y时表示该用户已被锁定,不能用于连接服务器使用.