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.
    
             
  • 相关阅读:
    Zuul路由转发规则
    logstash数据处理示例
    Spring Cloud问题分析
    Linux定时器工具
    线上系统问题定位
    spring-data-redis读写分离
    日志及参数的乱码问题
    Maven中使用本地jar包
    给数据库用户付权
    jira 跟工时有关的配置文件
  • 原文地址:https://www.cnblogs.com/lvcha001/p/12218009.html
Copyright © 2011-2022 走看看