mysql 用户管理

mysql 用户管理

[外链图片转存失败(img-1oDUKBWe-1565055062741)(/newdisk/new_start/mine/MYMD/database/mysql/image/深度截图_选择区域_20190806085304.png)]

  • 创一个测试数据库

  • 创一个测试表

    create database testdb;
    create table testdb.t1(id int);
    
  • 创建一个角色

  • 看一下角色到底是什么

    create role 'write_role';
    select host,user,authentication_string from mysql.user;
    

    发现角色其实是没有密码的用户

  • 对角色进行授权

    grant insert,update,delete on testdb.* to 'write_role';
    grant select on testdb.* to 'write_role';
    
  • 创建一个新用户

  • 将角色授权给用户

    create user 'user1' identified by 'user1';
    grant 'write_role' to 'user1';
    
  • 查看用户都有什么权限

    show grants for 'user1' ;
    show grants for 'user1' using 'write_role';
    
  • 使用新用户user1查看是否成功

    mysql -uuser1 -p
    select * from testdb.t1;
    

    ERROR 1142 (42000): SELECT command denied to user ‘user1’@‘localhost’ for table ‘t1’

  • 不成功,看看是什么原因

    select current_role();
    

    current_role()
    NONE

    原因:角色未激活

  • 激活角色

    set role 'write_role';
    select current_role();
    select * from testdb.t1;
    

    成功

  • 也可以在root中就给用户设置默认的角色

    mysql -uroot -p
    set default role 'write_role' to 'user1';
    set default role all to 'user1';
    

    //

    select * from mysql.default_roles;
    select * from mysql.role_edges;
    
  • 撤销权限

    revoke insert,update,delete on testdb.* from 'write_role';
    show grants for 'write_role';
    show grants for user1 using 'write_role';
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值