基于RBAC模型的权限设计:如何设计系统权限体系? | 人人都是产品经理
一,什么是RBAC
RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限解耦的目的。
RBAC的好处
- 职能划分更谨慎。对于角色的权限调整不仅仅只影响单个用户,而是会影响关联此角色的所有用户,管理员下发/回收权限会更为谨慎;
- 便于权限管理。对于批量的用户权限调整,只需调整用户关联的角色权限即可,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低漏调权限的概率;
在不断的发展过程中,RBAC也因不同的需求而演化出了不同的版本,目前主要有以下几个版本:
1.RBAC0,这是RBAC的初始形态,也是最原始、最简单的RBAC版本;
2.RBAC1,基于RBAC0的优化,增加了角色的分层(即: 子角色),子角色可以继承父角色的所有权限;
3.RBAC2,基于RBAC0的另一种优化,增加了对角色的一些限制: 角色互斥、角色容量等;
4.RBAC3,最复杂也是最全面的RBAC模型,它在RBAC0的基础上,将RBAC1和RBAC2中的优化部分进行了整合;
RBAC1:
RBAC2: