如何检查某个用户是否具有某个权限对象上定义的某种权限

比如下图这个ABAP development studi里创建的角色是为了实现CDS view DEMO_CDS_AUTH_LIT_PFCG的权限控制,里面使用到了权限对象S_CARRID.

假设现在我有一个需求:我想知道用户名WANGJER是否具有该权限对象的字段s_carrid的显示(03)权限?

如何检查某个用户是否具有某个权限对象上定义的某种权限

如何检查某个用户是否具有某个权限对象上定义的某种权限

在事务码SU01里,我只能查看WANGJER这个用户到底被赋予了哪些PFCG角色。权限对象不是直接分配给用户的,而是通过PFCG角色作为一个中间层。

如何检查某个用户是否具有某个权限对象上定义的某种权限

可以通过查表AGR_USERS得到一个指定的用户分配了哪些PFCG角色。

如何检查某个用户是否具有某个权限对象上定义的某种权限

所以题目开头的需求就转化为这个问题:哪个PFCG角色分配了权限对象S_CARRID?

使用事务码SUIM根据权限对象查询PFCG角色:

如何检查某个用户是否具有某个权限对象上定义的某种权限

下列14个PFCG角色都分配了权限对象S_CARRID:

如何检查某个用户是否具有某个权限对象上定义的某种权限

选择其中一个双击,比如SAP_QAP_DEVELOPER:

如何检查某个用户是否具有某个权限对象上定义的某种权限

如何检查某个用户是否具有某个权限对象上定义的某种权限

上图意味着如果一个用户被分配了PFCG角色SAP_QAP_DEVELOPER,这个用户就拥有了权限对象S_CARRID上定义的Create,Change和Display的权限:

如何检查某个用户是否具有某个权限对象上定义的某种权限
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

如何检查某个用户是否具有某个权限对象上定义的某种权限

如何检查某个用户是否具有某个权限对象上定义的某种权限

上一篇:JavaScript 检查一个 JSON 对象中是否对存指这下的 Key


下一篇:带你走近AngularJS - 创建自定义指令