几乎每个后台系统都会涉及到系统管理模块:包含用户、角色、权限的统一设置管理,尽管各个系统根据实际情况会有些许差异但都大同小异。因此我们可以设计一个通用的基础业务平台,后续有新的后台系统需要搭建,可以进行复用。
一、RABC是什么意思?
RBAC是基于角色的访问控制(英文全称为:Role-Based Access Control),所以RBAC就是基于角色的访问控制的英文简称啦!在 RBAC 中,权限与角色相关联,给用户赋予相对应的角色,那么这个用户就会拥有这些角色的权限。用户、角色、权限三者层级分明,互相关联,这就做可以极大地简化权限的管理。
————————————————
二、为什么要采用RABC?
职能划分更谨慎。对于角色的权限调整不仅仅只影响单个用户,而是会影响关联此角色的所有用户,管理员下发/回收权限会更为谨慎;
便于权限管理。对于批量的用户权限调整,只需调整用户关联的角色权限即可,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低漏调权限的概率;
在RBAC中,用户不再直接与权限相连,而是通过“角色”这一属性来间接的被赋予权限,用户通过成为适当的角色来的到这些角色固有的权限,这样处理就解耦了用户与权限的关系。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
Who:是权限的拥有者或主体(如:User,Role)。
What:是操作或对象(operation,object)。
How:具体的权限(Privilege,正向授权与负向授权)。
(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限解耦的目的。
1、功能权限
2、数据权限
数据字段权限
数据范围权限:按区域、按组织机构管理,当前节点/当前节点及以下节点