【Mysql8.0新特性 学习笔记】- 第一章 账户与安全

本文详细介绍MySQL账户创建、授权、认证插件更新、密码管理和角色管理等核心内容,涵盖5.7与8.0版本的区别及操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、用户创建与授权

在这里插入图片描述

1.1、用户创建和授权

在这里插入图片描述

1.1.1、MySQL5.7版本创建用户

在这里插入图片描述

1.1.2、MySQL8.0版本创建用户

在8.0版本中查询用户信息的时候会发现多了一个用户,如下图所示
在这里插入图片描述
使用MySQL5.7中的语句在MySQL8.0中执行创建用户,发现报错如下图
在这里插入图片描述
分开执行创建用户和授权的语句
在这里插入图片描述

1.2、认证插件更新

1.2.1、MySQL5.7与MySQL8.0的身份认证插件的区别

在这里插入图片描述
在MySQL5.7中执行语句查看身份认证插件如下图:
在这里插入图片描述
在MySQL8.0中执行语句查看身份认证插件,如下图:
在这里插入图片描述
或者通过mysql的user表查看身份认证插件,如下图:
在这里插入图片描述

1.2.1、在不更改客户端的情况下如何登陆

1.2.1.1、重启修改配置文件的方式

在Linux系统中找到数据库的配置文件,一般如下

more /etc/my.cnf

在这里插入图片描述
如果我们需要使用老的方式,我们可以把这行注释去掉,然后重启MySQL的服务

1.2.1.2、修改mysql数据库中user表

在这里插入图片描述

1.3、密码管理

在这里插入图片描述

1.3.1、密码策略

查询当前的密码策略,可以看到当前时没有开启任何策略的。
在这里插入图片描述

1.3.2、修改全部配置

1.3.2.1、修改MySQL的配置文件的方式

编辑配置文件

vi /etc/my.cnf

在这里插入图片描述
然后重启mysql服务。

1.3.2.2、设置全局变量的方式

进入mysql后,执行

set global 参数

但是这种方式由于没有做持久化,只对当前进程有效,如果重启mysql服务之后则设置的全局变量会无效。

1.3.2.3、MySQL8.0设置持久化的全局变量的方式

如下图中的这种设置方式,则在重启服务后也会有效。

set persist password_history=6;

在这里插入图片描述
这种方式的原理是因为在如图的目录下,MySQL8.0创建了这个配置文件。
在这里插入图片描述

1.3.3、修改某个用户的配置

修改tony的策略:
在这里插入图片描述
查看针对用户的配置是否生效:
在这里插入图片描述
测试配置的策略:
在这里插入图片描述
上面的这个配置项成功是因为在mysqll数据库中多了一张password_history的表,在这张表中记录了修改记录。
在这里插入图片描述

1.3.3、password_require_current变量的配置说明

  • 1.设置修改密码时需要使用原密码;当我们使用root用户操作修改tony的密码的时候,我们可以看到可以直接被修改,那是因为root用户拥有的权限比较高。
    在这里插入图片描述
  • 2.使用tony用户修改自身的密码;首先将当前的mysql用户切换到tony用户。

在这里插入图片描述

1.4、角色管理

在这里插入图片描述
准备工作:创建一个测试用的数据库和一个表

create database testdb;
create table testdb.t1(id int);

1.4.1、通过角色的方式授权

1.4.1.1、创建用户和角色并为角色授权

创建一个角色后,我们发现这个角色的数据就在mysql数据库的user表中,即mysql在用户表中模拟了一个角色。
在这里插入图片描述
为创建的角色授权
在这里插入图片描述
查询user1用户的write_role角色的权限有哪些
在这里插入图片描述

1.4.1.2、使用新建的用户测试所分配的角色的权限是否有效

用新建的user1用户访问testdb数据库的t1表,发现访问被拒绝,也就是没有权限访问。
在这里插入图片描述

查询当前用户所激活的权限,发现user1用户当前没有被激活的权限,通过set语句激活当前用户的权限后,重新执行查询语句
在这里插入图片描述
在这里插入图片描述

1.4.1.3、为用户设置默认的角色

在这里插入图片描述
MySQL8.0中针对角色部分的表结构介绍,
default_roles表是用户默认拥有的角色的信息
role_edges表是用户角色授权信息表
在这里插入图片描述

1.4.1.4、收回角色的权限

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值