实例:ABAP权限对象设计与权限检查的实现(详细)
来源:互联网 发布:淘宝上怎么设置折扣 编辑:程序博客网 时间:2024/06/05 09:57
创建权限对象,使分配这个权限的用户只能操作部门编号(edept)为 ‘10’ 的数据。
1. SU20,创建权限字段
2. SU21,创建权限对象
3. SU02,创建参数文件,输入相关信息激活
对象输入:ZEMPOBJ00
权限输入:ZDEPT,并双击它新建一个权限
具体的权限值(点击“维护值”)
激活!
该授权对象包含两个字段。可以在第一个字段 EMPDEPT 中输入一 般值 ‘10’,第二个字段 ACTVT 中,在创建(01)、更改(02)和显示(03)之间进行选择,也就是
说,分配这个参数文件的用户,只能对 ‘10’ 部门的数据进行01、02、03操作。
4.创建role将权限分配给用户
到此为止,权限的设计全部完成,下面我们通过ABAP来验证权限的有效性。
权限列表中有两个权限,一个是系统通过创建role生成的,一个是我们手动创建的。
5. 创建ABAP程序,来验证权限对象的有效性
2
3 TABLES ZEMP_TEST.
4
5 DATA: IT_ZEMP TYPE STANDARD TABLE OF ZEMP_TEST,
6
7
8 PARAMETERS P_DEPT TYPE ZEMP_TEST-EDEPT.
9
10 START-OF-SELECTION.
11
12 AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'
13
14
15 "用户使用程序,想要查询部门的员工信息,
16 "通过authority-check object 来进行权限检查,ID是字段名,field是要检查的
17 "'actvt': 01 创建,02更改,03查询,06删除
18 IF SY-SUBRC <> 0.
19
20 ELSE.
21
22
23
24
25
26
27
28
29
30
31
32
33
34 ENDIF.
输入20
执行结果:
输入10
执行结果
如果存在删除操作,在删除前,检查用户的权限,可以将actvt的值改为06进行测试。
actvt的所有值储存在表TACT中。
----------------------------------------
|
----------------------------------------
|
|
|
|
|
|
|
|