SAP中关于用户IP信息的获取(转载)详解编程语言

SAP中如何获取登录用户的IP? 或如何查看哪些IP登录到SAP中:

在Table: USR41中查看,具体字段的说明如下:

MANDT   —   Client
BNAME   —   登录的SAP ID
TERMID  —   Terminal ID (这个字段的意思不明)
SERVER —-  SAP Application Server(Central Instance / Dialoge Instance)
TERMINAL —-  用户电脑(包含IP,hostname)
SPRACHE —-  登录SAP时,用户选择的语言
LOGON_DATE —  登录日期
LOGON_TIME —  登录时间

————————————————————————————————————–

对于USR41这个表有以下疑问:

1. 该表的数据保留多长时间?

2. 该表的数据是由哪个程序获取的?

3. 哪些登录到SAP才会记录到这个表中?

来自官方的说法:

1. 该表的数据可能是实时的。但是: During the RFC logon with the logon screen, entries occur in table USR41 which are not deleted during the log off.

2. RSM04000

3. 经过GUI登录的用户肯定会记录到该表中.

—————————————————

SAP用户登录增强,对用户GUI登录有效,但对RFC访问登录(例如JCO)无效。增强类型是CMOD/SMOD,增强出口(exit)是SUSR0001

一、增强操作步骤

  1. tcode smod,”加强” 输入SUSR0001,”对象组件”选择”组件”,点击“修改”。
  2. 双击功能模块名”EXIT_SAPLSUSF_001″
  3. FUNCTION EXIT_SAPLSUSF_001中已有代码”INCLUDE ZXUSRU01″.在se80下,创建INCLUDE ZXUSRU01。
  4. 在ZXUSRU01中输入需要的代码
  5. 激活增强。在tcode smod,”加强” 输入SUSR0001,点击”测试”.选择EXIT_SAPLSUSF_001,激活。

二、增强登录数据获取

在ZXUSRU01中可输入需要的代码,控制登录动作。常见数据获取:
当前登录用户的用户名:SY-UNAME
当前登录用户的IP:CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_IP_ADDRESS
当前的全部登录:TABLE UINFO

三、登录增强代码示例

以下代码完成用户IP限定,即只允许用户TESTUSER从IP192.168.0.1登录,否则提示没有权限并中断登录。

 1 DATA: IP TYPE STRING, 
 2 COUNT TYPE I. 
 3  
 4 CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_IP_ADDRESS 
 5 RECEIVING 
 6 IP_ADDRESS = IP. 
 7  
 8 IF SY-UNAME = ‘TESTUSER’ AND IP <> ‘192.168.0.1′. 
 9 MESSAGE E157(00). 
10 ENDIF.

四、注意

    1. 此增强只能拦截GUI登录,不能拦截RFC登录。我还没找到RFC登录的Exit?谁知道请指教一二。
    2. 增强只有激活后,才生效。操作见前面的步骤5.
    3. 建立ZXUSRU01后,可以直接双击FUNCTION EXIT_SAPLSUSF_001中的”INCLUDE ZXUSRU01″进入编辑

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18399.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论