SAP系统中用户登陆IP主机名及使用事物代码的审计日志记录增强
首先,这个功能有非常强大,强大到影响SAP系统每一次执行事物代码,所有一旦出现问题,可能造成全部用户的事务代码不能登陆,包括开发人员和BASIS。所以使用该功能前必须谨慎考虑。
一、改动系统标准对象:AUTH_CHECK_TCODE
在AUTH_CHECK_TCODE对象中加入自己的代码,就可以把用户的行为记录下来。
* authority_check_tcode berücksichtigt wie der Kernel die per SE97
* pflegbaren Eintr ge in der Tabelle tcdcouples.
* Berechtigungsprüfung
CALL 'AUTH_CHECK_TCODE'
ID 'TCODE' FIELD tcode. "#EC CI_CCALL
IF sy-subrc = 0.
*{ INSERT DEVK900175 1
CALL FUNCTION 'Z_SAVE_LOGONINFO'
EXPORTING
TCODE = tcode.
*} INSERT
* auth_check_tcode enth lt die Prüfungen von tcode_executable,
* daher im OK-Fall keine Aufruf n tig.
ELSE.
PERFORM tcode_executable USING tcode.
* Keine Berechtigung für Transaktion &
MESSAGE i077(s#) WITH tcode RAISING not_authorized.
ENDIF.
二、这里,加入了一个FUNCTION ‘Z_SAVE_LOGONINFO’,这个FUN中我们会把用户操作信息保存到自己的表。
FUNCTION Z_SAVE_LOGONINFO.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(TCODE) LIKE TSTC-TCODE
*"----------------------------------------------------------------------
data hostadr like uinfo-hostadr.
data hostaddr(8).
data term like uinfo-term.
data xhcount type i.
data: iptxt(15),itimes type i,itimes1 type i,hx(2).
data: result type i,resulttxt(3).
tables zlogoninfo.
call function 'TH_USER_INFO'
importing
hostaddr = hostadr "like UINFO-HOSTADR
*(hex)
terminal = term. "like UINFO-TERM
select max( xh ) into xhcount from zlogoninfo.
xhcount = xhcount + 1.
zlogoninfo-xh = xhcount.
zlogoninfo-mandt = sy-mandt.
zlogoninfo-bname = sy-uname.
hostaddr = hostadr.
do 4 times.
hx = hostaddr+itimes1(2).
itimes = 0.
result = 0.
do 2 times.
case hx+itimes(1).
when 'A'.
if itimes = 0.
result = result + 10 * 16.
else.
result = result + 10.
endif.
when 'B'.
if itimes = 0.
result = result + 11 * 16.
else.
result = result + 11.
endif.
when 'C'.
if itimes = 0.
result = result + 12 * 16.
else.
result = result + 12.
endif.
when 'D'.
if itimes = 0.
result = result + 13 * 16.
else.
result = result + 13.
endif.
when 'E'.
if itimes = 0.
result = result + 14 * 16.
else.
result = result + 14.
endif.
when 'F'.
if itimes = 0.
result = result + 15 * 16.
else.
result = result + 15.
endif.
when others.
if itimes = 0.
result = result + hx+itimes(1) * 16.
else.
result = result + hx+itimes(1).
endif.
endcase.
itimes = itimes + 1.
enddo.
resulttxt = result.
if iptxt ''.
concatenate iptxt '.' resulttxt into iptxt.
else.
iptxt = resulttxt.
endif.
itimes1 = itimes1 + 2.
enddo.
zlogoninfo-ip = iptxt.
zlogoninfo-terminal = term.
zlogoninfo-logon_date = sy-datum.
zlogoninfo-logon_time = sy-uzeit.
zlogoninfo-UCOMM = sy-UCOMM.
zlogoninfo-tcode = TCODE.
insert into zlogoninfo client specified values
zlogoninfo.
commit work.
*} INSERT
ENDFUNCTION.
三、自定义表的情况:
里面数据情况:
欢迎进入SAP中国顾问精英群与原作者一起讨论
企业上SAP软件为何选择赛锐信息作为实施商?
1、致力于SAP ERP系统应用的服务商;
2、已为国内200多家SAP系统客户的ERP信息化建设提供了咨询及实施服务;
3、拥有完善的产品策划、研发、实验、测试、质量控制过程;
4、公司自主研发的AMS系列软件产品是国内首个用于SAP权限风险识别的增强系统;
5、为用户管理、风险规避和信息审计提供辅助工具;
6、帮助用户规范企业的管理行为,建立合规的管控流程,有效提高企业IT资产投资回报率;
7、技术指标上拥有完全的、独立的领先优势,可以满足市场竞争、技术许可和标准制定等方面的需要;