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


    什么时候会用到

    • 对接外系统时,需要给其余系统开放访问权限
    • 本系统中,分权限管理数据,防止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,谢谢博友耐心看完, 抽空来我狗窝🐕瞅瞅呗 blog.javadog.net

  • 相关阅读:
    打印由*组成的菱形
    【源码+项目部署】Java项目实战_Java进销存管理系统_Java项目开发_Java开源项目_Java课程设计_Java毕业设计_Java课设项目
    孙哥Spring源码第19集
    二叉树基础知识总结
    树的基本术语
    论文浅尝 | AdaLoGN: 基于推理的机器阅读理解的自适应逻辑图网络
    小蚂蚁过河
    如何修改uni微信小程序editor组件和input组件的placeholder默认样式
    HTML期末大作业:基于HTML+CSS+JavaScript新能源汽车资讯门户网站
    NAACL2022信息抽取论文分类
  • 原文地址:https://www.cnblogs.com/javadog-net/p/17249269.html