rbac权限管理
前言:之前在做某个报名系统时,当时有三种角色,分为为用户,管理员,超级管理员,一个用户可能有多个身份,比如某个用户既可能时管理员,也可能是超级管理员,而一个角色可以有多个权限。当时按照自己的经验实现了这个系统,后来了解到了一个更好的解决方案,就是rbac权限管理。
权限控制模型
- rbac-基于角色的访问控制(Role-Based Access Control)
- 权限和角色关联
- 用户和角色关联
好处:
-
方便用户分组
-
方便权限分配和回收
-
扩展方便,可以满足大部分业务需求
对比ACL权限管理,rbac的好处在于简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来,而用户与权限变成了间接关联,从而解耦。
示例:
每个用户都可以对应多个角色,而每个角色都可以对应多个用户,所以是多对多的关系,每个角色拥有多个权限,每个权限也可分配给多个角色,所以也是多对多的关系
一般需要五张表,用户表,角色表,权限表,用户角色表和角色权限表
- 上面的是简单的设计,还有许多可以拓展的设计的实现,得看具体业务而定