ABAP基础知识学习(三)
2010-08-19 16:29
211 查看
● 权限检查
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授权对象不存在等。
出自:http://www.cnblogs.com/rlwang/articles/1235184.html
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授权对象不存在等。
出自:http://www.cnblogs.com/rlwang/articles/1235184.html
相关文章推荐
- ABAP基础知识学习(一)
- ABAP基础知识学习(一)
- ABAP基础知识学习(二)
- ABAP基础知识学习
- ABAP基础知识学习(转)
- ABAP基础知识学习
- HTTP学习一:HTTP基础知识
- Raid的学习和基础知识
- AngularJS学习第一篇 AngularJS基础知识
- Go语言学习笔记一、基础知识
- OC学习笔记之Block基础知识
- linux 基础知识学习(六)
- 知识学习——jQuery基础学习
- JAVA基础知识再学习(2)对象的初始化过程 & 对象的调用过程
- QSS基础知识学习
- 小白入门angular-cli的第一次旅程(学习目标 1. 路由基础知识)
- Spring MVC学习记录(一)——网站基础知识(1)
- CSS3基础知识学习总结笔记
- 从面试题学习Javascript——基础知识
- OpenGL ES学习总结一:基础知识简介