技术开发 频道

SAP用户权限控制大解析及权限进阶分析

  【IT168技术】通常basis会使用PFCG做权限管理,你保存时会产生一个系统外的profile name,而且,SU01时用户有profile 和role两栏位。

  这些个profile name ,profile,role它们的关系如何呢?profile 这个英语词义是很丰富的,在中文中难找对应的表示同等语义的词语。

  基本概念

   activity

  activity,活动,类如insert, update,display等等,

  这些activity由当年德国开发者设计在tobj表中。

  activity 也是可分activity group。如果上升到方法论,我们不难发现,分类始终是人类认识和管理事物的卓越思想和强大手段。

   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.

   最常用的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是如何做到权限控制?下面是一些研究结论。

  关于权限方面的几个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:

0
相关文章