转+自写 authority-check

1.转发前辈的

http://www.cnblogs.com/rlwang/archive/2008/07/04/1235184.html

 

about the authority-check

sap r/3用户权限
用户权限分配者: 系统管理员
特殊:用OPEN SQL语句进行数据库操作时,系统本身并不进行任何权限检查,所以我们在编写相关的数据库操作程序时,必须考虑用户是否具有权限,防止未经授权的用户操作关键数据。
授权对象(authorization objects):用户权限的实现是通过授权对象实现的,一个授权对象代表数据库操作的行为,如查询和修改关键字段,这些字段用来作为权限检查和分配的模板。多个对象被组合成一个类。
create authorization objects: the path is "ABAP workbench -> development -> Other tools -> authorization objects -> objects" . (also you can use the tcode su21).

一旦授权对象分配给用户主参数记录,该对象中的字段的值将被分配给用户。上图代表航空运营公司表示和行为代码。组合结果确定了哪些航空公司可以被用户所访问以及那种形为访问(查询,修改,创建)。这些具体的行为存储在系统表TACT和TACTZ中。
授权对象的分配: 通过多个对象组合成授权档案(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授权对象不存在等。
例如运行指定事务代码的权限:
AUTHORITY-CHECK OBJECT 's_code' ID 'tcd' FIELD p_tcode.
IF SY-SUBRC NE 0.
    MESSAGE s261(SF) WITH p_tcode.
ELSE.
CALL TRANACTION p_tcode.
ENDIF.

 

 

2.原创的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值