权限模型是什么?
权限模型是一套规则和逻辑的集合,用于控制“谁”在“什么条件下”可以对“哪些资源”进行“何种操作”。权限分配就是:数据作为主体,“管理平台”和“客户群”是作为两个客体,客体对主体内容合理的一种管理方式。
权限控制的类型
常用的权限控制可以分为:功能权限和数据权限;
功能权限
控制用户 “能做什么” ,即是否能看到某个菜单、点击某个按钮、访问某个页面。
这里主要从概括性操作去说,主要就是增删改查功能、审核、配药发药等等
数据权限
控制用户 “能看到哪些数据” 。即使两个人有相同的功能权限(都能“查询订单”),但他们能看到的数据范围可能完全不同。
权限的概念模型
用户
系统的操作者,是权限的最终载体。用户代表系统中的实际操作人员,根据系统场景不同,可划分为:
C端用户:如普通消费者。
B端用户:系统内部的员工,可能来自不同部门,承担着不同的职责。
角色
权限的集合,是连接用户和权限的核心桥梁。这是RBAC模型的关键。通过将权限赋予角色,再将角色分配给用户,系统可实现灵活高效的权限管理。通过设计合理的角色,企业能有效管理用户权限,大幅降低权限分配和维护的复杂度。
用户组
用户组是权限模型中的重要工具,是用户的集合。
当一批用户需要相同的角色组合时,可以创建一个用户组并分配多个角色,再将用户加入该组,从而批量授权。
职位
通常与角色和数据权限强相关,职位是用户在组织中的职务和职责的具体体现,也是权限模型中划分权限的重要依据。系统可以根据用户在组织架构中的职位,自动为其分配对应的角色和数据查看范围。
权限模型方案
ACL 模型
ACL模型特别适合权限需求相对简单、直接的系统环境。当系统功能点较少,用户与权限之间可以建立清晰、直接的对应关系时,ACL模型能够提供高效、易于管理的权限控制方案。
用户(User):系统的实际使用者,可以是个人、组织或系统实体。
权限(Permission):明确定义用户可以执行的操作或访问的资源,如查看报表、编辑文档等。
RBAC0 模型
RBAC0是最简单的一种模型,也就是用户和角色关联,角色与权限管理。在 RBAC0 模型中,我们不再直接将权限赋予用户,而是通过角色这个中间层来实现权限分配。这种设计带来了极大的灵活性和可管理性。
用户(User):系统的实际使用者,可以是个人、组织或系统实体。
角色(Role):角色是一系列权限的集合,它像一座桥梁,连接了用户和权限。
权限(Permission):定义了用户可以在系统中执行的具体操作。
RBAC1 模型
RBAC1是基于RBAC0发展而来的,增加了角色继承的概念,RBAC1 模型允许角色之间建立层级关系。在这种结构中,高级角色不仅拥有自身的特定权限,还能自动继承低级角色的所有权限。
RBAC2 模型
RBAC2在用户角色分配过程中添加了一下限制条件,避免用户权限过大。增加角色约束控制,适用于对权限管理要求高的系统。

