一、创建用户和用户授权

  MySQL5.7创建用户和用户授权命令可以同时执行

grant all privileges on *.* to 'Gary'@'%' identified by 'Gary@2019'

  MySQL8.0创建用户和用户授权的命令需要分开执行

  创建用户

create user 'Gary'@'%' identified by 'Gary@2019'; 

  用户授权【给予所有权限】

grant all privileges on *.* to 'Gary'@'%'

二、认证插件更新

  MySQL8.0中默认的身份插件是caching_sha2_password,替代了之前mysql_native_password

  通过查看default_authentication_plugin和mysql.user可以查看系统中的变化

show variables like 'default_authentication%'
select user,host,plugin from mysql.user;

  也可以把8.0中身份认证插件caching_sha2_password改回原来的mysql_native_password

alter user 'Gary'@'%' identified with mysql_native_password by 'Gary@2020'

三、密码管理

  MySQL8.0开始允许限制重复使用以前的密码

  使用 show variables like 'password%' 指令可查看对密码管理的限制

password_history = 3        #新密码不能和近期3次内旧密码相同
password_reuse_interval = 90 #新密码不能喝近90天密码相同
password_require_current = ON #修改密码时用户需要提供当前密码

  动态修改其中的参数

alter user 'Gary'@'%' password history 5;

  可同过修改用户密码语句进行测试

alter user 'Gary'@'%' identified by 'Gary@2019';

  可查看用户修改密码历史表

select * from mysql.password_history;

  当设置password_require_current = ON,用户修改密码时需要提供当前密码

alter user user() identified by 'Gary@2021' replace 'Gary@2020';

四、角色管理

  MySQL8.0提供了角色管理的新功能,角色是一组权限的集合

  角色也是一个用户,用角色去模拟用户,可以对角色去进行权限授权

  【实践】

  创建数据库

create database garydb;

  创建数据库表

create table garydb.tl(id int)

  创建一个角色【新创建出来的角色无任何权限】

create role 'Gary_role';

  给角色授予增、删、改的权限

grant insert,update,delete on garydb.* to 'Gary_role';

  创建一个用户

create user 'user1' identified by 'User1@2019';

  将角色授予给用户

grant 'Gary_role' to 'user1';

  显示用户权限

show grants for 'user1';
show grants for 'user1' using 'Gary_role';

MySQL_8.0与5.7区别之账户与安全的更多相关文章

  1. bootstrap 2.3版与3.0版的使用区别

    bootstrap 2.3版与3.0版的使用区别 bootstrap已经推出了3.0的新版,看起来2.3.x版本也不会再更新了.那么bootstrap 2.3版与3.0版的区别在哪里呢?下面我们就来介 ...

  2. HTTP详解(3)-http1.0 和http1.1 区别

    HTTP详解(3)-http1.0 和http1.1 区别 分类: 网络知识2013-03-17 16:51 1685人阅读 评论(0) 收藏 举报   目录(?)[+]   翻了下HTTP1.1的协 ...

  3. 最强离线安装MySQL_8.0.2方法

    最强离线安装MySQL_8.0.2方法,一次就能安装成功. 按照此方式,离线安装MySQL五分钟都花不到,节省了大量的宝贵时间. 前戏,假设你已经从MySQL官网中获取了下面这个压缩包: 解压之后变成 ...

  4. os.getcwd()、sys.path[0]、sys.argv[0]和__file__的区别,终于弄清楚了

    os.getcwd().sys.path[0].sys.argv[0]和__file__的区别 要分清这几个的区别与使用条件,实际测试一下是最准确的. 设计测试方法: 一个主模块用来运行,一个子模块用 ...

  5. mysql_8.0.12环境配置

    1. 官网下载mysql_8.0.12免安装包,解压到你存放的地方: 2. 配置环境变量(把bin的文件夹弄进系统path里面): 3. 在解压的根路径中,查看是否含有my.ini文件,没有就新建一个 ...

  6. MySQL主机127.0.0.1与localhost区别总结

    1. mysql -h 127.0.0.1 的时候,使用TCP/IP连接, mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain&q ...

  7. http1.0 和 http1.1 区别

    http1.0 和 http1.1 主要区别 1.背景   KeepAlive是就是通常所称的长连接.KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效 ...

  8. localhost和127.0.0.1及ip区别

    1.127.0.0.1是回送地址,指本地机,一般用来测试使用.回送地址是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什 ...

  9. [ASP.NET]关于DOT NET的IIS配置LocalHost访问和127.0.0.1访问的区别

    项目上遇到一个问题跟大家分享下,配置的localhost地址本地无法访问接口,外网却可以访问,查其原因百度资料比较全面的解释 localhost与127.0.0.1的概念和工作原理之不同 要比较两个东 ...

随机推荐

  1. Vue学习笔记(一) 利用idea 搭建 vue 项目

    环境准备工作: 安装node.js 环境  -- 略 安装vue-li  全局安装vue-cli,在命令行中执行npm install -g vue-cli idea准备工作: 安装vue.js Fi ...

  2. [Scala] java使用scala的jar包问题:Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Short

    场景 刚写的scala处理bmp文件的实验, 打了jar包让java调用一下, 结果发生这个错误. package org.tanglizi.bmp.demo; import org.tanglizi ...

  3. 帝国cms 此栏目暂无任何新增信息处理办法

    在做一个新网站的时候不能保证每个栏目都能填充内容,当某个栏目没有内容填充的时候总会出现“此栏目暂无任何新增信息”看着挺不舒服. 其实想删除这行字也挺简单,只需要修改下语言包即可!如下: 找到语言包文件 ...

  4. 关于c语言的文法分析问题

    <程序>  ->   <声明> | <程序> <函数> <声明>  ->   #include<stdio.h>|# ...

  5. 2 java开发环境的配置步骤

    1  首先需要下载JDK(以java se development kit java标准版开发包) 8.0 如果只是单纯的运行java程序则只需要安装JRE(java runtime envirome ...

  6. linux 删除文件空间未释放问题

    现象:我们测试环境上,导出数据文件时,由于作业报错,重复导出,空间使用到达100%,按理说,导出的文件时在相同的路径下,文件名也是一致的,会自动替换. 那么之前导出的文件会被删除,问题就出现在删除这一 ...

  7. 日常开发用Windows 好还是 Ubuntu好?

    最近打算给电脑重新装系统,纠结了很久,不知道应该是换Windows还是Ubuntu,今天通过我自身的体验,来为大家分析一下,日常开发环境到底是用Windows和Ubuntu. [系统介绍] Windo ...

  8. 内网渗透之frp使用

    0x00 前言 nps相比上次已经介绍过了.但是他有一个致命缺点就是在scks5代理下会长连接一直不放开导致结果不准确.所以来讲讲frp的使用.frp虽然需要落地配置文件,但是扫描的结果还是很准确的. ...

  9. java_day03_流程控制

    ch03 目标:表达式和流程控制 ---------------------------------------------- 1.实例变量和局部变量 程序的基本功能是处理数据,程序中需要使用变量来接 ...

  10. 1、Bash Shell

    一.什么是Bash shell BashShell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕. 当我们 ...