给了一个“华东运营”角色,为什么还是越权了?
大促临时支援,一个看似正常的权限配置,却让运营看到了不该看的数据、拥有了不该有的审批权,甚至权限到期后仍未回收。本文通过脱敏案例,深度剖析多品牌、多门店场景下功能权限与数据权限的交汇难题,揭示权限管理不是一张角色表,而是两套体系共同作用的结果,并给出可落地的产品检查公式。

大促前,运营群里冒出一句很常见的话:
“给她开一个华东运营权限,先帮这 18 家店顶 30 天。”
这家企业同时经营两个品牌,门店里既有直营,也有加盟和线上渠道。大促临近,品牌 A 华东区的部分门店需要临时支援。这名运营要查看订单和库存,遇到缺货时发起跨店调拨。
需求很急,听起来也很清楚:华东、运营、18 家店、30 天。
系统里没有“大促临时支援”这种权限,管理员便给她配了现成的“华东运营”角色。这个角色原本为正式区域负责人设计,订单、库存和调拨功能都有,一配就能开工。
然后,问题来了。
她需要支援的是指定 18 家店,系统却把品牌 A 华东区的全部门店都放了出来;她只需要查看库存、发起调拨,角色却同时带来了审批和批量导出能力。
她只需要判断哪里缺货,页面却一并显示了加盟商的采购成本;会员手机号虽然在页面上脱敏,导出的明细却还是完整的。
30 天后,大促结束,临时支援小组解散,这个角色却没有跟着消失。
没有人故意越权,系统也没有报错。申请、配置、使用,每一步单独看都说得通。
偏偏是这些“正常”加在一起,让她看多了、做多了、看深了,也留得太久了。
本文使用脱敏综合案例,用于展示多品牌、多门店和临时协作中的常见权限矛盾,不对应某一个具体项目,也不代表唯一的系统实现方式。

“华东运营”四个字,粘住了两套管理
回头看这次授权,最值得琢磨的不是角色有没有配错,而是“华东运营”这四个字本身。
“运营”说的是岗位职责:她能进入哪些功能,查看、发起、审批还是导出,业务可以被她推进到哪一步。
“华东”说的却是数据范围:她能接触哪个品牌、哪个区域、哪些门店和经营主体的数据。
一个角色名称,把两套本应分别管理的边界粘在了一起。
岗位角色管理的是功能层级范围。从订单、库存、会员等模块,到查看、编辑、发起、审批、导出等动作,它回答的是:这个岗位能做什么?
组织架构及其背后的业务归属,管理的是数据层级范围。从集团、品牌、区域到门店和经营方,它回答的是:这个人能对谁的数据做?
“华东运营”听起来像是两个问题都回答了。但把“华东”和“运营”拼进同一个名称,不等于系统已经把两条边界分别定义清楚,更不等于它们能在真实业务中正确交汇。

单独看都不难,难的是两条线怎样交汇
如果只看岗位角色,这名运营确实需要订单、库存和调拨功能。
但功能权限不能回答,她看到的是品牌 A 还是品牌 B,是整个华东区还是指定 18 家店,是直营数据还是加盟商的敏感成本。
如果只看组织架构,我们也许能沿着集团、品牌、区域和门店找到一层层数据归属。
但数据归属不能回答,她只能查看还是可以修改,只能发起调拨还是能够自己审批,能在页面识别异常订单还是可以把完整会员信息批量带走。
两套管理都必要,却没有哪一套能单独给出最终答案。
在早期的模块速览里,我曾把角色、功能和数据范围压进一张权限矩阵。这张表在组织简单、职责稳定时仍然有用。
但它展示的是配置结果,没有告诉我们:功能范围和数据范围分别从哪里来,临时任务又会怎样改变它们的交汇点。
放回这次大促支援,功能这条线应该停在:
查看订单与库存、发起跨店调拨;不能自己审批,也不能批量导出完整明细。
数据这条线应该停在:
品牌 A、华东区、指定 18 家门店;可以使用履约所需数据,但不能查看加盟采购成本和完整会员手机号。
当她真正打开一笔订单或发起一次调拨时,系统需要同时判断:这个动作是否在岗位角色允许的功能范围内,这笔数据是否在她本次职责对应的数据范围内。
岗位角色回答“能做什么”,组织与业务关系回答“能对谁的数据做”。数据权限,发生在这两条线共同命中的地方。
这里还有一个容易漏掉的风险:问题不一定出在某一个权限太大,也可能出在两个单独合理的权限落到了同一个人身上。
发起调拨和审批调拨都属于正常能力,但同一身份既发起又审批同一笔调拨,业务制衡就消失了。所以功能范围不只要回答“有哪些动作”,还要回答“哪些动作不能在同一次业务里组合”。
数据范围不只是大小,还有边界性质
真实业务不会永远按照固定岗位和固定组织运行。
集团共享团队可能横跨多个区域,却只服务品牌 A;一家线下门店可能承接线上履约,却不因此拥有整个渠道的订单;一个人也可能只为一次大促、一个项目或一段代班时间获得额外职责。
所以,组织树是数据范围的重要坐标,却不总是最终答案;岗位角色是功能范围的稳定底座,也不适合把每一次临时任务都塞进去。
而且,数据范围也不能只理解为从“大”调到“小”。
指定 18 家还是 19 家,通常属于可以按任务调整的业务范围;但不同经营主体、加盟商或租户之间,有些数据属于必须优先守住的隔离边界,不能因为普通角色的范围更大就顺手穿过去。
store_id 可以是门店隔离的重要坐标,却无法独自表达品牌、经营主体、渠道关系和临时任务。真实的数据边界,往往要由这些关系共同决定。
否则,每换一个品牌、区域、门店组合或有效期,就要再复制一个新角色。角色越来越多,名字越来越长,真正的边界反而越来越难看清。

两条主线之外,还要回答“这一次是否成立”
这次需求如果说完整,应该是:
以“大促支援”身份,在未来 30 天内,对品牌 A 华东区指定 18 家门店,可以查看订单与库存、发起跨店调拨,但不能自己审批、查看加盟采购成本或批量导出完整会员信息;到期自动回收,期间操作可追溯。
这句话里,岗位角色提供稳定的功能范围,组织与业务关系提供数据范围;临时身份、敏感字段、有效时间和额外审批,则继续约束“这一次授权是否成立”。
完整会员手机号还多了一层问题:即使系统允许使用,这次任务是否真的需要使用到这个程度?权限回答“能不能”,业务目的还要继续回答“有没有必要”。

如果一定要把它压成一句产品检查公式,可以写成:
最终授权 = 岗位角色提供的功能范围 × 组织与业务关系提供的数据范围 × 本次任务的场景条件。
这里的乘号不是计算,而是在提醒我们:缺掉任何一条,系统都可能给出一个看似正常、实际过宽的答案。
权限不是一张角色表,而是两套体系共同形成的结果
岗位角色和组织架构并不是两套互相竞争的方案。
一个负责让稳定职责可以复用,一个负责让数据归属和层级可以管理。真正困难的地方,是让它们在每一次查看、修改、审批和导出中正确交汇,还能随着转岗、临时支援和合作关系结束而变化。
支援门店从 18 家变成 12 家,数据范围需要跟着变;项目结束,临时身份和附加权限需要到期;已经发生的敏感操作,还要能找回当时的人、岗位角色、数据对象、动作和结果。
审计日志可以回答“当时发生了什么”,却不能替我们回答“这个权限本来应不应该存在”。
所以,数据权限管理真正管的,不只是给谁一个角色,而是让功能边界、数据边界和具体业务条件在同一个授权结果里对齐。
先把这三部分说清楚,我们才知道系统到底要守住什么。
下篇预告
两套体系需要交汇,不等于要把它们重新揉成一张更大的权限表。
如何让组织与业务归属、岗位角色与功能动作各自稳定,又通过一条具体授权记录,在某次任务中准确组合、生效、变更和回收?谁来定义这些边界,系统又该在什么时候重新判断?
下篇,我们继续用这次大促支援,把这组关系落成一套可评审的产品方案。
本文由人人都是产品经理作者【Zoe产品手记】,微信公众号:【Zoe产品手记】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
- 目前还没评论,等你发挥!

起点课堂会员权益




