MySQL学习-权限管理(三)

133 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

前言

上篇我们学习了MySQL中的权限管理。有兴趣的小伙伴可以阅读(# MySQL学习-权限管理(二))。
下面我们继续学习MySQL中的权限管理。

权限管理

权限表

USER表

USER表是MySQL中最重要的一个权限表,记录用户账号和权限信息,共有49个字段,下面罗列其中几个:

字段名数据类型默认值
Hostchar(60)
Userchar(16)
Select_privenum('N', 'Y')N
Insert_privenum('N', 'Y')N
Update_privenum('N', 'Y')N
Delete_privenum('N', 'Y')N

这些字段可以分成4类,分别是范围列(用户列)、权限列、安全列和资源控制列。

  • 范围列
    • host:表示连接类型
      • %表示所有远程通过TCP方式连接
      • IP连接如127.0.0.1通过制定ip地址进行的TCP方式连接
      • 机器名通过制定网络中的机器名进行的TCP方式连接
      • ::1IPv6的本地ip地址,等同于IPv4的127.0.0.1
      • localhost本地方式通过命令行的方式连接,比如mysql -u xxx -p xxx的方式连接
    • user:表示用户名,同一个用户通过不同方式链接的权限是不一样的。
    • password:密码
      • 所有的密码串通过password明文字符串生成的密文字符串。
      • MySQL5.7之后版本的密码保存到authentication_string字段中,不再使用password字段。
  • 权限列
    • Grant_priv字段:表示是否拥有GRANT权限。
    • Shutdown_priv字段:表示是否拥有停止MySQL服务的权限。
    • Super_priv字段:表示是否拥有超级权限。
    • Execute_priv字段:表示是否拥有EXECUTE权限。拥有EXECUTE权限。可以执行存储过程和函数。
    • Select_priv,Insert_priv等:为该用户所拥有的权限。
  • 安全列
    • 安全列有6个字段,其中两个与ssl相关(ssl_type,ssl_cipher),用于加密。两个与x509相关(x509_issuer,x509_subject),用于标识用户。另外两个Plugin字段用于验证用户身份的插件,这个字段不能为空。如果该字段为空,服务器就使用内建授权验证机制验证用户身份。
  • 资源控制列
    • 用来限制用户使用的资源。
      • max_questions:用户每小时允许执行的查询操作次数。
      • max_updates:用户每小时允许执行的更新操作次数。
      • max_connections:用户每小时允许执行的连接操作次数。
      • max_user_connections:用户运行同时建立的连接次数。

查看字段语句:

DESC mysql.user;

查询特定的字段:

SELECT host, user, authentication_string, select_priv, insert_priv, drpo_priv
FROM mysql.user;

今天先学习到这里,明天继续。