1.在RBAC引入Role的概念是为了隔离User与Privilege(Operation+Resource),因为业务中的User是经常变化的,例如当某公司的普通员工都具有查看,删除,编辑公司部门内部的资料时,那么有一天我想使普通员工不具备删除部门内部资料的权限,那么我们就要对每一个普通员工进行删除这个权限,使得管理起来非常不便,引入Role把员工Role指派给普通员工,那么只要在员工Role中删除“删除部门资料”的权限,就可以对所有普通员工生效。
2.角色继承用于解决复杂组织结构之间的权限关系。例如:
那么部门主管就具有了A,B权限,部门经理就具有了ABC权限,总经理有ABCD权限。
3.职责关系分离:避免两个角色间的冲突。
A. SSD静态职责分离:当角色授给用户时判断是否将冲突的角色给了同一个用户。冲突的角色被定义为一个二元关系,即任何一个用户只能拥有其中的一个。
B. DSD动态职责分离:角色授给用户时可以把冲突角色授于同一个人,但在一次行为中不能同时扮演两个冲突的角色。