SAP权限入门知识
● 权限检查
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用户。~是授权对象中定义的检查项目,权限检查时,必须列出授权对象中的所有检查项目,但是可以通过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授权对象不存在等。
1、致力于SAP ERP系统应用的服务商;
2、已为国内200多家SAP系统客户的ERP信息化建设提供了咨询及实施服务;
3、拥有完善的产品策划、研发、实验、测试、质量控制过程;
4、公司自主研发的AMS系列软件产品是国内首个用于SAP权限风险识别的增强系统;
5、为用户管理、风险规避和信息审计提供辅助工具;
6、帮助用户规范企业的管理行为,建立合规的管控流程,有效提高企业IT资产投资回报率;
7、技术指标上拥有完全的、独立的领先优势,可以满足市场竞争、技术许可和标准制定等方面的需要;