美文网首页
sql自学笔记(十三)——MySQL8.0版本的新特性(三)

sql自学笔记(十三)——MySQL8.0版本的新特性(三)

作者: itczt | 来源:发表于2019-05-01 06:46 被阅读0次

    角色管理

    MySQL提供了角色管理的新功能,角色是一组权限的集合。


    以前的版本
    现在的版本

    实现步骤

    1.创建一个测试的数据库
    create database thestdb;
    2.创建一个表
    create table testdb.tl(id int);
    3.创建一个角色
    create role 'write _ role';
    

    4.先测试一下,查询用户表

    select host,user,authentication _ string from myaql.user;
    

    5.授予权限

    grant select on testdb.* to 'write _ role';
    

    把角色给予用户

    1.创建一个用户

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

    2.把角色授予这个用户

    grant 'write _ role' to 'user1';
    

    3.显示这个用户的权限

    show grants for 'user1';
    

    4.查看用户通过角色获得了那些权限

    show grabts for 'user1' using 'write _ role';
    

    查看这个用户获得这些权限后的一个行为

    使用新建的用户进行登录



    先显示一下用户

    select user();
    

    尝试一下使用它的权限

    查询开始时创建的t1表

    select * from testdb.tl;
    

    这时它显示了错误,不能访问这张表。
    因此,显示当前用户激活的角色

    select current _ role();
    

    上图就是我们不能访问的原因
    设置启动当前用户的角色'write _ role';

    set role 'write _ role';
    

    再来查询一下:

    select current _ role();
    

    这时有了这个权限之后再来查询一下;

    select * from testdb.tl;
    

    如图所示,虽然没用数据但是可以访问这张表的。


    为每个用户设置默认的角色

    set default role 'write _ role' to ‘user';
    

    这时启用‘user’用户时,就会默认有‘write _role’这个角色
    如果有多个用户都默认启用角色

    set default role all to 'user1';
    

    查看角色相关的系统数据

    select  * from mysql.default _ roles;
    


    角色所涉及到的角色信息

    select * from mysql.role _ edges;
    

    授予权限之后还可以撤销相应角色当中的权限
    把角色的权限收回

    revoke insert,update,dalete on testdb * from 'write _ role';
    

    下面在查看相应用户上它的权限

    show grants for user1 using 'write _ role';
    

    由于角色对应的权限被收回,所以用户所对应的权限也没有了。

    相关文章

      网友评论

          本文标题:sql自学笔记(十三)——MySQL8.0版本的新特性(三)

          本文链接:https://www.haomeiwen.com/subject/cucvnqtx.html