SAP 权限对象创建和使用最详细的教程

本文详细介绍了如何在SAP系统中创建权限对象,包括使用SU20创建字段,SU21创建权限对象,SU02创建参数文件并激活,以及如何通过PFCG创建角色来分配权限给用户。此外,还展示了使用ABAP程序验证权限有效性的过程。

在测试机里面创建一张新表ZEMP_DEP,并插入一点记录。

插入几条记录: 

创建权限对象,使分配这个权限的用户只能操作部门编号(DEPID)为 ‘10’ 的数据。

1. SU20:创建权限字段

 

 

 

2. SU21:创建权限对象

首先创建对象类,输入对象类名称(ZEM1)、文本(员工部门),点击“保存”

 

 

找到之前创建的对象类,可以鼠标右键创建权限对象 

 

这里的权限字段就是上面我们SU20刚刚创建的,下面的actvt我们稍后统一讲解。 

3. SU02:创建参数文件,输入相关信息并激活

 

对象输入:ZEMP_DEP

权限输入:ZDEPT,并双击它新建一个权限

这里的对象就是上面SU21新建的授权对象。

 

双击‘ZDEPT’,输入权限的描述,进入如下界面。

 

 具体的权限值(点击“维护值”)

 

激活!

该授权对象包含两个字段。可以在 第一个字段 ZDEPID 中输入一 般值 ‘10’,第二个字段 ACTVT 中,在创建(01)、更改(02)和显示(03)之间进行选择,也就是说,分配这个参数文件的用户,只能对 ‘10’ 部门的数据进行01、02、03操作。也可以设置为“*”这样任何操作都可以通过。

到此,su01,进入‘参数文件’选项卡,添加参数文件:ZEMP_DEP,保存后权限即可生效,对用户分配权限还可以通过创建role的方式,以下。

PS:有两种方式,创建role分配给用户,或者直接将参数文件分配给用户,role是从业务层面的维度来管理权限,但实质上的功能还是由profile 来完成的。 原来sap的权限是没有role这个概念的。全部是由profile/object 的方式来实现的,但这样的方式要求对权限底层的具体细节非常了解才行,严重影响的工作效率,而且不利于只懂业务的人进行权限管理和设计。 所以sap后来引入了role这样一个概念,试图通过自顶向下的方式让用户来管理权限。通过tcode pfcg 可以维护role。

4.创建role将权限分配给用户

  1.PFCG 创建角色:ZHR_EMP_001,输入描述文本,点击创建,点击“权限”选项卡,参数文件名称:点击(系统建议的),点‘更改授权数据’->‘手动,输入授权对象:ZEMPOBJ00,回车,保存

 然后指定权限的值

 

 

 2.进入‘用户’选项卡,输入用户名为自己的用户名;记得‘用户比较'(用户比较,完成权限修改后与用户的权限保持一致)

到此为止,权限的设计全部完成,下面我们通过ABAP来验证权限的有效性。

 

权限列表中有两个权限,一个是系统通过创建role生成的,一个是我们手动创建的。

5. 创建ABAP程序,来验证权限对象的有效性

 

REPORT  ZHAIM_TEST01  NO  STANDARD  PAGE HEADING .

TABLES ZEMP_DEP .

DATA : IT_ZEMP  TYPE  STANDARD  TABLE  OF ZEMP_DEP ,
      IW_ZEMP  TYPE ZEMP_DEP .

PARAMETERS P_DEPT  TYPE ZEMP_DEP -DEPID .

START-OF-SELECTION .

   AUTHORITY-CHECK OBJECT  'ZEMP_DEP'
           ID  'ZDEPT'  FIELD P_DEPT
           ID  'ACTVT'   FIELD  '03' .

   IF SY -SUBRC <>  0 .
     MESSAGE S001 ( 00 )  WITH  '您没有权限查看此数据' DISPLAY  LIKE  'E' .
   ELSE .

     SELECT *
       FROM ZEMP_DEP
       INTO  TABLE IT_ZEMP
      WHERE DEPID  = P_DEPT .


     LOOP  AT IT_ZEMP  INTO IW_ZEMP .

       WRITE / IW_ZEMP .

     ENDLOOP .

   ENDIF .

输入20

执行结果:

 

输入10

 

执行正确结果。

如果存在删除操作,在删除前,检查用户的权限,可以将actv

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值