权限系统功能模块设计主流的九种常见权限模型
ACL模型:访问控制列表 (Access Control List)
- 说明:ACL 是一种基于资源的访问控制机制,每个资源都有一个访问控制列表,列出哪些用户或用户组可以访问该资源。
- 适用场景:适用于需要对每个资源进行细粒度权限控制的系统。
- 优点:提供了详细的权限控制,灵活性高。
- 缺点:管理复杂,尤其是在用户和资源数量庞大时。
RBAC模型:基于角色的访问控制 (Role-Based Access Control)
- 说明:RBAC 通过角色来管理权限,用户通过分配的角色获得相应的权限。
- 适用场景:适用于组织结构明确,角色职责清晰的系统。
- 优点:易于管理,权限分配简单。
- 缺点:不适合需要细粒度权限控制的场景。
关键的五张表
- 用户表(UserInfo):Id、UserName、UserPwd
- 角色表(RoleInfo):Id、RoleName
- 菜单表(MenuInfo):Id、MenuName
- 用户角色表(UserRole):Id、UserId、RoleId
- 角色菜单表(RoleMenu):Id、RoleId、MenuId
基于权限的关系通用模型

RBAC模块功能

RBAC权限控制流程

ABAC模型:基于属性的访问控制 (Attribute-Based Access Control)
- 说明:ABAC 使用用户属性、资源属性和环境属性来定义访问策略。
- 适用场景:适用于需要动态权限决策的复杂系统。
- 优点:灵活性高,支持复杂的访问控制策略。
- 缺点:实现和管理复杂。
MAC模型:强制访问控制 (Mandatory Access Control)
- 说明:MAC 是一种系统强制策略控制的访问机制,用户无法改变权限。
- 适用场景:适用于安全性要求极高的系统,如军事或政府系统。
- 优点:安全性高,防止用户随意更改权限。
- 缺点:灵活性低,用户体验较差。
DAC模型:自主访问控制 (Discretionary Access Control)
- 说明:DAC 允许资源所有者自主决定谁可以访问资源。
- 适用场景:适用于需要用户自主管理资源权限的系统。
- 优点:灵活性高,用户可以自由管理自己的资源。
- 缺点:安全性较低,容易出现权限滥用。
PBAC模型:基于策略的访问控制 (Policy-Based Access Control)
- 说明:PBAC 通过预定义的策略来控制访问权限。
- 适用场景:适用于需要基于复杂策略进行权限控制的系统。
- 优点:支持复杂的策略定义,灵活性高。
- 缺点:策略管理复杂,可能影响系统性能。
CBAC模型:基于上下文的访问控制 (Context-Based Access Control)
- 说明:CBAC 根据访问请求的上下文信息来决定权限。
- 适用场景:适用于需要根据实时上下文信息进行权限决策的系统。
- 优点:动态性强,能够适应多变的环境。
- 缺点:实现复杂,依赖于准确的上下文信息。
OBAC模型:基于组织的访问控制 (Organization-Based Access Control)
- 说明:OBAC 基于组织结构和层级来管理和分配权限。
- 适用场景:适用于组织结构复杂的企业系统。
- 优点:符合组织管理逻辑,易于理解。
- 缺点:灵活性较低,难以适应组织结构的频繁变化。
HBAC模型:基于历史的访问控制 (History-Based Access Control)
- 说明:HBAC 考虑用户的历史行为和访问记录来决定权限。
- 适用场景:适用于需要根据用户历史行为进行权限决策的系统。
- 优点:能够根据用户行为动态调整权限。
- 缺点:依赖于历史数据的准确性和完整性。