《Oracle系列》Oracle利用v$Session中client_info查询登录数据库的终端IP地址

缺省从 v$session 中不能直接获得客户端 IP,需要执行 dbms_application_info.set_client_info 存储过程才能将登录数据终端机的 IP 地址记录在 client_info 字段中。

可以使用以下方法创建触发器来完成自动记录IP地址功能:

精简版

create or replace trigger login_on_record_ip
  after logon on database
begin
  dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;
/

详细版

create or replace trigger login_on_record_ip
  after logon on database
begin
  dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
  dbms_session.set_identifier(sys_context('userenv', 'HOST'));
exception
  when others then
    rollback;
end;
/

猜你喜欢

转载自blog.csdn.net/liuhuanping/article/details/133378857