ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# RBAC3 #### **4)RBAC3** RBAC3,它是RBAC1与RBAC2合集,所以RBAC3是既有角色分层又有约束的一种模型 ![](https://img.kancloud.cn/39/ef/39ef73b859bbce0e14360f08c25c9661_592x381.png) 场景:企业数据 适用资源:客户信息 RBAC的思想,来源于现实世界的企业结构。比如,销售角色,拥有查看客户信息的权限。当一个销售人员小王入职了,可以把销售角色赋予小王,那么小王就拥有了查看客户的权限。这种方式,避免了ACL模型下,每次新人入职,需要逐个配置资源表的情况。同样,权限变动也变得很方便,只要修改角色,即可实现多用户的权限修改。 **权限表** ``` <pre class="calibre10">``` 名称:创建客户 资源<span class="token3">:</span> 客户信息 操作:创建 名称:删除客户 资源<span class="token3">:</span> 客户信息 操作:删除 名称:查看客户 资源<span class="token3">:</span> 客户信息 操作:查看 名称:修改客户 资源<span class="token3">:</span> 客户信息 操作:修改 ``` ``` **角色表** ``` <pre class="calibre10">``` 名称:销售角色 权限<span class="token3">:</span> 创建客户、删除客户、查看客户、修改客户 ``` ``` **用户表** ``` <pre class="calibre10">``` 主体:小王 角色<span class="token3">:</span> 销售角色 ``` ``` RABC并不总能满足所有权限的场景。比如,我们无法对销售角色,进行个体定制。比如,销售角色拥有创建、删除的权限。如果我们要对销售小李,去掉删除的权限。那么,我们就必须创建另一个角色,来满足需求。如果这种情况很频繁,就会丧失角色的统一性,降低系统的可维护性。 角色和组两个概念可能会让人混淆,在这里做个区分: - 角色赋予的是主体,主体可以是用户,也可以是组 - 角色是权限的集合 - 组是用户的集合 - - - - - - ![](https://img.kancloud.cn/f8/c3/f8c3d752a7e0b5ac60894763e7505d67_1410x749.png)