使用自定义表进行授权访问

2020-08-23 00:54发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 这是我的情况:我想...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

这是我的情况:我想通过公司代码的特定列表限制用户可以在BEx查询中显示的数据。 该列表将保存在一个自定义表中,该表具有:USER ID,序列号,公司代码

这些是我已采取的步骤:

1。 使信息对象0COMP_CODE授权相关

2。 创建了一个类型为Customer Exit ZCOMPCODE的BEx变量,并将其分配给BEx中的0COMP_CODE

3。 我在RSECADMIN,ZCOMP中创建了一个新的授权对象,插入了特殊字符以及0COMP_CODE,并为其分配了在BEx中创建的变量$ ZCOMPCODE

4。 我将ZCOMP分配给一个角色,然后将该角色分配给我的测试用户

5。 我在包含ZXRSRU01的CMOD中创建了代码,以执行我的逻辑以使用公司代码列表查找自定义表

这是我的问题:

我的逻辑工作正常,并且如果我还为 S_RS_AUTH 分配了 0BI_ALL ,报表仅返回表中公司代码的数据, strong>。

换句话说:

-如果S_RS_AUTH仅具有ZCOMP,我的授权检查将失败。

-如果S_RS_AUTH同时具有ZCOMP和0BI_ALL,则我的报告有效

我为测试用户分配了两个角色:

Z_COMP 中仅包含S_RS_AUTH对象

Z_REPORT_USER 具有基于模板S_RS_RREPU的所有其他授权。 我已经停用了S_RS_AUTH,因为Z_COMP拥有了它。

必须为我的自定义安全性分配0BI_ALL才能正常工作,但似乎不是一个安全人员,我可能错过了一些东西,并且希望得到专家的任何帮助。

期待您的答复。

Marcelo Berger

5条回答
hengyuye
2020-08-23 01:32

嗨Marcelo,

正如汤姆已经指出的那样,在当前编码中,没有考虑到找不到文档的情况。 如果要授予完全授权,则必须对其进行编程(即CP *)

可以按如下方式增强编码:

如果lt_doctyp []不是INITIAL。

在lt_doctyp INTO v_dt中循环。

l_s_range-low = v_dt。

l_s_range-sign ='I'。

l_s_range-opt ='EQ'。

APPEND l_s_range到e_t_range。

ENDLOOP。

ELSE。 " <<<新

l_s_range-low ='*'。" <<< new

l_s_range-sign ='I'。 " <<<新

l_s_range-opt ='CP'。" <<<新

APPEND l_s_range TO e_t_range。 " <<< new

ENDIF。

顺便说一句,我在授权日志中看到另一个问题:公司代码ARG1也未被授权。

最佳

Sander

一周热门 更多>