RBAC0
在RBAC0中,一个用户可以具备多个角色,一个角色可以具备多个权限。如下图
用户表
角色表
1:n
权限表
1:n
访问合集
1:n
1:1
用户所具备的权限是用户所具备角色的权限合集
RBAC1
RBAC1是在RBAC0的技术基础之上建立的,主要是增加了角色的继承关系,让角色有了上下级。如下图
用户表
角色表
1:n
权限表
1:n
访问合集
1:n
1:1
用户所具备的权限是用户所具备角色的权限合集
0:n
RBAC2
RBAC2也是在RBAC0的技术基础之上建立的,引入了静态职责分离和动态职责分离。
角色互斥:在实际项目中有一些角色是互斥的,如财务就不能自己报账自己审批,对于这个角色一般不能和其他角色见人。通过职责分离可以解决这一问题。
静态职责分离:在权限配置阶段就做限制。如同一个用户不能被授予互斥的角色,授予时做互斥判断。
动态职责分离:运行阶段进行限制。如一个用户即使有多个角色,代码也会实时判断其真正有效的角色是几个。
用户表
角色表
1:n
权限表
1:n
访问合集
1:n
1:1
用户所具备的权限是用户所具备角色的权限合集
静态职责分离
动态职责分离
RBAC3
RBAC3是RBAC1和RBAC2的合体,如下图:
用户表
角色表
1:n
权限表
1:n
访问合集
1:n
1:1
用户所具备的权限是用户所具备角色的权限合集
静态职责分离
动态职责分离
0:n