SAP的权限知识培训笔记
√ 系统安全6方面,权限为其一
系统安全包括6方面,如下。权限安全属于应用范围,另外5方面是基础架构安全
authentication 认证。登录之前。
authorizations 权限。应用软件内部。定义能做什么(与法律相反)。
confidentiality 保密。传递过程中加密。
integrity 完整性。不会被修改。数字签名。
non-repudiation 不可抵赖。
availability 可用性
√ 形象的比喻
权限对象相当于模板,权限(授权)相当于钥匙,装箱,给人。
user master record
profile or role(手提箱,旧版最多150权限)
auth obj(分类auth obj class)
auths
fields & value
R3之前如此做,系统管理员工作量太大。在R3中改进,有了参数文件生成器,对应Tcode为pfcg。它基于role生成profile。
传统的role只有三种内容:transaction(最主要), report, url。有了pfcg,为role加入tcode后,就自动查找所需权限对象,生成profile——依据是两张表:usobx(哪些对象)和usobt(缺省值)。su25把它们复制出usobx_c和usobt_c,可以修改,如此则pfcg不再查原表,代之以查此新表。(有小问题,如新加权限对象……)su24看事务对应的权限对象。
每个权象对象最多可有10个字段。如:
`1class activity(显,改,创)
工厂 活动
** 以上是程序内的控制,下面讲内核控制
输入tcode后,系统依次做什么呢?以va01为例
首先查tstc表,看输入的tcode是否存在
再查sm01,看系统管理员basis是否锁定此事务(如月底临时锁定)
再查s_tcode权限对象(如果无此权限对象,则不能执行任何transaction。一般是有的),它会列出有权执行的所有事务代码。这里控制的是进入事务,进入之后不归它管了。——这是第1级,事务级,控制是否可进入某事务。
第2级是权限对象的。
以上这些是kernal可以实现的,不用写程序。
如果要控制到事务内部,就要ABAP用authority-check语句,看一个系统变量是否为0。等于0,就是权限检查成功,可以继续处理。不等0,stop。
** 操作
q 操作:新建一个用户,不做任何权限处理。
结果:可以看到菜单,不能执行。
q 操作:建一个role,加入tcode,维护组织结构数据,维护权限对象
|这些操作由系统管理员进行,但操作内容是由业务组人员提出。系统管理员自己是不懂的。
|最严格情况下,权限管理员3个,分别负责user master data, role admin和把role分给用户。
先输入组织结构级别数据
再维护权限对象:
此时可打开技术字段(utility 打开技术属性,如看到s_tcode)
绿灯表示有缺省定义。utility 打开技术属性,s_tcode
红灯表示组织结构没有维护。
黄灯表示一些权限对象无缺省值(点黄灯则变成*,在顶级的黄灯也可以点)
生成profile
赋给用户
更新(user coparison)用户主数据。解释:相当于刷新内存,这样实时生效,否则用户就要退出再登录才生效。
q 写几行程序
parameters: pa_car type scarr-carrid.
data: wa type scarr.
select single * from scarr into wa where carrid = pa_car.
write: wa-carrid, wa-carrname.
at selection-screen.
authority check object 's_card"
id carrid filed pa_care
id activi filed 03
if sy-subrc <> 0
msgg e045(bc400)with pa_car
endif.
msg class
se11 scarr
选航空公司,列出。
指定一个事务代码为程序。
su93 加事务码
为role加权限。权限对象变红灯。standard
手工加s_carr_id。manually。
无效。因为没有检查。表上没有权限。进门出示,陪你去。
加锁再加
加入下述行后就不能看了,系统出现error并停止。
程序员s_developer可以debug,把返回值(禁止)更改(为允许)。所以不能把生产系统此角色分给任何人。这也是开发工作必须在其他系统中做的原因之一。
ais审计信息系统,简化审计工作。这方面培训指出
se16敏感权限。
问题:标准事务,SAP已设定了执行时检查哪些权限对象。如果要再增加,就要“su21创建权限对象,维护权限对象,修改源程序”。工作量和难度都很小,但一涉及源程序,工作量就比较大。
suim 用户信息系统。with sucess logins , with critical authori(可以自己定义哪些权限对象设置在一起危险,然后列出这样的用户)
权限测试:少了通过测试。
导数据专用工具。lsmw。sxda(专用),sm35是lsmw下面的功能,catt也是利用批输入的接口。
** 利用HR改进权限管理
不是role→user,
而是role→HR position→HR person→SAP user。
如此,在张三由A岗到B岗时,只要HR维护后,其SAP权限自动改变,无须basis处理。公司目前未用position。
** 再说role
basic role & compose role
先建一个basic role,然后n个basic role关联到compose role。可自动更新。
derive role & reference role
用于维护几套相似(只有组织结构字段不同)的权限。reference role无组织结构数据,derive role从它取权限,再加上组织数据。但derive role 和 reference role应用不会太多,因为在其他权限字段也会有差异,并且现实中如此相似(业务规模)的情况很少。
系统安全包括6方面,如下。权限安全属于应用范围,另外5方面是基础架构安全
authentication 认证。登录之前。
authorizations 权限。应用软件内部。定义能做什么(与法律相反)。
confidentiality 保密。传递过程中加密。
integrity 完整性。不会被修改。数字签名。
non-repudiation 不可抵赖。
availability 可用性
√ 形象的比喻
权限对象相当于模板,权限(授权)相当于钥匙,装箱,给人。
user master record
profile or role(手提箱,旧版最多150权限)
auth obj(分类auth obj class)
auths
fields & value
R3之前如此做,系统管理员工作量太大。在R3中改进,有了参数文件生成器,对应Tcode为pfcg。它基于role生成profile。
传统的role只有三种内容:transaction(最主要), report, url。有了pfcg,为role加入tcode后,就自动查找所需权限对象,生成profile——依据是两张表:usobx(哪些对象)和usobt(缺省值)。su25把它们复制出usobx_c和usobt_c,可以修改,如此则pfcg不再查原表,代之以查此新表。(有小问题,如新加权限对象……)su24看事务对应的权限对象。
每个权象对象最多可有10个字段。如:
`1class activity(显,改,创)
工厂 活动
** 以上是程序内的控制,下面讲内核控制
输入tcode后,系统依次做什么呢?以va01为例
首先查tstc表,看输入的tcode是否存在
再查sm01,看系统管理员basis是否锁定此事务(如月底临时锁定)
再查s_tcode权限对象(如果无此权限对象,则不能执行任何transaction。一般是有的),它会列出有权执行的所有事务代码。这里控制的是进入事务,进入之后不归它管了。——这是第1级,事务级,控制是否可进入某事务。
第2级是权限对象的。
以上这些是kernal可以实现的,不用写程序。
如果要控制到事务内部,就要ABAP用authority-check语句,看一个系统变量是否为0。等于0,就是权限检查成功,可以继续处理。不等0,stop。
** 操作
q 操作:新建一个用户,不做任何权限处理。
结果:可以看到菜单,不能执行。
q 操作:建一个role,加入tcode,维护组织结构数据,维护权限对象
|这些操作由系统管理员进行,但操作内容是由业务组人员提出。系统管理员自己是不懂的。
|最严格情况下,权限管理员3个,分别负责user master data, role admin和把role分给用户。
先输入组织结构级别数据
再维护权限对象:
此时可打开技术字段(utility 打开技术属性,如看到s_tcode)
绿灯表示有缺省定义。utility 打开技术属性,s_tcode
红灯表示组织结构没有维护。
黄灯表示一些权限对象无缺省值(点黄灯则变成*,在顶级的黄灯也可以点)
生成profile
赋给用户
更新(user coparison)用户主数据。解释:相当于刷新内存,这样实时生效,否则用户就要退出再登录才生效。
q 写几行程序
parameters: pa_car type scarr-carrid.
data: wa type scarr.
select single * from scarr into wa where carrid = pa_car.
write: wa-carrid, wa-carrname.
at selection-screen.
authority check object 's_card"
id carrid filed pa_care
id activi filed 03
if sy-subrc <> 0
msgg e045(bc400)with pa_car
endif.
msg class
se11 scarr
选航空公司,列出。
指定一个事务代码为程序。
su93 加事务码
为role加权限。权限对象变红灯。standard
手工加s_carr_id。manually。
无效。因为没有检查。表上没有权限。进门出示,陪你去。
加锁再加
加入下述行后就不能看了,系统出现error并停止。
程序员s_developer可以debug,把返回值(禁止)更改(为允许)。所以不能把生产系统此角色分给任何人。这也是开发工作必须在其他系统中做的原因之一。
ais审计信息系统,简化审计工作。这方面培训指出
se16敏感权限。
问题:标准事务,SAP已设定了执行时检查哪些权限对象。如果要再增加,就要“su21创建权限对象,维护权限对象,修改源程序”。工作量和难度都很小,但一涉及源程序,工作量就比较大。
suim 用户信息系统。with sucess logins , with critical authori(可以自己定义哪些权限对象设置在一起危险,然后列出这样的用户)
权限测试:少了通过测试。
导数据专用工具。lsmw。sxda(专用),sm35是lsmw下面的功能,catt也是利用批输入的接口。
** 利用HR改进权限管理
不是role→user,
而是role→HR position→HR person→SAP user。
如此,在张三由A岗到B岗时,只要HR维护后,其SAP权限自动改变,无须basis处理。公司目前未用position。
** 再说role
basic role & compose role
先建一个basic role,然后n个basic role关联到compose role。可自动更新。
derive role & reference role
用于维护几套相似(只有组织结构字段不同)的权限。reference role无组织结构数据,derive role从它取权限,再加上组织数据。但derive role 和 reference role应用不会太多,因为在其他权限字段也会有差异,并且现实中如此相似(业务规模)的情况很少。