MySQL8.0 建立用户及受权

何时会用到

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

mysql版本

MySql8.0+mysql

具体步骤

1.命令行进入MySql

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

#UserName 表明你的MySql用户名

#PassWord 表明你的MySql密码sql

🐶本狗的用户名是root,密码是root数据库

mysql -uroot -proot
复制代码
命令行进入MySql.png
命令行进入MySql.png

2.进入数据库

若是没有建立数据库则先使用命令,若已存在数据库则跳过此步骤 app

create database #databaseName;ide

#databaseName 表明你操做的数据库工具

🐶本狗要建立的是b2b数据库,切记加上分号;spa

create database b2b;
复制代码

use databaseName;命令行

#databaseName 表明你操做的数据库3d

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

use b2b;
复制代码
进入数据库.png
进入数据库.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
建立用户.png

4.查看用户

进入mysql系统数据库

user mysql;

查看用户的相关信息

select host, user, authentication_string, plugin from user;

user mysql; 
select host, user, authentication_string, plugin from user;
复制代码

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

use b2b; 
复制代码
查看用户.png
查看用户.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
用户受权.png

6.刷新

🔥切记必定要刷新受权才可生效

flush privileges;

刷新.png
刷新.png

7.查看用户权限

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

#userName 表明用户名

#host 表明访问权限,以下

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

🐶本狗要查看的是testUser

show grants for 'testUser'@'%';
复制代码
查看用户权限.png
查看用户权限.png

8.验证

使用navicat等可视化工具验证

验证.png
验证.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
撤销权限.png

10.删除用户

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

#userName 表明用户名

#host 表明访问权限,以下

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

🐶本狗要删除用户是testUser

drop user 'testUser'@'%';
复制代码
删除用户.png
删除用户.png

😂 本文均由JavaDog原创,转载请标明出处。

相关文章
相关标签/搜索