我们知道通过如下方法可以查看自己登陆IP
SQL> conn as sysdba
已连接。
SQL> select sys_context('userenv','ip_address') from dual;
SYS_CONTEXT('USERENV','IP_ADDRESS')
------------------------------------------------------------------
192.168.1.3
SQL>
那么如何去记录任何一个用户连接到oracle数据库的客户端IP呢?
我们可以通过触发器。
create or replace trigger on_logon_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context( 'userenv', 'ip_address' ) );
end;
这样当客户端登陆后,在v$session的client_info列会记录其相应的IP信息。
select client_info from v$session;
---------------------------------
CLIENT_INFO
192.168.1.3
这些信息可以做为数据库审计之用。
阅读(784) | 评论(0) | 转发(0) |