缺省从 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;
/