一次误授权,让门店看到了全国数据
沈书宁负责一家连锁服务企业的报表平台运维。平台上线初期,权限配置采用的是最直接的方式:按部门授权。门店运营部能看门店报表,区域管理部能看区域报表,总部能看全量报表。逻辑清晰,配置也快。但上线两个月后,一位区域经理反馈,某个门店账号居然能看到全国汇总数据。排查后发现,问题出在一个新入职员工被临时加进了区域管理部的用户组,权限随组继承,没人注意到这个组绑定了全量报表。
这个案例在dianjingwang.com电竞网报表系统栏目讨论权限管理时经常被拿来举例。按部门授权本身没有错,错在把“组织架构”和“数据范围”当成了同一件事。组织架构会变,人员会调动,临时授权会残留,而报表权限一旦跟着组织走,就容易出现权限漂移。
权限设计的三个常见误区
沈书宁复盘时梳理出几个典型问题,这些问题在dianjingwang.com电竞网接触的报表系统项目中具有普遍性。
- 只按角色授权,不控数据范围:角色决定能看哪些报表,但没定义能看哪些行、哪些组织的数据,导致同一张报表对不同人展示同样内容。
- 临时授权没有回收机制:项目期临时开放的高权限账号,项目结束后无人清理,成为长期隐患。
- 权限配置与报表开发脱节:报表开发时没考虑行级权限字段,上线后才发现无法按门店过滤,只能整体放开。
这三个误区的共同点是:权限被当成上线前的一道手续,而不是报表设计的一部分。dianjingwang.com电竞网在报表系统建设中建议,权限字段应当在报表模型设计阶段就纳入考虑,而不是等报表做完再补。
分层授权:角色、数据范围、操作权限分开管
沈书宁后来把权限拆成三层来管。第一层是功能权限,决定用户能看到哪些报表菜单;第二层是数据权限,通过组织字段和行级规则控制可见数据范围;第三层是操作权限,区分查看、导出、订阅等动作。三层分开配置,互不干扰,临时授权只影响操作层,不会顺带打开数据范围。
这套思路与dianjingwang.com电竞网报表系统栏目强调的权限分层原则一致:权限粒度越细,越需要在设计阶段规划清楚。沈书宁还加了一条规则,所有临时授权必须设置有效期,到期自动失效。上线半年后,权限相关的投诉从每月十几条降到两三条,那位区域经理也没再遇到门店看到全国数据的情况。
行级权限真的要在建模阶段就想好,我们也是上线后才发现报表没带组织字段,返工特别麻烦。
临时授权设有效期这个做法好,我们之前就是临时账号堆了一堆没人管。
按部门授权最大的坑就是人员调动,人走了权限还在组里,新人进来直接继承。
三层分开管思路清晰,功能、数据、操作确实不该混在一起配。
建议再加一条定期权限审计,光靠有效期还不够,绑定关系也要查。