【SAP Basis】SAP用户权限管理

SAP用户权限管理

  • 1、术语说明
  • 2、用户授权(添加菜单事务码-功能)
    • (1)主要TCODE:
    • (2)创建用户 SU01
    • (3)创建角色 PFCG
    • (4)权限验证
  • 3、用户授权(添加系统权限对象-功能)
    • (1)权限对象 SU21
    • (2)权限角色 PFCG
    • (3)权限验证
  • 4、用户授权(添加系统权限对象-功能&数据)
  • 5、用户授权(添加自定义权限对象-数据)
    • (1)创建自定义权限对象
    • (2)使用自定义权限对象
    • (3)代码中使用自定义权限对象
    • (4)将权限对象分配到事务码

1、术语说明

账号(User Account):即我们平常说的用户账号,也称为“USER ID”,通过Password登录SAP GUI。
角色(Role):组织设定同类用户的权限集合,方便授权管理。每个角色可以分配给多个用户,每个用户也可以同时拥有多个角色。角色的分类:分为Single Role和Composite Role两种,后者其实是前者的集合。即单一角色是一个独立的权限对象,而复合角色可以由多个单一角色组合而成,能够同时继承不同单一角色的权限。
参数文件(Profile)真正记录权限设定的文件,每个角色都会生成一个对应的参数文件,SAP通过参数文件检查用户访问系统的权限。 SAP有很多预置的参数文件,如:SAP_ALL(所有SAP系统权限),S_A.SYSTEM(系统管理员即超级用户)。一般普通用户不会授予这两种权限,但有个特殊的应用场景,当用户类型为SYSTEM或Communications Data类型时,可以结合SAP_ALL授权,实现系统间的通讯。
用户组(Group):对用户账号进行分组,可以实现对用户管理的分散维护。管理员是可以维护系统中所有用户的权限的,而被分配权限检查用户组的账号,则拥有管理该用户组中其他成员的权限。通过用户组分配可以减少管理员对用户账号维护的工作量,适用于一些较大企业账号分地区管理的模式。通过事务代码SU10实现对用户组的批量维护。
功能权限 Activity:用户具备的哪些TCODE的操作权限,即业务模块的增删改查权限。
数据权限:用户具备的哪些数据细分权限,如限定业务的组织、公司、区域、类型等范围权限。
权限对象(Authorization Object):给角色进行授权的单元。
系统权限架构:即对系统权限设定的一个整体规划与应用方案,以符合企业管理应用需要。主要通过组合使用以下两类角色来实现:
① 功能权限:不同岗位职责用户所具有的业务模块功能权限。
② 数据权限:相同岗位职责用户所具有的不同数据访问权限。
菜单权限:用于定义并分配对应角色所能操作的事务代码,简单讲,角色就是若干事务代码的集合,会直接显示在用户的登录菜单栏。
权限:SAP会根据对应角色的菜单权限,列出具体的权限对象,或者是单独添加的权限对象,并对权限字段具体参数值进行设定,控制具体的操作权限和数据权限。

2、用户授权(添加菜单事务码-功能)

(1)主要TCODE:

创建用户:SU01
创建角色:PFCG
用户权限检查:SU53

(2)创建用户 SU01

参考上篇

(3)创建角色 PFCG

SAP针对不同的功能模块提供了很多内置的角色,如SD模块的权限角色名都是以 SAP_SD 为前缀,HR模块以 SAP_HR为前缀。

示例:创建角色 ZROLE_S_SU53,授予 SU53 权限。
【SAP Basis】SAP用户权限管理_第1张图片
① 输入角色名称:ZROLE_S_SU53
② 单击创建 Single Role
【SAP Basis】SAP用户权限管理_第2张图片
① 输入角色说明
② 切换 Menu 页签,提示保存
③ 选择 Yes,保存
【SAP Basis】SAP用户权限管理_第3张图片
① 初始菜单权限为空
② 可通过添加事务码来授权
③ 授权前,我们先来检查下用户权限
【SAP Basis】SAP用户权限管理_第4张图片
【SAP Basis】SAP用户权限管理_第5张图片
【SAP Basis】SAP用户权限管理_第6张图片
返回 Menu 页签,添加事务码 SU53
【SAP Basis】SAP用户权限管理_第7张图片
① 点击添加事务码
② 弹出对话框,添加事务码 SU53
③ 确认,授权事务码
【SAP Basis】SAP用户权限管理_第8张图片
菜单权限已生成,保存后我们再来检查下用户权限
【SAP Basis】SAP用户权限管理_第9张图片
① 显示具体的权限对象,授权情况
② 保存(保存角色对应的权限参数文件)
③ 光保存还不够,还需要生成权限
【SAP Basis】SAP用户权限管理_第10张图片
① 点击保存
② 保存角色对应的权限参数文件,返回【SAP Basis】SAP用户权限管理_第11张图片
【SAP Basis】SAP用户权限管理_第12张图片
① 切换 User 页签
② 添加 User ID
③ 角色新授权用户 或者 角色发生变更,都需要执行用户比较操作,以同步更新用户权限
【SAP Basis】SAP用户权限管理_第13张图片
【SAP Basis】SAP用户权限管理_第14张图片
至此,用户 SU53 授权完成,可以登录用户验证查看。

(4)权限验证

登录新账号 ZUSER01,用户菜单栏发生改变,仅可见已授权菜单项目。【SAP Basis】SAP用户权限管理_第15张图片
先尝试执行事务码 VA01,再执行事务码 SU53,显示界面如下:
【SAP Basis】SAP用户权限管理_第16张图片
① 显示权限检查失败的记录
② 显示权限检查成功的记录
③ 切换显示布局 Switch Layout
【SAP Basis】SAP用户权限管理_第17张图片
① 权限类:权限对象的分组类别,SU21。
② 权限对象:组合一定权限字段的权限集合,SU21。
③ 权限字段:权限对象下面最小的授权单元,通过对其的赋值,实现功能与数据权限控制,SU20。

3、用户授权(添加系统权限对象-功能)

(1)权限对象 SU21

在权限类型 AAAB 中,可以查找到系统权限对象 S_TCODE【SAP Basis】SAP用户权限管理_第18张图片
【SAP Basis】SAP用户权限管理_第19张图片
双击权限对象 S_TCODE,可以查看到它下面拥有的权限字段 TCD
【SAP Basis】SAP用户权限管理_第20张图片
总结:授权是授给用户的,一个用户拥有很多角色,而角色是由权限对象来控制的,而权限对象是由权限字段组成的,也就是通过这些小的权限字段的赋值,从而达到对用户行为的权限控制。

(2)权限角色 PFCG

示例:创建角色 ZROLE_S_VA01,授予 VA01 权限。
【SAP Basis】SAP用户权限管理_第21张图片
① 创建新的角色 ZROLE_S_VA01,输入角色说明
② 直接切换 权限 页签,先保存角色名称
③ 直接进入修改权限数据
【SAP Basis】SAP用户权限管理_第22张图片
① 弹出系统预置的权限模板,一般项目中可以复制系统的,然后加以修改
② 本案例我们通过自定义实现,此处我们选择不使用模板
【SAP Basis】SAP用户权限管理_第23张图片
① 选择 手工添加
② 输入权限对象 S_TCODE
③ 确认
【SAP Basis】SAP用户权限管理_第24张图片
① 展开权限项目,点击 修改
② 弹出对话框,设置权限字段 TCD的值为 VA01
③ 确认保存
【SAP Basis】SAP用户权限管理_第25张图片
① 生成参数文件
② 确认,退出
【SAP Basis】SAP用户权限管理_第26张图片
① 给用户授权
② 用户比较,使得新的权限设置生效
③ 保存,至此,用户 VA01 授权完成,可以登录用户验证查看。

(3)权限验证

登录账号 ZUSER01,用户菜单栏未发生改变,仍仅可见 SU53 菜单项。【SAP Basis】SAP用户权限管理_第27张图片
先尝试执行事务码 VA01,授权成功,能够打开销售订单创建初始界面,并且销售组织默认参数也已自动填充。
【SAP Basis】SAP用户权限管理_第28张图片
再执行事务码 SU53,显示用户已具有两项权限,显示界面如下:
【SAP Basis】SAP用户权限管理_第29张图片
【SAP Basis】SAP用户权限管理_第30张图片

4、用户授权(添加系统权限对象-功能&数据)

使用用户 ZUSER01 继续进行销售订单的操作,我们会发现依然缺少相应的数据项维护权限
【SAP Basis】SAP用户权限管理_第31张图片
① 订单类型,必填项,任选一个,譬如 AA-促销订单
② 确认提交,报错:凭证类型 AA 没有维护权
执行 SU53,检查本次操作缺少的权限项
【SAP Basis】SAP用户权限管理_第32张图片
如图所示,缺少权限类型 SD 的权限对象 V_VBAK_AAT 的权限,权限字段分别为:作业(Activity)、销售凭证类型(Sales Document Type)
回到管理员账号,给该用户创建新的权限角色 ZROLE_S_DYNAMIC,添加系统标准权限对象
【SAP Basis】SAP用户权限管理_第33张图片
【SAP Basis】SAP用户权限管理_第34张图片
① 定位到 SD 权限类
② 添加 V_VBAK_AAT 权限对象
③ 插入选择项
【SAP Basis】SAP用户权限管理_第35张图片
① 设置作业(Activity)-操作权限
② 勾选新增权限 01-Create or generate
③ 保存
【SAP Basis】SAP用户权限管理_第36张图片
① 设置销售凭证类型(Sales Document Type)-数据权限
② 此处仅设置 01、AA 两种类型
③ 保存
【SAP Basis】SAP用户权限管理_第37张图片
① 设置权限后,变成绿色
② 生成权限参数文件
③ 返回,切换到用户,点击用户比较,让用户权限生效【SAP Basis】SAP用户权限管理_第38张图片
回到用户订单创建初始界面,此时选择订单类型:AA,已经能够进入订单创建界面;选择除01、AA类型之外的,依然没有维护权限。如下图
【SAP Basis】SAP用户权限管理_第39张图片

5、用户授权(添加自定义权限对象-数据)

(1)创建自定义权限对象

执行事务码 SU20,创建 权限字段 ZVKORG,参照销售组织的数据元素 VKORG
【SAP Basis】SAP用户权限管理_第40张图片
说明:优先参考数据元素,其次参考表,适用于自定义的表字段或者取值范围。

执行事务码 SU21,首先创建 权限类 ZAUH
【SAP Basis】SAP用户权限管理_第41张图片
【SAP Basis】SAP用户权限管理_第42张图片
其次创建 权限对象 Z_VKORG ,添加 系统权限字段 VKORG 和 自定义的权限字段 ZVKORG ,都可以用于控制销售组织字段的数据权限。
【SAP Basis】SAP用户权限管理_第43张图片
【SAP Basis】SAP用户权限管理_第44张图片
最后,将自定义的权限对象,同步给 SAP_ALL ,即重新生成 SAP_ALL 权限参数文件,使其具备这些权限字段的所有权限。
【SAP Basis】SAP用户权限管理_第45张图片

(2)使用自定义权限对象

创建角色 ZROLE_S_DATA,添加权限对象 Z_VKORG,设置 权限字段 VKORG 或 ZVKORG 数据权限,授权给用户 ZUSER01
【SAP Basis】SAP用户权限管理_第46张图片
【SAP Basis】SAP用户权限管理_第47张图片
【SAP Basis】SAP用户权限管理_第48张图片

(3)代码中使用自定义权限对象

在SE38中开发REPORT程序 ZLLDEMO01,定义如下代码:

REPORT  ZLLDEMO01.
PARAMETERS: P_VKORG TYPE VBAK-VKORG.
AUTHORITY-CHECK OBJECT 'Z_VKORG'
  ID 'VKORG' FIELD P_VKORG.
IF SY-SUBRC <> 0.
  MESSAGE 'No authorization' TYPE 'E'.
ENDIF.
WRITE: / P_VKORG.

执行验证(ZUSER01执行SE38,显示并执行代码,需要一系列授权,请参照上述方法,查看SU53权限缺失项,进行授权)
输入销售组织:0001
【SAP Basis】SAP用户权限管理_第49张图片
【SAP Basis】SAP用户权限管理_第50张图片
输入 0001、AESO 之外的销售组织,报:没有权限。
【SAP Basis】SAP用户权限管理_第51张图片

(4)将权限对象分配到事务码

执行事务码 SE93,创建 自开发应用 TCODE:ZLLDEMO01
【SAP Basis】SAP用户权限管理_第52张图片
执行事务码 SU22,维护事务码 ZLLDEMO01 的权限对象 Z_VKORG
【SAP Basis】SAP用户权限管理_第53张图片
【SAP Basis】SAP用户权限管理_第54张图片
① 选中对应事务码
② 点击修改,右边菜单栏发生变化,同时自动加入系统权限对象 S_TCODE
③ 点击增加权限对象按钮
④ 弹出对话框,填入权限对象 Z_VKORG
⑤ 确认,加入权限对象 Z_VKORG。

你可能感兴趣的:(SAP,Basis,sap)