Oracle記錄連接用戶IP地址的方法

我們都知道在v$session中記錄着客戶端的機器名稱,但是沒有IP,那我們如何讓v$session中也記錄IP的信息呢?

1.首先,利用 DBMS_SESSION 過程包,先執行:

BEGIN
  DBMS_SESSION.set_identifier(SYS_CONTEXT('USERENV', 'IP_ADDRESS'));
END;
/

2.執行觸發器

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

注:執行過程包和觸發器需要dba權限

3.然後使用管理員用戶登陸pl/sql,就可以查看連接上oracle的IP信息

執行查詢sql:
select username,
       program,
       machine,
       client_info,
       sys_context('userenv', 'ip_address') as ipadd
  from v$session s
 where username is not null
 order by username, program, machine;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章