Sap 权限相关设置、控制及传输ERP 项目部 林群1、权限相关概念简介一、首先我们先来介绍以下这幅图(PFCG ),这里面包含几个权限相关的概念。
以上图为例,我们来简单的介绍上图中的几个概念:1、Role :一堆TCODE 的集合,当然还包含有TCODE 必备的“权限对象”、“权限字段”、“字段值”等。
这个大家比较熟悉,用户如果要添加某些权限,那么可以把相关的角色赋予相应的用户。
2、Authorization Objects :包含了若干权限字段、允许的操作和允许的值。
有一个特殊的权限对象用来包含了若干事务码,这个权限对象叫“S_TCODE”,该权限对象的权限字段叫“TCD”,该字段允许的值(Field Value )存放的就是事务代码。
3、Authorization Group :顾名思义,这个就是若干个权限对象的集合。
4、Authorization Field :是Authorization Objects 的相关元素,比如:操作、公司代码、一个事务等。
有一种特殊的权限字段用来表示可以针对该权限对象做哪些操作,是允许创建、修改、显示、删除或者其他。
该权限字段叫“ACTVT ”,该字段允许的值(Field Value )存放的就是允许操作的代码,01代表创建、02代表修改、03代表显示等。
权限对象类(Authorizati on Group )权限对象(Authorizati on Objects )参数文件(Profiles )权限字段(Authorization Field )字段值(Field Value )角色(Role )事务代码(TCODE )5、Field Value:确定可进行的操作或操作范围,如:权限字段是工厂,权限字段的值是1010,那么拥有该角色的用户只能进行1010工厂的相关操作。
6、Profiles:当一个角色生成的时候,会生成一个相应的参数文件,同样的,该参数文件也包含与相应角色一样的权限对象。
(可以把一些非生成的参数文件赋予相关的用户)介绍完以上几个概念后,大家来看看我们平时用SU53得到的截图(以下是在800用YLKJ_MM账号操作ME21N的截图):就可以很清楚知道图中的意思了(该用户缺少权限对象类MM_E中的权限对象M_BEST_EKO 下的字段ACTVT的值01(创建)的权限,后续会介绍怎么根据该图,查找相应的角色)。
二、介绍以上几个概念后,接下来介绍一下用户组(User Group)用户组,顾名思义就是用户的集合,可以根据单位、部门对用户进行分组,对相应的用户组赋予相应的权限。
2、权限设置过程下面以:为了控制事务代码ZMM100的使用,而创建ZMM_TEST角色的过程为例介绍角色的创建。
1、权限对象类的创建输入事务代码SU21,如下图:如上图,点击“Object Class”,如下图:按上图填写权限对象类的名称及描述,填写完后点击保存,弹出如下对话框:点击“本地对象”,权限对象创建成功(注意:如果是正式情况不能点击本地对象,要点击保存)!2、权限字段的创建输入SU20,如下图:点击上图中的按钮,进入如下图:如果这边的需要的数据元素不存在,则需要用SE11进行数据元素的创建,这边没有权限操作,不进行演示!如上图,填写字段名及数据元素(注意:如果所需要的字段已经存在,比如:WERKS或者ACTVT等,则不需要操作此步骤),点击保存,弹出如下界面:点击保存,即可!3、创建权限对象及字段设置选中创建好的权限对象类,点击右键,选中“Create Authorization Object”,如下图:弹出如下界面:在上图中填写“对象名称”、“对象描述”、“字段名”填写完后,点击保存,弹出如下界面:点击保存,弹出如下界面:点击,回到如下界面:点击,权限对象及字段设置成功,如下图:4、设置事务代码的权限对象输入事务代码SU24,如下图:如上图,输入需要维护的事物代码,点击,如下图:如上图,每个事务代码都有默认的一个相关权限对象S_TCODE用于检查事务代码,(大家平常可能会有疑问:有些自开发的程序,如果没有对它设置权限控制的时候,为什么顾问的账号可以操作该事务代码,而一般用户的账号却不能操作呢??答案就在于顾问账号中分配的Z_KEYUSER_DISP_NOHR(显示权限ALL-非HR)角色中的S_TCODE权限对象字段值设置为如下:)点击上图中的按钮,维护相关的事务代码,如下:点击上图中的按钮,增加权限对象(其它按钮的作用,大家自己测试一下就知道了),弹出如下对话框:如上图,在对话框中输入已经创建的权限对象,点击回车,如下:这边设置,当ROLE菜单增加该事务代码的时候,是否自动带出事务代码相关的权限对象(S_TCODE不适用于该设置),为了演示这个效果,我们这边增加两个权限对象。
增加完权限对象后点击保存,会提示设置请求号,大家可以随便创建一个,到时候把其释放即可。
创建完请求号后,弹出下图提示,说明维护没有问题了。
5、角色的创建(只介绍手工创建,复制、上载及继承大家自己测试,还有种组件角色大家也可以去了解一下)输入事务代码PFCG,如下图:如上图,输入角色的名称,点击“创建角色”按钮,如下:如上图,输入角色名称,并点击保存,然后点击“菜单”分页,如下:点击按钮,如下:如上图,输入要分配的事物代码,点击按钮,如下:点击保存,后点击“权限”分页中的按钮,如下图:点击菜单栏上的“实用程序”——>“显示技术名称”再选择角色,点击上图中的,如下图:从上图中大家可以清楚的发现SU24中“Proposal Status”的作用了(当然,S_TCODE是不受影响的)这边只带出权限对象ZMAT_CHECK,如果想继续增加其他的权限对象,则可以点击菜单栏上的“编辑”——>“插入权限”或者上图中的按钮进行权限对象的增加(注意:“选择标准”不能添加自定义的权限对象)这边点击,如下图:如上图,输入要增加的权限对象,点击回车,如下图:点击,对权限字段值进行维护,如下:设置完字段值后,点击上图中的按钮,角色的权限维护成功。
最后点击“用户”分页进行相应用户的维护,并进行用户的比较。
(比较简单不再详细说明)6、程序中的权限控制如果有的人认为以上操作完就,就可以进行权限控制了,那就错了。
其实以上的设置对权限限制完全起不到任何作用,真正的权限限制是在事务代码相应的程序中增加如下代码:AUTHORITY-CHECK OBJECT 'ZMAT_CHECK'ID'ACTVT'FIELD'01'.才能达到权限的控制,即以上的操作才起作用。
3、角色传输(只介绍批量角色的传输,单个传输就点击即可)1、请求号的生成:输入事务代码PFCG ,如下图:进入大量传输界面,如下:如上图输入要传输的角色名,点击,如下图:点击回车,如下图:回车,进行相应请求号的创建,这边不再详细说明。
请求号创建完后,跳转如下界面:到此,角色相应的请求号生成成功。
2、请求号传输:(没有权限操作,这边不再详细截图)跨集团传输:STMS,在源系统操作,即如果要把120的角色传输至240,则在120系统执行STMS;同一个集团不同客户端传输:SCC1,在统一集团的目的系统操作,即如果要把120的角色传输至160,则要在160系统进行SCC1的操作。
4、权限相关表及事务代码(基本上所有的权限问题都可以根据下面的表或事务代码进行处理,这边留给大家自己研究吧)1、相关事务代码− SU53−当一个账号反映没有某个应有的权限时,可以输入T-code:SU53,查询系统出现没有权限的信息。
− SUIM− SUIM 其实就是Information 系统的一个集合界面。
−最常用的功能是:已知某个 T-code,查找含有这个T-code 的角色。
−输入 T-code 后执行,就可以得到含有这个T-code 的角色的列表。
−注意:其判断条件是角色的角色菜单,而不是 Profile 参数文件。
− (一)创建 Role(角色)的相关T-code:−PFCG 创建角色− PFAC 创建系统模板标准角色− PFAC_CHG 改变系统模板标准角色− PFAC_DEL 删除系统模板标准角色− PFAC_DIS 显示系统模板标准角色− PFAC_INS 新建系统模板标准角色− PFAC_STR− ROLE_CMP 比较− SUPC 批量建立角色参数文件− SWUJ 测试− SU03 检测 authorization data(授权数据)− SU25, SU26 检查 updated profile(更新的参数文件)− (二)创建用户的相关 T-code:− SU0−SU01 创建用户− SU01D− SU01_NAV− SU05− SU50,SU51,SU52− SU1−SU10 批量创建用户− SU12 批量修改用户− SUCOMP 维护用户公司地址− SU2 修改用户参数−用户组− SUGR 维护用户组− SUGRD 显示用户组− SUGRD_NAV 维护用户组− SUGR_NAV 显示用户组− (三)关于 profile & Authorization Data− SU02 直接创建角色参数文件,不用角色创建− SU20 细分 Authorization Fields(授权范围)− SU21(SU03) 维护 Authorization Objects(授权对象)−对具体 transaction code(事务代码)细分− SU22,SU24 维护事务权限对象的分配− SU53 检查缺失的 authorization objects(授权对象)− SU56 分析 authorization data buffers(授权数据缓冲器)− SU87 检查用户改变产生的 history(历史记录)− SU96,SU97,SU98,SU99− SUPC 批量产生角色2、相关的表− TOBJ All available authorization objects− USR12 用户级 authorization(授权)值− USR01 主数据− USR02 密码在此− USR04 授权在此− USR03 User address data− USR05 User Master Parameter ID− USR06 Additional Data per User− USR07 Object/values of last authorization check− USR08 Table for user menu entries− USR09 Entries for user menus (work areas)− USR10 User master authorization profiles− USR11 User Master Texts for Profiles (USR10)− USR12 User master authorization values− USR13 Short Texts for Authorizations− USR14 Surcharge able Language Versions per User− USR15 External User Name− USR16 Values for Variables for User Authorizations− USR20 Date of last user master reorganization− USR21 Assign user name address key− USR22 Logon data without kernel access− USR30 Additional Information for User Menu− USR40 Table for illegal passwords− USR41 当前用户− USREFUS− USRBF3− UST04 User Profile 在此− UST10C Composite profiles− UST10S Single profiles− AGR_1250 角色与权限对象的关联表− AGR_1251 角色与权限对象及操作值关联表− TSTC 事务代码表− UST12 参数文件与权限值的对应− AGR_1016 角色与参数文件对应表− USRBF2 这个表是对应到所用的authorzization objects的. − USOBX 事务代码与权限对象。