在ABAP中使用权限检查有什么用?

时间:2015-08-07 06:55:31

标签: sap abap

ABAP中AUTHORITY-CHECK的实际和逻辑用法是我想知道的

2 个答案:

答案 0 :(得分:4)

高层:

  1. 授权对象定义可以访问的应用程序功能。在应用程序设计期间,当记录应用程序的安全性方面时,这些对象通常是定义的。它们在应用程序构建期间由开发人员或安全团队创建
  2. 应用程序开发人员(SAP用于SAP标准代码,其他用于非SAP标准代码)将在其应用程序中构建功能,以检查针对这些授权对象的授权(使用AUTHORITY-CHECK)。每个授权可能有一个或多个与之关联的活动(显示创建批准等 - 这些是在授权对象创建期间指定的)
  3. 在运行时,当用户运行应用程序时,将检查用户的授权。如果检查失败,应用程序将负责以任何合适的方式处理该故障 - 显示错误,不显示某些数据等。
  4. 例如,授权"在公司代码1000"中显示采购订单。应用程序开发人员将使用AUTHORITY-CHECK对其程序进行检查,该检查根据相应的授权对象检查授权,并将公司代码作为参数提供。当用户运行该代码时,执行授权检查并检查针对该用户的主记录(通过分配的角色)存储的授权。如果用户没有授权,则将执行为授权失败的情况构建的任何逻辑。

    ABAP documentation中描述了AUTHORITY-CHECK语句。

答案 1 :(得分:3)

选中以创建ROLES并为该角色分配授权和TCODES,以便只有该用户才能访问这些T代码。 使用SUIM和SU21 T代码。

如果您希望保护自己编程的交易,则必须执行授权检查。

这意味着您必须在事务定义中分配授权对象。

例如:

编写AUTHORITY-CHECK。

AUTHORITY-CHECK OBJECT <authorization object> ID <authority field 1> FIELD <field value 1>. ID <authority field 2> FIELD <field value 2>. ... ID <authority-field n> FIELD <field value n>.

OBJECT参数指定授权对象。

ID参数指定授权字段(在授权对象中)。

FIELD参数指定授权字段的值。

授权对象及其字段必须适合该事务。在大多数情况下,您将能够使用现有的授权对象来保护您的数据。但是新的开发可能需要您定义新的授权对象和字段。

http://help.sap.com/saphelp_nw04s/helpdata/en/52/67167f439b11d1896f0000e8322d00/content.htm

为确保用户在执行操作时拥有相应的授权,用户需要接受授权检查。