Oracle记录连接用户IP地址的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle记录连接用户IP地址的方法相关的知识,希望对你有一定的参考价值。

我们都知道在v$session中记录着客户端的机器名称,但是没有IP,那我们如何让v$session中也记录IP的信息呢?

1.首先,利用 DBMS_SESSION 过程包,先执行:

BEGIN
  DBMS_SESSION.set_identifier(SYS_CONTEXT(‘USERENV‘, ‘IP_ADDRESS‘));
END;
/

2.执行触发器

create or replace trigger on_logon_trigger
  after logon ondatabase
begin
  dbms_application_info.set_client_info(sys_context(‘userenv‘,‘ip_address‘));
end;
/

注:执行过程包和触发器需要dba权限

3.然后使用管理员用户登陆pl/sql,就可以查看连接上oracle的IP信息

执行查询sql:
select username,
       program,
       machine,
       client_info,
       sys_context(‘userenv‘, ‘ip_address‘) as ipadd
  from v$session s
 where username is not null
 order by username, program, machine;

以上是关于Oracle记录连接用户IP地址的方法的主要内容,如果未能解决你的问题,请参考以下文章

oracle可以通过localhost连接,无法通过ip地址连接解决方法,oracle远程连接配置

请问,怎样查询是哪个用户(ip )导致oracle用户被锁

Delphi中如何用IP地址的方式来连接Oracle数据库?

plsqldeveloper 怎么远程连接oracle数据库

Oracle建立DBLINK的详细步骤记录

Navicat怎么连接Oracle数据库