MySQL用户与权限管理

用户与权限管理

目录

用户与权限管理

1.用户管理

​1.1 登录MySQL服务器 

​ 1.2 创建用户

 1.3 修改用户

 1.4 删除用户(很少用到)

 1.5 设置当前用户密码

1.6 修改其它用户密码

1.7MySQL8密码管理(了解)

 2. 权限管理

2.1 权限列表

​  过程是存储过程

2.2 授予权限的原则

2.3 授予权限 

2.4 查看权限

2.5 收回权限 

 3. 权限表

3.1 user表

 3.2 db表

 3.3 tables_priv表和columns_priv表

3.4 procs_priv表 

4. 访问控制(了解)(第3点和第4点是第1、2点底层实现的原理)

 4.1 连接核实阶段

4.2 请求核实阶段

5. 角色管理

5.1 角色的理解

5.2 创建角色 

5.3 给角色赋予权限 

 5.4 查看角色的权限

5.5 回收角色的权限 

5.6 删除角色 

5.7 给用户赋予角色 

5.8 激活角色

 5.9 撤销用户的角色

5.10 设置强制角色(mandatory role)

5.11 小结

1.用户管理

1.1 登录MySQL服务器 

 1.2 创建用户

 1.3 修改用户

 1.4 删除用户(很少用到)

修改user里面的字段名字

 1.5 设置当前用户密码

1.6 修改其它用户密码

1.7MySQL8密码管理(了解)

 2. 权限管理

新创建的用户如果没有指定,那么默认只有一个表可以用。企业相关数据的数据库和表中DML权限都没有(为什么要什么要赋予权限,如果只是用root用户,可能会导致数据库暴露)

2.1 权限列表

  过程是存储过程

2.2 授予权限的原则

2.3 授予权限 

 在root用户下赋予权限。

 root用户将授予所有权限给某一个用户,这个用户和root用户的区别在于,root用户能够赋予别人权限,但用户不行,除非再加上"WITH GRANT OPTION" 。

2.4 查看权限

 

2.5 收回权限 

 

 3. 权限表

        MySQL服务器通过权限表控制用户对数据库的访问,权限表存放在mysql数据库(这里的mysql是数据库中的名字为mysql的数据库)中。MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表。除此之外,还有tables_priv表、columns_priv表和procs_priv表等。在MySQL启动时,服务器将这些数据库表中权限信息的内容读入内存。

3.1 user表

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

 3.2 db表

db表体现的是某一个用户对于某一个数据库的相关操作权限。

由Host和Db和User三个作为一个唯一主键。

 

 

 3.3 tables_priv表和columns_priv表

tables_priv表 关于具体的某一个表的相关权限。(由四个组成一个联合主键,如上)

 columns_priv表 关于具体某一个字段(某一列)的相关权限。(由五个组成一个联合主键,如上)

3.4 procs_priv表 

 procs_priv表中包含8个字段,分别是Host、Db、User、Routine_name、Routine_type、Grantor、Proc_priv、Timestamp,各字段的说明如下:

  • HostDbUser字段分别表示主机名、数据库名和用户名。
  • Routine_name表示存储过程或函数的过程。
  • Routine_type表示存储过程或函数的类型。Routine_type字段有两个值,分别是FUNTION和PROCEDURE:FUNCTION表示这是一个存储函数,PROCEDURE表示这是一个存储过程。
  • Grantor是插入或修改该记录的用户。
  • Proc_priv表示拥有的权限,包括Execute、Alter Routine、Grant三种(表结构中有显示出来
  • Timestamp表示记录更新的时间。

4. 访问控制(了解)(第3点和第4点是第1、2点底层实现的原理)

 4.1 连接核实阶段

4.2 请求核实阶段

 一般也只是到表级别的权限,很少会到列级别。

5. 角色管理

5.1 角色的理解

5.2 创建角色 

5.3 给角色赋予权限 

 5.4 查看角色的权限

5.5 回收角色的权限 

5.6 删除角色 

5.7 给用户赋予角色 

 上面结果是NONE,说明用户未具备相应的角色。
或者你用赋予了角色的用户去登录、操作,你会发现,这个账号没有任何权限。这是因为MySQL中创建了角色之后,默认都是没有被激活,也就是不能用,必须要手动激活,激活以后用户才能拥有角色对应的权限。
 

5.8 激活角色

 (这个参数是一个系统变量,也是一个会话变量)

 5.9 撤销用户的角色

5.10 设置强制角色(mandatory role)

 了解即可(一般很少设置这种角色)

5.11 小结

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值