LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴模切ERP]揭秘SAP系统里的权限可以控制到什么程度,结果超乎想象!

admin
2025年4月24日 0:40 本文热度 56

权限管理

在SAP系统中,权限管理是确保数据安全、保护业务流程和遵守合规要求的核心机制。它不仅涉及用户访问控制的基本设置,而且随着业务需求的演变,权限管理也在不断地进化以适应更复杂的业务场景。

用户管理

用户管理是SAP权限系统中最为基本的部分,所有对SAP系统的访问都始于一个用户。创建一个新用户涉及定义其属性,包括但不限于用户ID、姓名、语言、电子邮件地址等。用户配置可能还包括更高级的设置,如用户组成员身份、登录数据和用户特定的配置文件。

在创建用户时,需要遵循特定的命名规则和维护最佳实践。例如,用户ID可能由部门缩写和员工编号组成以保持唯一性和可识别性。用户配置文件则定义了用户的系统访问限制,如登录次数限制、密码策略等。

角色的定义

在SAP系统中,角色是权限的集合。将角色分配给用户,而不是单独分配权限,可以简化权限的管理过程。角色定义了用户可以执行的特定业务任务。通过定义角色,可以更容易地实施职责分离和访问控制。

角色的创建涉及指定一个角色名称、描述和模板。模板是已有的角色,可以基于该模板创建新角色,也可以从零开始创建一个新角色。创建好角色后,需要将权限对象、事务码和其他角色等分配给该角色。

在角色创建界面中,可以为角色添加描述,选择模板以及分配权限。权限的分配可以细化到操作级别的细节,确保角色具有所需但不超出的权限。

角色创建完成后,可以将角色分配给一个或多个用户。通过这种方式,SAP系统中的用户可以集中地获得执行其工作所需的权限集合。

权限对象

SAP权限对象是权限管理的基础构建块。一个权限对象代表了一个特定的业务功能或数据访问点,如查看特定类型的文档或执行特定的事务。权限对象由对象类(class)和对象编号(number)唯一标识,通常还会有不同的字段值(fields values)来进一步细化权限控制。

理解权限对象的构成对于设计有效的权限模型至关重要。每个权限对象都有一个或多个字段,这些字段可以有特定的值,或者可以通过值的范围来定义。

当用户执行一个操作时,SAP系统将进行权限检查以确定用户是否有权执行该操作。这个过程涉及对用户的角色、分配给这些角色的权限对象、以及权限对象的具体字段值进行检查。

由于之前讲解了一篇权限设置的很细的一个细节浅析SAP系统的授权机制,如何在SAP系统精准分配权限,就想到了,如果要是自建程序这种,系统里权限能控制到多细呢,于是,以前的一个需求想要控制好某些数据显示的问题,就可以实现了。在SAP系统里权限和系统参数是很复杂的存在,就比方前面讲到的修改了SAP系统里的这些参数,简单说一下我浅显的理解,下面就按照之前的需求来实现一下。

实现过程

今天做了一个特别的权限检查的内容,就是做一组按照设计好的数据来检查权限,首先,先创建一个权限检查的表,并在表里插入一些数据,如下图所示:

下面就要开始从创建权限对象开始,使分配这个权限的用户只能操作部门编号(edept)为 ‘10’ 的数据。如果选择其他数据,就要给出错误提示消息。

第一步、创建自己的权限字段。事务码:SU20,进行权限字段创建。

第二步、创建自己的权限对象。事务码:SU21,进行权限对象创建。

首先,创建对象类,输入对象类名称(ZEM1)、文本(FOR TEST),点击“保存”。

然后,找到之前创建的对象类,可以鼠标右键创建权限对象。

事务码:SU02,创建参数文件,输入相关信息,然后激活。

对象输入:ZEMPOBJ00

权限输入:ZDEPT,并双击它新建一个权限。

具体的权限值(点击“维护值”)进行维护。

一定要记得激活(很重要)!

该授权对象包含两个字段,可以在第一个字段 EMPDEPT中输入一 般值'10',第二个字段 ACTVT中,在创建(01)、更改(02)和显示(03)之间进行选择,也就是说,分配这个参数文件的用户,只能对 '10' 部门的数据进行01、02、03操作。也可以设置为“*”这样任何操作都可以通过。

事务码:SU01,进入‘参数文件’选项卡,添加参数文件:ZEMPRF00,保存后权限即可生效,对用户分配权限还可以通过创建角色的方式实现。

注意:有两种方式,创建角色分配给用户,或者直接将参数文件分配给用户,角色是从业务层面的维度来管理权限,但实质上的功能还是由profile 来完成的。 原来SAP的权限是没有角色这个概念的。全部是由profile/object 的方式来实现的,但这样的方式要求对权限底层的具体细节非常了解才行,严重影响的工作效率,而且不利于只懂业务的人进行权限管理和设计。 所以SAP后来引入了角色这样一个概念,试图通过自顶向下的方式让用户来管理权限。通过事务码:PFCG可以维护角色。

第四步、创建role将权限分配给用户

首先,事务码:PFCG 创建角色:ZEMPR00,输入描述文本,点击创建,点击“权限”选项卡,参数文件名称:点击(系统建议的),点‘更改授权数据’->‘手动,输入授权对象:ZEMPOBJ00,回车,保存,然后指定权限的值。

然后,进入‘用户’选项卡,输入用户名为自己的用户名;记得‘用户比较'(用户比较,完成权限修改后与用户的权限保持一致)到此为止,权限的设计全部完成,下面我们通过一段程序来验证权限的有效性。

权限列表中有两个权限,一个是系统通过创建角色生成的,一个是我们手动创建的。

第五步、创建ABAP程序,来验证权限对象的有效性

REPORT  ZHAIM_TEST01 NO STANDARD PAGE HEADING.TABLES ZEMP_TEST.DATA: IT_ZEMP TYPE STANDARD TABLE OF ZEMP_TEST,          IW_ZEMP TYPE ZEMP_TEST.PARAMETERS P_DEPT TYPE ZEMP_TEST-EDEPT.START-OF-SELECTION.AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'        ID 'ZEMPDEPT' FIELD P_DEPT        ID 'ACTVT'  FIELD '03'."用户使用程序,想要查询部门的员工信息,"通过authority-check object 来进行权限检查,ID是字段名,field是要检查的"'actvt': 01 创建,02更改,03查询,06删除IF SY-SUBRC <> 0.  MESSAGE S001(00) WITH '您没有权限查看此数据' DISPLAY LIKE 'E'.ELSE.  SELECT *    FROM ZEMP_TEST    INTO TABLE IT_ZEMP   WHERE EDEPT = P_DEPT.  LOOP AT IT_ZEMP INTO IW_ZEMP.    WRITE / IW_ZEMP.  ENDLOOP.ENDIF.
下面开始验证我们最开始的预想结果:
在界面输入数字20,然后执行查看结果:
在界面输入数字10,然后执行查看结果:

如果存在删除操作,在删除前,检查用户的权限,可以将actvt的值改为06进行测试。

actvt的所有值储存在表TACT中。

注意:    

AUTHORITY-CHECK OBJECT 'ZEMPOBJ00' ID 'ZEMPDEPT' FIELD P_DEPT ID 'ACTVT' FIELD '03'.

sy-subrc 

一些重要返回值如下:

  0:  用户权限检查通过.  4:  用户权限不足.  8:  参数的数量不正确.  12:  权限对象不存在. 

以上就是本篇文章的全部内容,有什么建议和意见欢迎留言。


阅读原文:原文链接



点晴模切ERP更多信息:http://moqie.clicksun.cn,联系电话:4001861886

该文章在 2025/4/24 10:03:55 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved