1、在数据库管理时,偶尔会需要查看数据库的IP地址

select sys_context('userenv','ip_address')from dual

2、有的时候需要查看对所有登录进数据库的用户,但是在V$SESSION视图不能很清楚的知道所有的会话是哪个地址连接进来的

可以做如下操作

  • 创建一个触发器,更新V$SESSION的client_info字段

create or replace trigger on_logon_trigger after logon on database
begin
    dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end; 
/
  • 查询信息

select s.SID ,s.SERIAL# ,s.USERNAME,s.OSUSER,s.MACHINE,s.client_info,
ob.owner ,ob.OBJECT_NAME
from  V$locked_object lo left join v$session s
on s.sid=lo.SESSION_ID
left join dba_objects  ob
on lo.OBJECT_ID=ob.OBJECT_ID