正德厚生,臻于至善

如何查看oracle客户端连接的IP地址

方法1:通过触发器去记录ip
--在sys的用户登录下创建表,来记录客户端使用tcp协议连接的ip地址
--如果客户端没用oracle的tcp连接,就不会返回IP地址

create table login_history  
 ( 
   osuser      varchar2(60), --客户端操作系统用户名
   username   varchar2(60),  --用户名 
   machine    varchar2(60),  --机器名
   program   varchar2(60),   --进程
   login_time date,          --登录时间   
   ip         varchar2(50)   --ip地址   
 );

--在sys用户登录下创建触发器,来根据v$ssesion记录ip 

create or replace trigger login_log  
after logon on database  
begin  
  insert into login_history  
    SELECT osuser, username, machine,program, logon_time, sys_context('userenv', 'ip_address')  
      from v$session  
     where audsid = userenv('sessionid');  
  commit;  
end; 
/

--查看数据
select * from login_history;
select distinct ip from login_history;

方法2:通过触发器把ip反写到v$session表
create or replace triggeron_login_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context('USERENV','IP_ADDRESS'));
end;
/

补充方法3:通过oracle监听日志去确定客户端连接IP

通过对Oracle数据库监听日志分析listener.log
find / -name '*listener.log*'
sed -n '/07-JUN-2024 08:00:00 /,/01-JUN-2024 08:00:00/p' listener.log
赞(0) 打赏
未经允许不得转载:徐万新之路 » 如何查看oracle客户端连接的IP地址

评论 抢沙发

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫

微信扫一扫

登录

找回密码

注册