sqlplus lucifer/lucifer@10.211.55.110/orcl sqlplus / as sysdba alter session set nls_date_format ='yyyy-mm-dd hh24:mi:ss'; select username,machine,terminal,program,client_info,logon_time from v$session;
sqlplus lucifer/lucifer@10.211.55.110/orcl alter session set nls_date_format ='yyyy-mm-dd hh24:mi:ss'; select sys_context('userenv','ip_address') from dual;
AI写代码bash
* 1 * 2 * 3
换一个主机客户端登录,查看是否可以查询 IP 地址:
从上述实验可以看出,客户端已经可以查询 IP 地址,说明 plsql 包已生效,但是不会记录到 v$session 中,需要创建一个触发器来实现。
创建触发器,记录客户端登录 IP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
createor replacetrigger on_logon_trigger after logon ondatabase begin dbms_application_info.set_client_info(sys_context('userenv','ip_address')); end; /
AI写代码sql
* 1 * 2 * 3 * 4 * 5 * 6
查询 v$session 查看是否有记录 IP 地址:
1 2 3 4 5
select username,machine,terminal,program,client_info,logon_time from v$sessionwhere username isnotnull;