【MySQL 8.0】使用role角色功能对用户进行权限设置
一、MySQL角色的作用
角色(role)是 MySQL8.0 引入的新功能,角色的作用就相当于一个用户组,在同一个组内的用户有同样的权限,这样做的目的是方便对拥有相同权限的用户进行统一管理,也省去了对每个用户单独授权的繁琐过程。
二、MySQL角色的管理
1、创建角色(和创建用户类似,只是关键词替换为了ROLE)
CREATE ROLE 'manager'@'%'; CREATE ROLE 'user'@'%';
2、为角色赋权(和用户授权的方式一样)
#这里让角色manager拥有了demo_80这个库的所有权限 GRANT ALL PRIVILEGES ON demo_80.* TO 'manager'@'%'; GRANT SELECT,INSERT,DELETE,UPDATE ON demo_80.* TO 'user'@'%';
3、查看角色的权限(和查看用户权限一样)
SHOW GRANTS FOR 'manager'@'%';
4、回收角色权限
REVOKE DELETE ON demo_80.* FROM 'user'@'%'; SHOW GRANTS FOR 'user'@'%';
5、删除角色
drop role 'user'@'%';
三、给用户赋予角色
1、创建用户
CREATE USER 'tanglu'@'%' IDENTIFIED BY '123456';
2、修改该用户的角色。实际就是让角色成为了权限的集合别名
GRANT 'manager'@'%' TO 'tanglu'@'%'
3、用户加入角色后默认是没有激活的,查看当前角色依然是NONE
SELECT CURRENT_ROLE();
4、激活角色
#方法1——SET DEFAULT ROLE语句 SET DEFAULT ROLE 'manager'@'%' TO 'tanglu'@'%'; #方法2——开启activate_all_roles_on_login,对所有角色永久激活 set global activate_all_roles_on_login=on;
5、再次查看用户当前角色验证
SELECT CURRENT_ROLE(); #重新登录被赋权的用户进行角色查看
6、撤销用户角色
revoke 'manager'@'%' from 'tanglu'@'%';
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论