企业权限系统设计专题

从 ACL、RBAC、ABAC、数据权限到企业治理、工程落地与权限测试

权限系统表面上是在回答“这个用户有没有权限”,真正进入企业系统后,问题会迅速扩大:权限从哪里来、作用于哪些数据、如何继承、冲突时听谁的、临时权限何时回收、服务账号和 AI Agent 如何治理、权限撤销后缓存多久失效,以及如何证明系统不存在越权。

本专题使用同一个“某集团企业运营平台”案例贯穿八篇文章。固定对象包括张三、李四、王芳、刘敏、赵强、Alice,业务资源包括订单 O1001、付款单 P1001、项目 Project-A 和文档 D1001;非人主体包括 order-service、finance-service、report-job、crm-client 和 report-agent。

权限模型关系

文章目录

  1. 权限系统总体设计:从身份、资源到授权决策
  2. ACL 模型详细设计:资源授权、权限继承与共享控制
  3. RBAC 模型详细设计:角色、继承、约束与权限计算
  4. ABAC 模型详细设计:属性、策略与动态授权决策
  5. 数据权限详细设计:行级过滤、字段控制与业务关系授权
  6. 企业内部完整权限管理体系:组织、授权流程与权限治理
  7. 权限中心的工程落地:架构、缓存、一致性与高可用
  8. 权限系统测试:正确性、越权、一致性与性能

统一结论

企业权限系统通常不是在 ACL、RBAC、ABAC 中三选一,而是分工组合:

机制 主要职责
RBAC 管理“能做什么”的功能权限
ACL 管理具体资源实例授权和共享
ABAC 处理金额、时间、设备、风险等动态条件
ReBAC 根据项目成员、负责人、包含关系推导权限
数据权限 将访问边界落实到行、字段、查询和写操作
权限治理 管理申请、审批、委托、复核和回收
权限中心 提供稳定、可解释、高性能的运行时决策
权限测试 验证正确性、越权防护、一致性和容量

专题统一采用以下权限编码规范:

<domain>:<resource>:<action>

例如:

sales:order:read
finance:payment:approve
document:file:share
iam:role:assign

权限编码只表达稳定的业务能力。租户、部门、项目、资源实例和有效期分别通过 Tenant、Scope、Data Scope、ACL、Policy 与 Role Assignment 表达。

阅读建议

第一次设计权限系统,建议按顺序阅读。已有 RBAC 基础、正在处理数据越权问题,可以直接阅读第五篇;正在建设统一权限中心,则重点阅读第六、七、八篇。

资料和开源项目状态按 2026 年 7 月整理。正式选型时仍应以项目官方文档和当前发行版本为准。