【MySQL】MySQL8.0 创建用户及授权 - 看这篇就足够了

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文介绍了在MySQL 8.0+版本中创建和管理用户的详细步骤,包括通过命令行进入MySQL、创建数据库、用户及授权等操作,并提供了具体命令示例。适合初学者参考学习,帮助实现系统的权限管理和安全控制。

虽然我很菜鸟,但我还想分享

什么时候会用到

  • 对接外系统时,需要给其余系统开放访问权限
  • 本系统中,分权限管理数据,防止root权限删库跑路?

mysql版本

MySql8.0+

具体步骤

1.命令行进入MySql

使用 mysql -u#UserName -p#PassWord 命令进入MySql

#UserName 代表你的MySql用户名
#PassWord 代表你的MySql密码

?本狗的用户名是root,密码是root

mysql -uroot -proot

命令行进入MySql.png

2.进入数据库

如果没有创建数据库则先使用命令,若已存在数据库则跳过此步骤

create database #databaseName;

#databaseName 代表你操作的数据库

?本狗要创建的是b2b数据库,切记加上分号;

create database b2b;

use databaseName;

#databaseName 代表你操作的数据库

?本狗要操作的是b2b数据库,切记加上分号;

use b2b;

进入数据库.png

3.创建用户

create user '#userName'@'#host' identified by '#passWord';

#userName 代表你要创建的此数据库的新用户账号
#host 代表访问权限,如下

  • %代表通配所有host地址权限(可远程访问)
  • localhost为本地权限(不可远程访问)
  • 指定特殊Ip访问权限 如10.138.106.102

#passWord 代表你要创建的此数据库的新用密码

?本狗要创建的用户是testUser,密码是Haier...123,并且可远程访问
⚠️密码强度需要大小写及数字字母,否则会报密码强度不符合
⚠️用户名如果重复,会报错ERROR 1396 (HY000): Operation CREATE USER failed for 'testUser'@'%'

create user 'testUser'@'%' identified by 'Haier...123';

创建用户.png

4.查看用户

进入mysql系统数据库

use mysql;

查看用户的相关信息

select host, user, authentication_string, plugin from user;

use mysql; 
select host, user, authentication_string, plugin from user;

?若展示的信息中有刚加入的用户testUser,则添加成功。切记查看完要切换回操作的数据库,本狗需要操作的是b2b

use b2b;

查看用户.png

5.用户授权

grant #auth on #databaseName.#table to '#userName'@'#host';

#auth 代表权限,如下

  • all privileges 全部权限
  • select 查询权限
  • select,insert,update,delete 增删改查权限
  • select,[...]增...等权限

#databaseName 代表数据库名
#table 代表具体表,如下

  • *代表全部表
  • A,B 代表具体A,B表

#userName 代表用户名

#host 代表访问权限,如下

  • %代表通配所有host地址权限(可远程访问)
  • localhost为本地权限(不可远程访问)
  • 指定特殊Ip访问权限 如10.138.106.102

?本狗赋予b2b数据库area_code表增删改差权限

grant select,insert,update,delete on b2b.area_code to 'testUser'@'%';

用户授权.png

6.刷新

?切记一定要刷新授权才可生效

flush privileges;

刷新.png

7.查看用户权限

show grants for '#userName'@'#host';

#userName 代表用户名

#host 代表访问权限,如下

  • %代表通配所有host地址权限(可远程访问)
  • localhost为本地权限(不可远程访问)
  • 指定特殊Ip访问权限 如10.138.106.102

?本狗要查看的是testUser

show grants for 'testUser'@'%';

查看用户权限.png

8.验证

使用navicat等可视化工具验证

验证.png

9.撤销权限

revoke #auth on #databaseName.#table from '#userName'@'#host';

#auth 代表权限,如下

  • all privileges 全部权限
  • select 查询权限
  • select,insert,update,delete 增删改查权限
  • select,[...]增...等权限

#databaseName 代表数据库名
#table 代表具体表,如下

  • *代表全部表
  • A,B 代表具体A,B表

#userName 代表用户名

#host 代表访问权限,如下

  • %代表通配所有host地址权限(可远程访问)
  • localhost为本地权限(不可远程访问)
  • 指定特殊Ip访问权限 如10.138.106.102

?本狗要撤销testUser用户对b2b数据库中的area_code表的增删改差权限

revoke select,insert,update,delete on b2b.area_code from 'testUser'@'%';

?本狗再查看用户权限

show grants for 'testUser'@'%';

撤销权限.png

10.删除用户

drop user '#userName'@'#host';

#userName 代表用户名

#host 代表访问权限,如下

  • %代表通配所有host地址权限(可远程访问)
  • localhost为本地权限(不可远程访问)
  • 指定特殊Ip访问权限 如10.138.106.102

?本狗要删除用户是testUser

drop user 'testUser'@'%';

删除用户.png
我是JavaDog,谢谢博友耐心看完, 抽空来我狗窝?瞅瞅呗 www.javadog.net

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
12月前
|
SQL JSON 关系型数据库
百度搜索:蓝易云【MySQL5.7和MySQL8.0的区别是什么?】
需要注意的是,升级到新的MySQL版本需要进行充分的测试和评估,以确保应用程序和数据库的兼容性,并选择最适合你的需求和环境的版本。
510 0
百度搜索:蓝易云【MySQL5.7和MySQL8.0的区别是什么?】
|
21天前
|
关系型数据库 MySQL 数据库连接
绝对干货!从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
绝对干货!从MySQL5.7平滑升级到MySQL8.0的最佳实践分享
32 0
|
3月前
|
关系型数据库 MySQL Java
关系型数据库mysql的开源与授权
【6月更文挑战第12天】
236 3
|
2月前
|
关系型数据库 MySQL
解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误
解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误
792 0
|
3月前
|
关系型数据库 MySQL Linux
Linux下mysql添加用户并授权数据库权限
Linux下mysql添加用户并授权数据库权限
211 0
|
4月前
|
canal
MySQL8.0创建新用户并授权
MySQL8.0创建新用户并授权
49 1
MySQL8.0创建新用户并授权
|
4月前
|
弹性计算 关系型数据库 MySQL
在线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
86 0
|
4月前
|
存储 SQL 关系型数据库
MySQL 5.7和 MySQL8.0 InnoDB auto_increment 初始化的区别
在MySQL 5.7及之前,自动递增计数器只存于内存,重启后需通过查询确定初始值。从MySQL 8.0开始,计数器变化时写入重做日志,检查点时保存至数据字典,确保重启后能基于持久化的最大值初始化,避免查询,增强连续性和一致性。[[MySQL参考手册, 3099页]](https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html)
|
11月前
|
存储 安全 关系型数据库
深入理解MySQL数据库存储引擎及数据授权
深入理解MySQL数据库存储引擎及数据授权
102 0
|
4月前
|
关系型数据库 MySQL 数据安全/隐私保护
【MySQL】 Docker 安装 MySQL8.0(mac)
【MySQL】 Docker 安装 MySQL8.0(mac)
418 0

热门文章

最新文章