权限入门知识

来源:互联网 发布:手机淘宝怎么设置促销 编辑:程序博客网 时间:2024/06/06 03:31

权限检查

AUTHORITY-CHECK OBJECT auth_obj [FOR USER user]

ID id1 {FIELD val1}|DUMMY

[ID id2 {FIELD val2}|DUMMY]

...

[ID id10 {FIELD val10}|DUMMY].

 

用OPEN SQL语句进行数据库操作时,系统本身并不进行任何权限检查,所以我们在编写相关的数据库操作程序时,必须考虑用户是否具有权限,防止未经授权的用户操作关键数据。
授权对象(authorization objects):用户权限的实现是通过授权对象实现的,一个授权对象代表数据库操作的行为,如查询和修改关键字段,这些字段用来作为权限检查和分配的模板。多个对象被组合成一个类。

上述命令中auth_obj为授权对象名,[FOR USER user]为权限检查用户,若省略则表示权限的检查对象为当前LOGIN用户。<id1>~<id10>是授权对象中定义的检查项目,权限检查时,必须列出授权对象中的所有检查项目,但是可以通过DUMMY来跳过检查。

 

下面讲述一下,有关于权限设定的一些主要步骤。

①创建权限项目

T-CD:SU20

②创建授权对象

T-CD:SU21

①中定义的权限项目在这里被引用,其中项目名ACTVT为操作行为,如查询,更新等。

根据上述的设定,可以确定哪些航空公司可以被用户进行什么样的操作(查询,修改,创建)。

      

③创建profile

T-CD:SU01 -> F9

④给用户设定权限

T-CD:SU01 -> Profile tag

将创建的profile分配给用户

 

授权检查:
(1)事务运行权限
创建事务代码时,可以在authorization object 字段输入授权对象,并设定value字段。如果用户希望运行相应的事务,必须具有相关的权限,否则输出提示信息。

(2) 程序运行的权限
在ABAP程序的属性中,可以输入Authorization Groups属性,授权组与S_DEVELOP和S_PROGRAM权限对象中的P_GROUP字段相关联。通过检查该字段和用户主记录中的相应值,可以确定用户是否可以运行该程序。

(3)程序内部的权限检查
如果系统不能自动控制用户运行该程序的权限,则可以在程序内部进行权限检查:
格式:AUTHORITY-CHECK OBJECT 'object'

ID 'name1' FIELD f1

ID 'name2' FIELD f2

注:name用于指定字段名,字段用于指明授权对象相应的字段值,该值将于用户主记录中的值进行比较。且必须列出授权对象中的所有值,但是可以通过dummy跳过该值的检查(ID 'name' dummy).语句执行后,对SY-SUBRC进行检查。4为该用户不具有该权限,8授权对象字段列表不正确,12授权对象不存在等。


原创粉丝点击