关于SAP权限对象的一些总结

权限对象的理解

简单来说就是,用户A能不能做某件事。
这件事可能是程序的使用,报表的查询等等。
SAP通过权限对象、权限字段、操作、组织级别等信息来控制。
例如,用户A想通过事务码VA01来创建1001公司(销售组织)的Z001类型的订单。
首先,系统会检查A有没有T-code = VA01 的权限;
其次,在输入1001和Z001后点击执行,这里会检查权限字段Object = V_VBAK_VKO,ID = VKORG,是否允许值为1001;以及V_VBAK_AAT的AUART是否允许Z001。

如果某个程序里设置了诸如“修改”、“查看”等按钮,可以在权限Activity里对应为具体操作,从而实现:用户A只能查看,而不能修改。
权限里最重要的就是权限对象。

相关的底表

对顾问而言,通常用Users表查看user下的role,然后去1251表根据Role = XXX and Field name = TCD,检索出事务码,最终得到用户——事务码的关系。
AGR_1250,Authorization data for the activity group
1250表
AGR_1251,Authorization data for the activity group
1251表
AGR_USERS,Assignment of roles to users
user表

如何找到权限对象

有时需要精确的定位到权限对象、权限字段来检查,这就需要找到对应的权限对象。
如果不清楚前台某个字段对应的权限字段,
1.可以SU24按事务码去查所有的对象,然后自己进行判断,哪个字段是想要的。
2.可以在SU21按表来搜索,比如销售订单检查的字段,可以输入VBAK来查找,得到V_VBAK_VKO这个字段,会检查销售范围。
在不清楚具体控制点时,最好是顾问和开发共同确认。

按事务码

T-code = SU24,
不止可以用事务码来查找,但大多数情况下是按照事务码。
SU24界面

按类/对象

T-code = SU21,进来后长这样
SU21界面
下图是举例说明查找销售订单上的检查字段,用VBAK来查找,发现会检查这个Object。
SU21查找样例
另外,如果需要自开发权限对象,可以用“Create”按钮创建,把权限字段包在对象类文件下面。

权限对象的使用-顾问

对顾问而言,需要清楚知道自己的程序要如何检查权限,并写进FS里。
需要注意的是,有些自开发程序,很多顾问完全不设置权限检查,仅仅在PFCG里给上事务码的权限就结束了。
这种做法很不合理,也会导致许多问题。正确的做法是顾问要根据实际业务来精确的控制好权限,确保程序与数据的隐私性、安全性。这就需要合理的使用权限字段。

权限对象的使用-开发

作为开发,按照给出的FS进行编写即可。
一般的检查代码:
AUTHORITY-CHECK OBJECT 'V_VBAK_VKO' ID 'VKORG' FIELD GT_001
如果程序里有穿透功能,不要忘记和顾问一起关注穿透部分的权限。

PFCG与权限对象

实施项目时,90%的情况是在PFCG的菜单里加上事务码,然后去生成参数文件即可。
实际上,只要在参数文件有的事务码(下图红色圈出),都可以使用,而如何把事务维护到文件里,目前我知道的有三种。
1.正常通过PFCG的菜单去添加,如下图SE38、ZSD301;
2.参数文件里手动添加,如下图ZSD311;
3.权限对象里通过S_TCODE挂上事务码,如下图VA01-VA01(这里是我维护的范围form VA01 to VA01,可以单值也可以维护范围,自由选择),是挂在ZSD301的权限对象下的。
参数文件
因此,在菜单界面只会看到SE38和ZSD301,但拥有该角色的用户是可以使用VA01与ZSD311的。
菜单界面
小结
强烈建议用第一种方法,也就是从菜单里添加。
第二种手动添加相当于在走后门,尽可能不要使用这个方法,因为在菜单里看不到。
第三种在S_TCODE里挂事务码也尽量不要用,有些事务码不被允许这样做,即便这样做了也不好用,特别是带有组织级别的事务码,在这里无法分配到,也不会有任何提示。导致用户可能难以发现问题。
如果你非常清楚某个事务的权限控制逻辑,可以用第三种方式,但最佳的还是方法一。

S_TCODE权限对象

最后介绍一下S_TCODE这个权限字段。
标准功能的事务码都会包含这个对象,但Proposal是No。
可以手动改成Yes,双击该行就可以对他进行赋值了,Field Name = TCD,按需挂上自己想要的事务码就可以了。
挂上后在PFCG就会显示为上面讲到的“VA01-VA01”
SU24维护S_TCODE
要注意的是,
1.这个地方不会检查组织级别,如果实际上是有限制组织级别的(如MMBE要求输入工厂),在这里添加上也没有作用,分配给角色、用户也用不了。
2.如果你先在PFCG做好了角色,又去S_TCODE改值,那么PFCG不会同步,也不会异常,但现有的参数文件里不存在你后改的值,需要用专家模式重新生成一次。
用专家模式重新生成PFCG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值