🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
##### RBAC2,它是RBAC的约束模型,RBAC2也是建立的RBAC0的基础之上的,在RBAC0基础上假如了约束的概念,主要引入了静态职责分离SSD(Static Separation of Duty)和动态职责分离DSD(Dynamic Separation of Duty)。 ##### SSD是用户和角色的指派阶段加入的,主要是对用户和角色有如下约束: * a、互斥角色:同一个用户在两个互斥角色中只能选择一个 * b、基数约束:一个用户拥有的角色是有限的,一个角色拥有的许可也是有限的 * c、先决条件约束:用户想要获得高级角色,首先必须拥有低级角色 ##### DSD是会话和角色之间的约束,可以动态的约束用户拥有的角色,如一个用户可以拥有两个角色,但是运行时只能激活一个角色。 ![](https://img.kancloud.cn/65/10/651025e81a4bd75c3dab0b7482d20e2f_596x339.png) ![](https://img.kancloud.cn/ef/77/ef770dafbd94e9506ee1636eaa68a4ee_1210x442.png) 用户在配置角色或角色下新建添加用户时,需要根据用户已有的角色身份进行判断。示例:用户A配置角色为客服组长,则可继续添加角色为客服主管,若客服主管已被分配给他人,则也不能分配给用户A(遵从最大拥有数原则)。若同时将保安主管分派至用户A,则操作时,需要选择操作角色 ![](https://img.kancloud.cn/0a/32/0a32dc67647062ff92c54ec546361035_809x263.png) user | id | username | | --- | --- | | 1 | admin| | 2 | zhangsan | | 3 | lisi | | 4 | wangwu | rule | id | title|name| | --- | --- |---| | 1 | 查看用户列表 |user/user/index| | 2 | 添加用户 |user/user/add| | 3 | 编辑用户 |user/user/edit| | 4 | 删除用户 |user/user/del| | 5 | 删除多个用户 |user/user/multi| | 6 | 权限管理 |auth/rule/index| | 7 | 文章审核页面 |auth/postcheck/index| | 8 | 评论审核页面 |auth/commintcheck/index| role | id | name | rules| pid |max_role| | --- | --- | --- | --- |--- | | 1 | 超级管理员 | * | 0 |1| | 2 | 管理员1 | 1,2,3,4,5 | 1 |10| | 3 | 管理员2 | 1,6 | 1 |10| | 4 | 审核员组长 | 7,8 | 0 |1| | 5 | 评论审核员 | 8 | 4 |*| 他们是多对多关系 所以可以用中间表将他们关联在一起 user_role | user_id | role_id | | --- | --- | | 1 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 4 | | 4 | 5 |