在MySQL 8.0+中通过创建角色简化权限管理,先用CREATE ROLE定义角色并GRANT授予权限,如为’devel%ignore_a_1%per’赋予test_db库的读写和执行权限;再将角色分配给用户如’alice’@’localhost’,需使用SET DEFAULT ROLE ALL TO ‘alice’@’localhost’激活角色,默认不生效;后续直接修改角色权限即可自动同步给所有关联用户,提升运维效率与安全性。

在MySQL中,使用角色可以大幅简化权限管理,特别是在用户数量多、权限结构复杂的场景下。通过角色,可以将一组权限打包,然后分配给多个用户,后续只需调整角色权限,所有关联用户自动继承变更。
创建和定义角色
角色本质上是一个命名的权限集合。你可以用 CREATE ROLE 语句创建角色,并用 GRANT 授予权限。
创建一个名为 ‘developer’ 的角色:
CREATE ROLE ‘developer’;为该角色授予对 test_db 库的读写权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON test_db.* TO ‘developer’;也可以赋予更高级权限,如执行存储过程:
GRANT EXECUTE ON test_db.* TO ‘developer’;
将角色分配给用户
创建并配置好角色后,就可以将其赋予具体用户。
假设已有用户 ‘alice’@’localhost’,可执行:
GRANT ‘developer’ TO ‘alice’@’localhost’;一个用户可以拥有多个角色:
GRANT ‘developer’, ‘report_viewer’ TO ‘alice’@’localhost’;
激活角色以生效权限
即使被授予角色,用户登录后默认不会激活角色权限。需要设置默认角色或手动激活。
勾股OA办公系统
勾股OA是一款基于ThinkPHP6 + Layui + MySql打造的实用的开源的企业办公系统,开箱即用,使用勾股OA可以简单快速地建立企业级的办公自动化系统。 办公自动化系统是员工及管理者使用频率最高的应用系统,可以极大提高公司的办公效率,我们立志为中小企业提供开源好用的办公自动化系统,帮助企业节省数字化、信息化办公的成本。 系统特点1、系统各功能模块,一目了然,操作简单;通用型的后台权
21 查看详情
设置用户登录时自动激活角色:
SET DEFAULT ROLE ALL TO ‘alice’@’localhost’;用户也可以在会话中临时启用某个角色:
SET ROLE ‘developer’;查看当前生效的角色:
SELECT CURRENT_ROLE();
维护与更新角色
当业务需求变化时,直接修改角色权限即可,无需逐个调整用户。
例如,新增对日志表的访问权限:
GRANT SELECT ON test_db.logs TO ‘developer’;所有拥有 ‘developer’ 角色的用户下次激活角色后即获得新权限。撤销权限同样简单:
REVOKE INSERT ON test_db.users FROM ‘developer’;
基本上就这些。合理设计角色(如 developer、dba、readonly_user 等),能显著降低权限管理复杂度,提升安全性和运维效率。注意开启角色支持需确保 MySQL 版本不低于 8.0,并正确配置 sql_mode。
以上就是mysql中如何使用角色简化权限管理的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1076297.html
微信扫一扫
支付宝扫一扫