SAP权限对象设计与权限检查

本文介绍如何在SAP系统中创建权限字段、权限对象及参数文件,并通过角色分配权限给用户,确保用户仅能访问特定部门的数据。同时,提供ABAP程序示例验证权限设置的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一张表,随意插入5条数据

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

1、SU20 创建权限字段

2、SU21 创建权限对象

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

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

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

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

也可以设置为“*”这样任何操作都可以通过。

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

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

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

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

1、PFCG 创建角色

ZEMPR00,输入描述文本,点击创建,点击“权限”选项卡,参数文件名称:点击(系统建议的),点‘更改授权数据’->‘手动,

输入授权对象:ZEMPOBJ00,回车,保存

然后指定权限的值

2、分配角色

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

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

REPORT  ZHAIM_TEST01 NO STANDARD PAGE HEADING.

TABLES ZEMP_TEST.

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

PARAMETERS P_DEPT TYPE ZEMP_TEST-EDEPT.

START-OF-SELECTION.

AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'
        ID 'ZEMPDEPT' FIELD P_DEPT
        ID 'ACTVT'  FIELD '03'.
"用户使用程序,想要查询部门的员工信息,
"通过authority-check object 来进行权限检查,ID是字段名,field是要检查的
"'actvt': 01 创建,02更改,03查询,06删除
IF SY-SUBRC <> 0.
  MESSAGE S001(00) WITH '您没有权限查看此数据' DISPLAY LIKE 'E'.
ELSE.

  SELECT *
    FROM ZEMP_TEST
    INTO TABLE IT_ZEMP
   WHERE EDEPT = P_DEPT.


  LOOP AT IT_ZEMP INTO IW_ZEMP.

    WRITE / IW_ZEMP.

  ENDLOOP.

ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bu知疲倦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值