账户使用事务码查询、管控

目的:查询某账户什么时间使用过什么事务码

方法:

  • ST03
  • SM19\SM20 操作日志 
  • 自己开发增强保存后台表(可通过配置后台表进行事务码权限管控)

方法1:ST03(工作负载)

1)双击“业务事务分析”,进入页面输入条件,执行

方法2:SM19/SM20(审计日志)

BASIS方法,只记录待验证

sm19和sm20是个单独的配置,系统一般默认不开审计,需要先通过sm19开审计,然后再SM20才能查到用户操作日志(看下sm20能不能查不到,查不到就是没配置)

 

方法3:增强

类:CL_SBLM_SERVER_API (SE24)

方法:WILL_CAUSE_RABAX (在该方法里创建增强实施,如:ZCL_SBLM_SERVER_API)

代码:

(1)在该方法里创建增强实施,如:ZCL_SBLM_SERVER_API

  METHOD WILL_CAUSE_RABAX.
    try.
      r_rabax_flag = cl_sblm_kernel_api=>_will_cause_rabax(
        exporting i_type = i_type i_obj = i_obj i_name = i_name i_clas = i_clas ).
    catch CX_SY_DYN_CALL_ILLEGAL_METHOD ##NO_HANDLER.
    endtry.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Klasse CL_SBLM_SERVER_API, Methode WILL_CAUSE_RABAX, Ende                                                                                         A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZCL_SBLM_SERVER_API.    "active version   
      CALL FUNCTION 'ZFMBASIS001'
        EXPORTING
          I_OBJ = I_OBJ.
ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*
  ENDMETHOD.

(2)创建functionZFMBASIS001

FUNCTION zfmbasis001.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_OBJ) TYPE  SBLM_OBJ OPTIONAL
*"----------------------------------------------------------------------

  TABLES:ztbasis001.

  DATA:ip TYPE string.
  CALL METHOD cl_gui_frontend_services=>get_ip_address
    RECEIVING
      ip_address = ip.

  DATA: opcode_usr_attr(1) TYPE x VALUE 5,
        terminal           TYPE usr41-terminal.
  CALL 'ThUsrInfo' ID 'OPCODE' FIELD opcode_usr_attr ID 'TERMINAL' FIELD terminal.


  ztbasis001-uname      = sy-uname.
  ztbasis001-ccmdatum   = sy-datum.
  ztbasis001-ccmsyuzeit = sy-uzeit.
  ztbasis001-ipadr      = ip.
  ztbasis001-compname   = terminal.
  ztbasis001-tcode      = i_obj.
  MODIFY ztbasis001.

  CHECK sy-sysid = 'S4P'.
  CHECK terminal NE 'SK-20200309VTZQ'.

  DATA:it_002 TYPE TABLE OF ztbasis002 WITH HEADER LINE.
  SELECT  * INTO CORRESPONDING FIELDS OF TABLE it_002 FROM ztbasis002 WHERE uname =  sy-uname .
  IF sy-subrc = 0.
    READ TABLE it_002 WITH KEY tcode = i_obj+0(5) compname = ''.
    IF sy-subrc = 0.
      EXIT.
    ENDIF.

    READ TABLE it_002 WITH KEY tcode = i_obj+0(5) compname = terminal.
    IF sy-subrc = 0.
      EXIT.
    ENDIF.

    READ TABLE it_002 WITH KEY  compname = terminal  tcode = i_obj  forbid = ''.
    IF sy-subrc <> 0.
      MESSAGE '您操作的事务码超出了工作范围,请勿进入' TYPE 'E'.
    ENDIF.
  ENDIF.

ENDFUNCTION.

说明:

1)ZTBASIS001(表001记录用户操作事务码的信息)

2)ztbasis002(表002用于管控用户有哪些事务码权限,根据计算机名来判断)

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值