点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
为确保用户在执行操作时拥有适当的授权,用户需要接受授权检查。
以下操作受在程序或表维护开始之前执行且 SAP 应用程序无法避免的授权检查的约束:
启动 SAP 事务(授权对象 S_TCODE)
启动报告(授权对象 S_PROGRAM)
调用RFC功能模块(授权对象S_RFC)
使用通用工具维护表 (S_TABU_DIS)
在接下来的帖子中,我们将看到如何为报告和交易添加授权检查。
为表分配授权组的目的:
您可以将授权组分配给表,以避免用户使用通用访问工具(例如事务 SE16)访问表。用户不仅需要授权才能执行该工具,还必须获得授权才能访问具有相关组分配的表。对于这种情况,我们提供具有预定义分配给授权组的表。分配在表 TDDAT 中定义;检查的授权对象是 S_TABU_DIS。
现在我们将看到如何为表分配/创建授权组:
转到 SE54,指定表名并选择授权组,然后单击创建/更改。您可以创建一个授权组。
示例:
您可以将一个表分配给权限组 Z001。(对表 TDDAT 使用事务 SM30)要访问此表的用户必须在他或她的配置文件中具有授权对象 S_TABU_DIS,并且字段 DICBERCLS(ABAP 字典对象的授权组)中的值为 Z001。
授权检查:
在之前的帖子中,我们了解到实时环境中授权检查的重要性。我们知道如何检查表维护的授权。
现在我们将看到如何检查 Reports、Transactions、RFC 功能模块的授权。
以下操作受在程序或表维护开始之前执行且 SAP 应用程序无法避免的授权检查的约束:
启动 SAP 事务(授权对象 S_TCODE)
启动报告(授权对象 S_PROGRAM)
调用RFC功能模块(授权对象S_RFC)
使用通用工具维护表 (S_TABU_DIS)
授权对象 S_TCODE、S_PROGRAM、S_RFC 和 S_TABU_DIS 是标准 SAP 提供的。
创建新的授权对象不在 ABAP 开发人员的范围内。它将由 SAP BASIS 团队负责。
要将授权检查添加到您的程序,您需要在您的报告中添加以下代码。假设您已经为您的报表创建了一个事务代码,那么
您应该使用授权对象 S_TCODE 来检查授权。
您可以将代码放在初始化事件中。
*Initialization
INITIALIZATION.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD 'ZEXAMPLE'.
IF sy-subrc <> 0. "Not Authorized
MESSAGE e003(ZZ) WITH 'TCD' 'ZEXAMPLE'.
ENDIF.