做了这么多年的ERP实施和二次开发,如果让我选一个“最不想碰但每次都绕不开”的模块,那一定是权限。权限管理系统在外人看来就是账号、角色、菜单勾一勾,可真到项目里你会发现,它背后牵扯的是组织架构、业务流程、内控规范和历史遗留问题的集合体。很多ERP项目上线延期、验收扯皮,最终都卡在权限上。
这篇文章我不打算讲某个具体产品的操作手册,而是把权限系统里最容易翻车的那几个难点拆开聊。里面大部分是我这些年跑项目、做需求、排故障时踩出来的经验,也适合正准备做ERP选型、做权限模块开发或者负责系统运维的朋友参考。
1. 权限难的第一步,是把“谁能干什么”变成一条可执行的规则
1.1 业务说的“权限”和系统里的“权限”往往不是一回事
我刚入行时接到的权限需求大多长这样:“销售部的只能看自己的客户”“采购价格不能给业务员看”“仓库的人只能操作,不能改单”。听起来简单,对不对?但真去梳理的时候,第一关就卡住了——“自己的客户”到底怎么定义?
是按业务员这个自然人,还是按业务员当前所属的销售小组,或者是按客户档案上的“归属员工”字段?如果业务员调岗了,他原来的客户算谁的?如果客户是老板带进来的,总经理也能看,算不算有权限?这些问题,无论多严谨也会导致需求不明确。
后来我在项目里养成了一个习惯:拿到权限需求第一件事,先让业务负责人把下面这张表填一遍,能填清楚再谈配置:
| 谁能访问 | 访问哪个对象 | 能看到什么字段 | 能做什么操作 | 数据范围 |
|---|---|---|---|---|
| 销售专员 | 客户档案 | 基本信息、历史订单 | 新增、编辑、导出 | 本人负责 |
| 销售经理 | 客户档案 | 全部字段 | 审核、分配、查看跟单 | 本部门 |
| 财务开票员 | 销售订单 | 金额、开票状态 | 查看、关联开票 | 本组织 |
这张表一旦让大家坐下来填,原本“权限很简单”的客户基本都会沉默,因为你逼他们说出了自己都没想清楚的事:权限不只是菜单开不开,还有数据的边界、字段的可见性、操作的审批力度。
1.2 权限分配的“默认值”是历史包袱最重的地方
ERP项目上线时,最常见的一句催促是:“先把所有权限都打开,跑起来再说,后面再收。”这可能是整个权限项目里最危险的决定。原因很简单:一旦业务已经跑起来、数据都录进去了,再往回收紧权限,一定会遇到人为阻力。
有一个案例我记得很清楚:某制造企业上线库存模块时为了赶进度,给所有车间主管开了“其他仓库”的单据查看权限。等到第二个月发现车间主任能直接看到采购暂存区的成本价和供应商信息时,再想收紧,对方反馈“我工作都要用,凭什么不让看”。
这种情况本质上不是技术做不到,而是权限的默认值给错了。“默认收得紧,再按流程申请放开”,虽然上线初期会多出很多审批,但远比“默认全开,事后回收”安全。后来我在权限初始化方案里,永远给客户强调一个理念:权限的最小化原则,宁缺毋滥。缺了可以临时申请,滥了再收回就难了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 多组织架构下的授权建模:集团管控和实际业务经常打架
2.1 组织架构有两套,一套挂在HR系统,一套挂在ERP业务系统里
很多集团型企业的权限难点,一上来就卡在组织树上。你以为的公司层级是“集团-事业部-子公司-工厂”,可ERP里的单据要用的组织概念还有:采购组织、销售组织、库存组织、法人公司,甚至还要
