今天我们从一个很典型的 SAP 授权场景切入,业务部门正在使用 SD 和 MM,但是没有启用 HR,也没有启用 HR-ORG,MM 里也没有使用 Warehouse Management。公司一共有五个 plant,现在准备在这些 plant 里维护 material master data。业务上的要求很清楚,每个 plant 都有一个专门的员工负责维护本 plant 的物料主数据,这个员工不能修改其他 plant 的物料主数据,但可以查看所有 plant 和所有 company code 下的物料主数据。
这个需求看起来像是一个很普通的权限需求,实际落到 SAP 系统里,牵涉的内容并不少。我们要处理 role、authorization object、authorization field、authorization profile、organization level、SU25、SU24、PFCG、SU01、SU53 这些概念。很多项目里权限设计出问题,不是因为顾问不知道哪里点保存,而是没有把这些概念背后的关系理顺。最后的结果通常是,某个用户改不了该改的数据,或者更麻烦,用户能改本来不该改的数据。
在这个场景里,预定义 role 不满足我们的需求,所以我们会从一个自定义 role 开始做。角色名称可以设为 MATST_0001,含义很直观,它代表 plant 0001 的 material master 维护权限。这个 role 的目标不是给用户一个大而全的 MM 权限,而是把范围压到 plant 0001 和 company code 0001,同时保留跨 plant 的 display 权限。
权限设计不是从 PFCG 点按钮开始,而是从边界开始
做