MySQL8里新加入了对于角色的管理,下面就简单的说一下如何使用: 角色可以理解为一组权限的集合,然后将角色赋给某个帐户,该帐户就拥有了角色对应的权限,每个帐户可以拥有多个角色,就像游戏里,你可以有很多称号一样。 比如我有个app,它连接数据库中的test2库,但是不同部门对这个库的权限不同,比如有的只能看却不允许操作,有的必须有对其修改的权限,如果每个人申请帐号时候,都要把所需的权限列出来,然后赋给该用户,然而对权限又不是很熟悉,所以每次查找对应权限时候就会浪费很多时间,老司机除外。如果将权限打包放入角色中,那可能节约很多时间,因为我们只需要整理权限一次,以后直接赋角色给帐号就好了。
创建角色
可以一次创建多个角色
语法:create role role_name,role_name2,role_name3;
比如有个部门跟我要个只读权限
那么我可以创建个角色叫test2_read,是不是见词知意,对test2库有只读权限。
然后把权限打包赋给角色
然后将角色添加给用户,用户叫韩梅梅,李雷喜欢的那个
刷新权限
让韩梅梅登录看看
what?我的只读权限呢?我的test2库的权限呢?看看是不是角色没赋上?
没毛病啊,其实是因为角色没有激活导致的,参数activate_all_roles_on_login默认为关闭
有两种激活方式
a、将activate_all_roles_on_login设置为ON
b、使用set default role 命令激活角色
我这里操作一下b选项
登出韩梅梅,再登入
哈哈可以了
将角色从账号身上撤销
语法:revoke role from user;
比如韩梅梅不喜欢李雷了,她离职了
再次登录韩梅梅,已经没有了权限
去除和添加角色上某些权限
添加:
去除:
删除角色
drop role role_name;