经常能听到来自不同客户的询问,如何给某一个特定的事务代码设定权限。以下以一个简单的例子来说明。
问题:
如何给事务代码KSBL设定管理会计控制范围(Controlling area 字段名: KOKRS)的特定权限,比如说,只能查看Controlling area 0001里面的数据?
分析过程:
1)使用事务代码SU24,查看一下所有能够被KSBL使用到的权限对象:
2) 在查询出来的权限对象列表中,挨个查看”field values”,你会发现,对于K_REPO_CCA这个权限对象,会对KOKRS,也就是控制范围做检查。
3)到上一步为止,其实你已经找到了问题的答案,在这一步中,我们一起来验证,这个答案是否有效可用。
我们在Role(事务代码 PFCG)里面,维护一下K_REPO_CCA这个权限对象如下:
4)在上一步的设定中,针对K_REPO_CCA这个权限对象,我们只分配了“BOWN”这个管理会计控制范围的权限,也就是说,针对其他的控制范围,都是没有权限的。这一步中,运行事务代码KSBL来验证一下,这个设定是否有效。
首先,我们使用“BOWN”这个管理会计控制范围:
可以运行出结果,没有任何问题。
然后,我们使用另外一个管理会计控制范围,如“CAOO”:
在这一步中,根据我们的设定,和预想的一样,不能得到结果。
5)为了进一步验证,可以使用事务代码SU53,查看一下刚才权限的问题出现在什么地方:
从上图中,可以看到,因为使用了管理会计控制范围CAOO,权限读取失败。
——完——–