一场评审会,把权限问题摆上了桌面
九游在服务企业报表项目时,经常遇到这样的情况:报表开发进度看起来一切顺利,功能演示也很流畅,但一到上线前的评审会,业务部门连着抛出几个问题,现场就安静了。前段时间一个制造企业的报表项目评审会就是这样,销售负责人问了一句“大区经理能不能看到别的区域的明细”,技术团队愣了一下,回答说权限是按菜单配的,数据范围还没细化。这句话一出,会议室里的讨论方向立刻变了。
这类场景在九游接触的报表项目里并不少见。报表系统的权限管理往往被当成开发尾声的收尾工作,实际上它牵涉角色设计、数据范围和口径版本三条线,任何一条没理顺,上线后都会反复返工。
坑一:角色按部门建,结果谁都不合适
第一个坑是角色划分过于依赖组织架构。很多项目一开始就照着部门表建角色,销售部一个角色、财务部一个角色、生产部一个角色。听起来清晰,实际用起来问题不断。九游在复盘时发现,同一个部门里,总监要看汇总,区域经理要看本区域明细,业务员只看自己跟进的客户,三种诉求被塞进一个角色,最后只能把权限放大,谁都多看一点。
更合理的做法是先梳理“看什么数据”和“看多大范围”两个维度,再组合成角色。九游在报表系统建设中通常建议客户把角色拆成功能角色和数据角色两层:功能角色决定能用哪些报表和操作,数据角色决定能看到哪些行和哪些列。两层解耦之后,人员调动时只需要换数据角色,不用重新配一遍菜单。
- 功能角色按报表模块和操作类型划分,保持稳定
- 数据角色按组织、区域、客户归属等维度划分,随业务调整
- 两者通过人员授权关系绑定,减少重复配置
坑二:行级权限没设计,明细报表不敢开放
第二个坑更隐蔽。汇总报表大家都能看,但一到明细报表,业务部门就要求“先别开放”。原因很简单,明细里带着客户名称、合同金额、回款进度,一旦行级权限没做,等于把全部经营细节摊开给所有人。九游见过不少项目因此把明细报表锁在少数人手里,报表系统的价值打了折扣。
行级权限的关键在于提前确定数据归属规则。比如客户归属到哪个销售、订单归属到哪个区域,这些字段要在数据整合阶段就补齐,而不是等报表做完再补。九游在报表开发流程中会把行级权限规则写进需求文档,明确每个明细报表按什么字段过滤、过滤值从哪里来、默认值怎么处理。规则定清楚,开发和测试才有依据,业务部门也敢放心开放明细。
坑三:权限和口径版本脱节,改一次乱一片
第三个坑出现在报表迭代阶段。业务口径调整后,报表逻辑改了,但权限配置没跟着改,结果新版本报表里出现了旧权限看不到的字段,或者某个角色突然多了一批数据。九游在项目复盘中注意到,这类问题往往不是技术难题,而是流程上没有把权限变更和口径版本绑定在一起。
比较稳妥的做法是把权限配置纳入版本管理。每次口径调整,同步评估受影响的报表、角色和数据范围,形成变更清单。九游在报表系统建设中会建议客户保留权限配置的历史记录,定时生成任务执行前先校验权限规则是否与当前版本匹配。这样即使出现问题,也能快速定位是哪一次变更引入的。
报表项目的权限管理不是上线前补的一道手续,而是贯穿需求、开发、测试和运维的持续工作。九游在多个报表项目中验证过,把角色设计、行级规则和版本衔接三件事提前做扎实,上线评审会上的追问会少很多,报表系统也更容易被业务真正用起来。
我们上次评审会也是被问行级权限,当时真答不上来,后来补了两周。
角色分功能角色和数据角色这个思路挺实用,比按部门建角色灵活多了。
口径版本和权限绑定这点太真实了,改一次口径排查半天权限问题。
明细报表不敢开放是通病,业务部门怕数据泄露,技术部门怕背锅。
九游这类复盘文章多写点,比纯讲功能的有参考价值。