zoukankan      html  css  js  c++  java
  • 查询获取客户端IP

    疑问?
    1.数据库出现性能问题,在追查过程中定位到执行SQL所在Session对应的MACHINE机器,但是无法定位到问题机器IP地址?
    2.如何查询客户端IP地址信息

    两种方式
    1.创建触发器,登陆的session信息自动记录到一个表中,后续可以根据表的信息得到登陆的IP地址
    create table login_his  
     (  
       username   varchar2(60),  --用户名   
       machine    varchar2(60),  --机器名   
       login_time date,          --登录时间   
       ip         varchar2(50)   --ip地址   
     );
     
     create or replace trigger login_log  
       after logon on database  
     begin  
       insert into login_his  
         select username,machine,sysdate,sys_context('userenv','ip_address')  
           from v$session  
          where audsid = userenv('sessionid');  
       commit;  
     end;
     
     
    2.实时查询,通过v$session字段的限制条件,查询登陆的客户端地址。
      返回客户端IP地址
    https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions184.htm#SQLRF06117
    TEST 测试windows登陆vmware某一台虚拟机oracle db测试,远程连接
    SQL>select SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address from dual;
    IP_ADDRESS
    --------------------------------------------------------------------------------
    192.168.20.1
    
    已知两个条件
    SQL> select sid from v$mystat group by sid;
           SID
    ----------
             6
    SQL> select sid,serial#,username,osuser,machine,program,SQL_ID,MODULE from v$session where MACHINE='WORKGROUPHUOYANG';
           SID    SERIAL# USERNAME   OSUSER          MACHINE              PROGRAM              SQL_ID        MODULE
    ---------- ---------- ---------- --------------- -------------------- -------------------- ------------- --------------------
             6         15 SYS        Thinkpad        WORKGROUPHUOYANG   sqlplus.exe                        sqlplus.exe
    通过v$session进行查询,可以查询到信息         
    SQL> select sid,serial#,username,osuser,machine,program,SQL_ID,MODULE,SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address from v$session where MACHINE='WORKGROUPHUOYANG';
           SID    SERIAL# USERNAME   OSUSER          MACHINE              PROGRAM              SQL_ID        MODULE               IP_ADDRESS
    ---------- ---------- ---------- --------------- -------------------- -------------------- ------------- -------------------- ------------------------------
             6         15 SYS        Thinkpad        WORKGROUPHUOYANG   sqlplus.exe                        sqlplus.exe          192.168.20.88
    
    SQL> select sid,serial#,username,osuser,machine,program,SQL_ID,MODULE,SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address from v$session where sid=6;
           SID    SERIAL# USERNAME   OSUSER          MACHINE              PROGRAM              SQL_ID        MODULE               IP_ADDRESS
    ---------- ---------- ---------- --------------- -------------------- -------------------- ------------- -------------------- ------------------------------
             6         15 SYS        Thinkpad        WORKGROUPHUOYANG   sqlplus.exe                        sqlplus.exe          192.168.20.88
             
    历史信息如何查询?
    SQL> select MACHINE,PROGRAM,SAMPLE_ID,SAMPLE_TIME,SESSION_ID,SESSION_SERIAL#,USER_ID,SQL_ID,event,SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address from v$active_session_history where MACHINE='WORKGROUPHUOYANG';
    no rows selected
    SQL>  select MACHINE,PROGRAM,SAMPLE_TIME,SESSION_ID,USER_ID,SQL_ID,event,SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address from v$active_session_history where SESSION_ID=6;
    MACHINE              PROGRAM              SAMPLE_TIME                    SESSION_ID    USER_ID SQL_ID        EVENT      IP_ADDRESS
    -------------------- -------------------- ------------------------------ ---------- ---------- ------------- ---------- ------------------------------
    enmo                 oracle@enmo (J001)   20-JAN-20 01.16.04.266 AM               6          0 0w48385039vuw            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.16.03.266 AM               6          0 1xfxhadzygjxh            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.16.02.256 AM               6          0 8h8p5uvcu6rn0            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.16.01.256 AM               6          0 0kkhhb2w93cx0            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.16.00.256 AM               6          0 53c2k4c43zcfx            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.15.59.256 AM               6          0 53c2k4c43zcfx            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.15.58.256 AM               6          0 53c2k4c43zcfx            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.15.57.256 AM               6          0 53c2k4c43zcfx            192.168.20.88
    enmo                 oracle@enmo (J001)   20-JAN-20 01.15.56.256 AM               6          0 53c2k4c43zcfx            192.168.20.88
    9 rows selected.
    
             
  • 相关阅读:
    HDU 1202 The calculation of GPA
    HDU 1201 18岁生日
    HDU 1200 To and Pro
    C语言实现的图的深度搜索与广度搜索程序
    深度优先搜索和广度优先搜索的深入讨论
    Linux sftp 安全文件传输命令
    看白鹿原有感
    中国人民抗日战争暨世界反法西斯战争胜利70周年(20150903)
    高一的我曾对自己说"要放慢脚步去生活"!?
    网络营销(续)
  • 原文地址:https://www.cnblogs.com/lvcha001/p/12218009.html
Copyright © 2011-2022 走看看