1、在数据库管理时,偶尔会需要查看数据库的IP地址
1
<code>select sys_context(</code><code>'userenv'</code><code>,</code><code>'ip_address'</code><code>)from dual</code>
2、有的时候需要查看对所有登录进数据库的用户,但是在V$SESSION视图不能很清楚的知道所有的会话是哪个地址连接进来的
可以做如下操作
创建一个触发器,更新V$SESSION的client_info字段
2
3
4
5
<code>create or replace trigger on_logon_trigger after logon on database</code>
<code>begin</code>
<code> </code><code>dbms_application_info.set_client_info(sys_context(</code><code>'userenv'</code><code>, </code><code>'ip_address'</code><code>));</code>
<code>end; </code>
<code>/</code>
查询信息
6
<code>select s.SID ,s.SERIAL# ,s.USERNAME,s.OSUSER,s.MACHINE,s.client_info,</code>
<code>ob.owner ,ob.OBJECT_NAME</code>
<code>from V$locked_object lo left join v$session s</code>
<code>on s.sid=lo.SESSION_ID</code>
<code>left join dba_objects ob</code>
<code>on lo.OBJECT_ID=ob.OBJECT_ID</code>