权限架构¶
Mica 的权限控制分为三层:
- 角色级:决定可见菜单和可执行动作
- 字段级:决定同一条记录中哪些字段可见
- 行级:决定用户能看到哪些业务记录
Cerbos 策略¶
字段级策略由 Cerbos sidecar 评估,策略文件位于:
deploy/cerbos-policies/
修改策略后,Cerbos 会自动热加载,无需重启整个系统。
行级权限(v1.21.0+)¶
行级权限由 backend/app/core/scoping.py 统一实施,按角色分为三个层级:
| 访问级别 | 角色 | PR 可见范围 | 下游记录 | RFQ / 发票 |
|---|---|---|---|---|
| 全量 | admin / procurement_mgr / it_buyer / finance_auditor | 全部 | 全部 | 全部 |
| 部门 | dept_manager | 本部门 | 本部门 PR 关联 | 隐藏 |
| 个人 | requester | 仅自己 | 仅自己 PR 关联 | 隐藏 |
下游记录包括 PO、合同、到货、付款、发票、交货计划。可见性通过 entity.po_id → PO.pr_id → 可见 PR 链路推导。
管理建议¶
- 角色设计尽量稳定,避免按人定制
- 字段权限变更前先评估财务、审批和供应商信息的影响
- 在生产环境修改权限规则后,应做回归验证
requester是最小权限角色,适合一般业务员工;需要看全量数据的采购人员应赋予it_buyer