SAP的权限是通过授权对象来控制的,所有的事务码、角色等最终反映在系统中都是授权对象。在SAP中运行事务码时,系统首先会检查S_TCODE这个授权事务中是否有指定的事务码,如果有,你才能使用这个TCODE。但这里通过后,并不代表你可以将所要操作的业务进行完毕,在不同的地方,系统还会检查其他的授权对象,比如在操作到与会计凭证的公司代码相关的事务时,系统会检查f_bkpf_buk 这个授权对象,只有这个检查通过后,才能继续往下走。


系统检查授权对象的代码一般为:

AUTHORITY-CHECK OBJECT f_bkpf_buk for user zhangsan01ID ‘ACTVT’ FIELD act_hinzID ‘BUKRS’ FIELD bkpf-bukrs.IF sy-subrc NE 0.MESSAGE e083 WITH bkpf-bukrs.ENDIF.

这个语句检查的是张三(zhangsan01)是否有f_bkpf_buk这个授权对象的权限,如果不要for user zhangsan01,则表示检查当前用户的权限。

注意这里只检查授权对象,没有单一角色和复合角色,也就是说虽然我们给用户分配了很多角色,但系统最终检查的是这些角色的授权对象,而且是不分角色的授权对象。这样就会造成权限重叠的情况。

比如张三有A公司凭证查看的权限,又有B公司凭证过帐的权限,如果他同时还有S_TCODE:FB01的授权对象,这时候他就是有A、B两家公司的过帐和查看权限。所以,分配权限的时候得注意了。

使用事务码SE93查看权限对象;

添加完事务码后没有带出授权对象,就是因为这个事务码下没有包含权限对象

用SU01新建一个ID时,默认的权限是空白,即这个新建的ID不能做任何事情,不能使用任何事务代码。这样只需要为相应的ID赋上相应的TCODE,即可实现“某人能干某事”了,其补集,则是“某人不能干的某些事”。
  
  但是我们不能直接在SU01里面给某个ID赋上TCODE,要通过ROLE中转一下。即:一堆TCODE组成了一个ROLE,然后把这个ROLE分给某个ID,然后这个ID就得到一堆TCODE了。
  
  上面这些,仅仅是SAP权限控制的初级概念,要理解SAP权限控制的全部,必须还要明白下面的概念。
  
  1、角色(ROLE)、复合角色
  
  上面讲了,角色,即ROLE,是一堆TCODE的集合,当然还包含有TCODE必备的“权限对象”、“权限字段”、“允许的操作”及“允许的值”等。我们使用PFCG来维护角色。
  
  一个复合角色可以包含多个单个的角色。
  
  具体请看下面的概念。
  
  2、权限对象(Authorization Object)、权限字段(Authorization Field)、允许的操作(Activity)、允许的值(Field Value)
  
  上文粗略说了构成ROLE的是若干TCODE。其实,在ROLE和TCODE之间,还有一个中间概念“权限对象”:
  
  角色包含了若干权限对象,在透明表AGR_1250中有存储二者之间的关系;
  
  权限对象包含了若干权限字段、允许的操作和允许的值,在透明表AGR_1251中体现了ROLE/Object/Field/Value之间的关系;
有一个特殊的权限对象用来包含了若干事务码。这个权限对象叫“S_TCODE”,该权限对象的权限字段叫“TCD”,该字段允许的值(Field Value)存放的就是事务代码;
  
  有一种特殊的权限字段用来表示可以针对该权限对象做哪些操作,是允许创建、修改、显示、删除或者其他呢。该权限字段叫“ACTVT”,该字段允许的值(Field Value)存放的就是允许操作的代码,01代表创建、02代表修改、03代表显示等;
  
  SAP的权限控制是控制到字段级的,换句话说,其权限控制机制可以检查你是否有权限维护某张透明表的某一个字段。
  
  SAP系统自带了若干权限对象、默认控制了若干权限字段(对应到透明表的某些字段)。可以用事务码SU20来查看系统有哪些权限字段,用SU21来查看系统有哪些默认的权限对象。
  
  于是我们知道了事务代码与权限对象的区别。从权限控制的范畴来看,事务代码属于一种特殊的权限对象;一个事务代码在执行过程中,为了判断某个ID是否有权限执行此事务代码,还可能检查其他若干普通的权限对象。使用SU22来查看某个事务代码包含了哪些权限对象。在透明表USOBX中,存放了事务码与权限对象的对应关系。

3、自定义权限对象

上文所说的系统自带权限对象与权限字段仅能满足有限的需要,其权限审核的逻辑也是系统硬编码了的,我们能做的只是是否启用某项权限对象的检查(使用SU22)。如果需要自定义,通过SU20、SU21定义即可。
  
authority-check后的SY-SUBRC返回值的不同也代表着不同的意思,这里稍微归总一下:

0:权限check成功
4:用户无这样的权限
8:在写ABAP authority-check时,指定太多的ID(最多只能有10个)
12:用户信息中不存在这样的authority object
16:用户信息中不存在这样的profile
24:指定的fild名字与authority-object中ID需要的field不匹配
28:用户信息不正确
32:用户信息不正确
36:用户信息不正确

1.su20 创建权限对象字段 例子: ZPOWERFLD1

创建权限对象字段(存储在AUTHX表中),指定表中的数据元素。

2.su21 创建权限对象类和权限对象 例子:对象类:选择了默认的WG零售 对象:ZPOWER1

创建权限对象类别(存储在TOBCT表中)

点击对象类别创建权限对象(存储在TOBJ表中),生成SAP_ALL,创建的时候需要填写权限对象字段,还可以加上ACTVT,ACTVT中有很多的值,如02修改,03一般为显示权限
需要马上生效,点击左上角SAP_ALL

3.su01 生成参数文件 例子:ZAUTOPROF

环境-维护参数文件 输入参数文件名,点击创建参数文件的工作区-进入后新建-进入后输入权限对象和权限(自己起名字,例:ZAUTHO),双击ZAUTHO,可对权限对象下的权限字段的值进行设置(程序中输入的值要在这个值域),注意激活

4.pfcg为角色分配权限 例子:ZROLEA

新建权限角色,第二栏为菜单,可以添加事务码(可以选择1.添加标准 or 2.报表,本例子选2),第三栏为权限,输入刚建立的参数文件,点击更改授权数据,也可以看到设置的值,最后点击生成(即:皮球),第4栏为用户,输入想要设置权限的用户,指定有效期。

5.su01 添加参数文件和角色给用户

参数标签输入参数文件,角色标签输入刚建的角色。

6.程序中书写 例子: Z_AUTHORITY_TEST

在程序中加上类似代码:

REPORT  Z_AUTHORITY_TEST.
DATA: L_STR(30) TYPE C.
SELECTION-SCREEN BEGIN OF BLOCK B3 .
SELECTION-SCREEN COMMENT 1(10) TEXT-003.
PARAMETERS:P_CARRID LIKE SPFLI-CARRID.
SELECTION-SCREEN END OF BLOCK B3.
AT SELECTION-SCREEN.

“su21 新建WG对象类下的ZPOWER1授权对象 ,将su20创建的ZPOWERFLD1给授权对象

AUTHORITY-CHECK OBJECT ‘ZPOWER1’

“su20 ZPOWERFLD1 授权对象字段,对应的是SPFLI-SCARR

ID ‘ZPOWERFLD1’ FIELD P_CARRID . IF SY-SUBRC <> 0.CONCATENATE P_CARRID ‘您没有权限!’ INTO L_STR.MESSAGE L_STR TYPE ‘E’.EXIT.ENDIF.

7.su24 查找一个事务的授权对象

在SU24中为事务码添加权限对象,一般在se93中添加的那一个权限对象会在你点击事务码之后自动出现

若是事务码有多个权限控制对象,需要自

在项目中,难免要使用到自定义的权限对象,如对利润中心的检查,找了好久,没有看到,于是,我就自己建了一个

刚开始不懂,到处查资料,分为几个步骤,如下:

1.su20

创建权限对象字段(存储在AUTHX表中)

2.su21 创建权限对象

创建权限对象类别(存储在TOBCT表中)点击对象类别创建权限对象(存储在TOBJ表中),生成SAP_ALL这里创建的时候需要填写 权限对象字段,还可以加上ACTVT,ACTVT中有很多的值,如03一般为显示权限需要马上生效,点击SAP_ALL

3.程序中书写

在程序中加上类似代码:

authority-check object ‘V_VBKA_VKO’id ‘VKORG’ p_vkorgid ‘ACTVT’ ’03’.

4.su24

在SU24中为事务码添加权限对象,一般在se93中添加的那一个权限对象会在你点击事务码之后自动出现

若是事务码有多个权限控制对象,需要自己手动添加另外的权限对象。

权限对象中有四个标识:
? U  C  CM
当权限对象对应的是C或CM时,控制有效。他们之间的区别在于,CM在PFCG分配权限时会自动带出来,C标记的需要手工分配。

5.pfcg为角色分配权限

这是属于BASIS的部分,但是开发人员需要了解。选择需要修改的权限角色,第二栏为权限,可以添加事务码,之后在更改用户权限里面,点击授权对象,这时,前面为CM标记的权限对象会出现,标记为C的不会出现,需要手动分配。

6.待分析,se93. se93主要用于分配程序的事务码,这个地方值得注意的就是一般的报表程序都选择第二项。否则在程序运行的时候,点击执行,界面就会消失~~这里也有分配权限对象,但是只能填一个,不知道如何处理。

关于赛锐信息

作为SAP的资深合作伙伴,赛锐信息是一家专业提供SAP行业化管理软件解决方案的顾问公司,致力于为企业提供SAP ERP系统咨询服务、IT规划、业务流程优化、信息系统实施、行业信息系统方案开发,运营外包及售后维护等全面的服务方案。已服务1000+家不同行业、规模的大中小型企业客户。在电子高科技、汽车零部件、印刷包装、医疗器械、快消品、专业服务等行业信息化管理领域具有领导性地位。

SAP License:SAP权限对象文集相关推荐

  1. SAP License:SAP不便解决的问题之七——权限问题

    做权限是个烦人的活计.我想做权限的筒子们大都有这个感觉.我见过的系统做权限时没有速度快的,都慢得跟乌龟爬一样.另外,用户一多了,角色组织就是个大问题,要兼顾到灵活方便与整齐划一.按岗位组织角色?还是按 ...

  2. SAP License:FI权限需要控制利润中心

    FI权限需要控制利润中心,例如F-02权限对象只能控制到公司代码层,如果需要控制到利润中心需要在后台进行激活利润中心授权对象. 路径:SPRO 财务会计(新)-财务全局设置(新)-权限-激活利润中心授 ...

  3. SAP License审计说明及合并

    很多SAP客户做License审计时,并不知道License可以合并一事,一般USMM测量完结果也不看,直接将License审计结果发给SAP了.当然,对于大公司而言,这也是没问题的,毕竟买了那么多L ...

  4. SAP License:SAP顾问日记二

    3月25日 星期 三晴 上回说"吃",今天说"玩". 在广州跟着项目组的"玩货们"玩了不少山山水水,今天我不说山,也不说水,说说广州特色的古 ...

  5. SAP License:SAP顾问日记一

    3月12日星期四晴 天是越来越暖和,今天当地最高气温20度,早上下楼买饭时,风吹在脸上丝毫没有寒意.的确清明快到了,也该是踏春的季节.回想起每年的这个时候,由于项目的关系,我都是在不同的地方.如果我此 ...

  6. SAP License:SAP系统界面相关调整和设置

    一.SAP界面介绍 1.菜单栏 2.标准工具栏 (命令域) 命令域:可以输入事务代码 Transaction Code T-code 3.标题栏 4.应用工具栏(Application Toolbar ...

  7. SAP License:供应链管理和ERP的关系?

    ERP可以被视作是企业内部的"供应链协同系统",而"供应链管理"涵盖的范围一般指从客户的客户(直至最终用户)到供应商的供应商之间的全部供需链.现实中我们研究供应 ...

  8. SAP License:SAP S4HANA和ECC的区别

    HANA数据库S4HANA只能在Hana数据库上运行不像ECC可以在OracleIBM DB2等上运行S4H设计的背后是HANA的内存功能和之下的设计原则内存数据库意味着从内存中读取数据,即数据总是驻 ...

  9. SAP License:ERP项目经理需求调研的惨痛经历

    ERP项目经理李伟不知道是自己越来越理智了,还是屈服了,他再也不会让人签字确认什么需求分析文档--昨天的需求今天就变,即使签了字又能怎样?告状?罚款?一切都无济于事,满足生产管理才是首要任务.还是走一 ...

  10. SAP License:SAP S/4HANA Cloud [ERP 云]

    产品文档 SAP Help Portal 提供了有关产品上手.实施.可扩展性等方面的信息. 用户管理 只需要网络连接.URL 和访问权限,用户就可以在任意设备上通过 Web 浏览器访问 SAP S/4 ...

最新文章

  1. 图片(img标签)的onerror事件,你有用过嘛?
  2. 【[CQOI2018]交错序列】
  3. CSS3 移动端开发技巧
  4. C#中5中timer的比较
  5. C中的volatile用法
  6. Mongodb~连接串的整理
  7. Nagios的安装与配置并实现飞信报警
  8. 当迷茫在大学里泛滥成灾——李开复
  9. LitePal的升级
  10. 单片机C51之1:流水灯
  11. 平头哥广发英雄帖,公开首款CPU“玄铁”仿真代码
  12. 重装系统后有一个磁盘打不开,提示没有权限
  13. AD10 BOM制作
  14. HCL_路由器_三层交换
  15. java+js实现展示本地文件夹下的所有图片demo
  16. soi cmos技术及其应用_微生物污水处理技术及其应用
  17. 【DNA计算】DNA编码----笔记1
  18. vscode 设置代码格式化缩进为4个空格
  19. uni-app Tips
  20. php使用curl模拟post请求

热门文章

  1. java适配器有哪些_Java中适配器模式(Adapter)是什么? 适配器模式(详解)
  2. 半径为r的均匀带电球体_一半径为R的均匀带电球体,其电荷的体密度为ρ.求(1)球外任一点的电势;(2)球表面上的电势;(3...
  3. matplotlib3d柱状图_Matplotlib——画图(散点图、柱状图、等高线图、3D图)
  4. python作业atm_python完成ATM(分目录)
  5. 超详细,Wireshark 3.6.3安装教程(Windows系统)
  6. 华为数通设备常用诊断命令
  7. Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
  8. “乐享生活,随心而行”,第四届APEC车联网研讨会即将在上海召开
  9. iptable 详解
  10. 微信小程序UI------实现携程首页顶部的界面(弹性布局)