很多项目一到集成测试阶段,最常见的抱怨不是程序 dump,也不是接口超时,而是业务用户一句很熟悉的话,我明明能登录,为什么还是不能做这笔业务。这句话背后,往往不是某一条单独的权限没配,而是整套 ABAP 授权体系没有被当成业务设计的一部分来处理。SAP 的授权概念保护的对象并不只是事务码,它同时覆盖事务、程序、服务以及业务对象。用户登录并完成身份认证之后,系统还会继续判断,这个人能不能执行某个动作,能看到哪些数据,能不能改动某一类对象。这个判断链条,正是整个 ABAP Authorization Concept 的核心。(SAP Help Portal)在 SAP 里,真正承担保护职责的不是一个模糊的权限概念,而是授权对象。业务对象或者事务被授权对象保护,授权本身则是授权对象的具体实例,里面带着活动和字段值。多个授权会被汇总进授权配置文件,配置文件又和角色绑定,用户管理员再把角色分配到用户主记录里,最后用户才具备执行相应事务和业务操作的能力。到了系统运行时,系统并不是简单看用户有没有一个角色名字,而是会按授权对象和字段值逐层比对。这个设计看起来有点绕,可它有一个非常现实的好处,同样是显示动作,采购员看到的是采购范围内的数据,财务专员