sap 权限检查

如有转载请注明出处:

http://blog.csdn.net/donkey2004112103/archive/2009/05/06/4156065.aspx
今天终于了解了sap如何从技术的角度去实现权限控制,我觉得权限控制是这样实现的,首先想想为什么不同的用户可以有不同的权限了?因为有角色的概念,不同的用户分配了不同的的权限,所以有不同的权限。而角色由参数文件(profile )组成,参数文件里添加了授权对象(authority object),授权对象又由授权字段(authorization field)构成。这就从上到下的组成了权限控制的全部。如图:

这些东西配置好之后,我们便可以在程序中通过代码判断用户是否有该权限去执行某项操作了。那从代码开始一步一步讲解吧。
代码:

AUTHORITY-CHECK OBJECT 'ZEMPOBJ04'
                                 ID 'ACTVT' FIELD test.
      IF SY-SUBRC = 0.
          WRITE:/ 'PASS'.
      ELSE.
         WRITE:/ 'Sorry.'.
     ENDIF.

上面这段代码便完成了一次权限检查,ZEMPOBJ04是权限对象,ACTVT是权限字段,test是我们要检测的字段,有可能是公司代码或者查看的权限等,然后通过sy-subrc字段取判断,如果为0则有这个权限。

权限字段:

可以通过SU20来创建权限字段,如下:

字段名和数据元素为必输,名字随便可以输入,数据元素可以自建,也可以参照创建。table name字段就是创建完成之后的check table,我们在创建权限对象添加字段的时候,如果这个权限字段有check table那么就会有一些值可供选择,如ACTVT:

如果没有输入table的话这个时候便没有,只能在profile里自己维护字段值了。

权限对象:

SU21进入权限对象的界面,可以先建立一个object class,它相当于一个目录包含了若干个权限对象,这样方便维护。我们创建好权限对象之后便可以添加刚才自己创建的字段了,或者系统标准的权限字段。然后选择这个权限对象有哪些值可以使用。

参数文件:

pfcg进入角色维护后可以先创建一个新的角色或者维护已经存在的角色,进入权限tab,选择更改授权数据。如图:

然后便可以添加若干权限对象,系统标准的或者自己创建的。在权限对象里就可以维护这个profile到底有哪些权限可以使用。

如图就是一个例子,注意做完操作后要点击生成,就是那个小圆圈的按钮。

角色:

最后我们只要把这个角色添加给用户,用户变拥有这个权限了。最后点击下”用户比较”按钮。

示例

start-of-selection.
perform frm_authority_check.
form frm_authority_check.

data:l_message(30)type c.
authority-check object 'M_MSEG_WWE'    "M_MSEG_WWE是权限对象
id 'ACTVT' field '*'
id 'WERKS' field p_werks."这里p_werks是单输入框
if sy-subrc < > 0.
concatenate '你没有操作' p_werks '的权限' into l_message.
message l_message type 'S' display like 'E'.
stop."终止后续代码执行
endif.
endform.
*仅限于单输入框


————————————————
版权声明:本文为CSDN博主「donkey2004112103」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/donkey2004112103/article/details/4156065

你可能感兴趣的:(abap,数据库)