30.MySQL中的用户与权限概述


用户是数据库的使用者和管理者。MySQL通过用户的设置来控制数据库操作人员的访问与操作访问。服务器中名为mysql的数据库,用于维护数据库的用户以及权限的控制和管理。
MySQL中的所有用户信息都保存在mysql.user数据表中。

根据mysql.user表字段的功能可将其分为6类:

  1. 客户端访问服务器的账号字段
  2. 验证用户身份的字段
  3. 安全连接的字段
  4. 资源限制的字段
  5. 权限字段
  6. 账户是否锁定的字段

1.账号字段
Host和User字段共同组成的复合主键用于区分MySQL中的账户:

  1. User字段用于代表用户的名称。
  2. Host字段表示允许访问的客户端IP地址或主机地址。
  3. 当Host的值为“*”时,表示所有客户端的用户都可以访问。
SELECT host, user FROM mysql.user;

root:默认的超级用户。
session:MySQL5.7新增用户,用于用户身份验证。
sys:MySQL5.7新增用户,用于系统模式对象的定义,防止DBA(数据库管理员)重命名或删除root用户时发生错误。

默认情况下,用户mysql.session和mysql.sys已被锁定,使得数据库操作人员无法使用这两个用户通过客户端连接MySQL服务器.因此,建议不要随意解锁和使用mysql.session和mysql.sys用户.

2.身份验证字段

在MySQL5.7中,mysql.user表中已不在包含Password字段,而是使用plugin和authentication_string字段保存用户身份验证信息.

  1. plugin字段用于指定用户的验证插件名称。
  2. authentication_string字段是根据plugin指定的插件算法对账户明文密码(如1234)加密后的字符串。
SELECT plugin, authentication_string FROM mysql.user WHERE user='root';
  1. MySQL中root用户的默认验证插件名为mysql_native_password。
  2. authentication_string字段保存的则是一串不能看出具体含义的值,它是经过加密处理的暗码。
  3. 其他与身份验证的账号密码相关的字段还有password_expired(密码是否过期)、password_last_changed(密码最后一次修改的时间)以及password_lifetime(密码的有效期)。

3.安全连接字段

判断当前连接是否符合SSL安全协议

  1. ssl_type:用于保存安全连接的类型,它的可选值有" "(空)、ANY(任意类型)、X509(X509证书)、SPECIFIED(规定的)四种。
  2. ssl_cipher: 用于保存安全加密连接的特定密码。
  3. x509_issuer: 保存由CA签发的有效的X509证书。
  4. x509_subject: 保存包含主题的有效X509证书。
    通常标准的发行版MySQL已禁用SSL加密连接:
SHOW VARIABLES LIKE 'have_openssl';

4.资源限制字段

  1. 以“max_”开头的字段,保存对用户可使用的服务器资源的限制。
  2. 用来防止用户登录MySQL服务器后的不法或不合规范的操作浪费服务器的资源。
  3. 用户资源限制字段默认值均为0,表示对此用户没有任何的资源限制。
  4. max_questions:保存每小时允许用户执行查询操作的最多次数。
  5. max_updates: 保存每小时允许用户执行更新操作的最多次数。
  6. max_connections: 保存每小时允许用户建立连接的最多次数。
  7. max_user_connection:保存允许单个用户同时建立连接的最多数量。

5.权限字段

  1. 以“_priv”结尾的字段一共有29个,这些字段保存了用户的全局权限,如Select_priv查询权限、Insert_priv插入权限、Update_priv更新权限等。
  2. user表对应的权限字段的数据类型都是ENUM枚举类型,取值只有N或Y两种。
  3. N表示该用户没有对应权限,默认值都为N。
  4. Y表示该用户有对应权限。

6.账户锁定字段

  1. account_locked字段用于保存当前用户是锁定、还是解锁状态。
  2. 该字段是一个枚举类型,当其值为N时表示解锁,此用户可以用于连接服务器。
  3. 当其值为Y时表示该用户已被锁定,不能用于连接服务器使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值