经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
MySQL8.0 创建用户及授权 - 看这篇就足够了
来源:cnblogs  作者:JavaDog程序狗  时间:2023/3/24 9:06:44  对本文有异议

什么时候会用到

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

mysql版本

MySql8.0+

具体步骤

1.命令行进入MySql

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

#UserName 代表你的MySql用户名

#PassWord 代表你的MySql密码

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

  1. mysql -uroot -proot

命令行进入MySql.png

2.进入数据库

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

create database #databaseName;

#databaseName 代表你操作的数据库

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

  1. create database b2b;

use databaseName;

#databaseName 代表你操作的数据库

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

  1. 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'@'%'

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

创建用户.png

4.查看用户

进入mysql系统数据库

use mysql;

查看用户的相关信息

select host, user, authentication_string, plugin from user;

  1. use mysql;
  2. select host, user, authentication_string, plugin from user;

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

  1. 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表增删改差权限

  1. 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

  1. 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表的增删改差权限

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

??本狗再查看用户权限

  1. show grants for 'testUser'@'%';

撤销权限.png

10.删除用户

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

#userName 代表用户名

#host 代表访问权限,如下

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

??本狗要删除用户是testUser

  1. drop user 'testUser'@'%';

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

原文链接:https://www.cnblogs.com/javadog-net/p/17249269.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号