这篇文章主要介绍了如何利用v$session视图中client_info字段追踪客户端IP地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。缺省从 v$session 中不能直接获得客户端 IP,需要执行dbms_application_info.set_client_info存储过程才能将登录数据终端机的IP地址记录在client_info字段中。可以使用以下方法创建触发器来完成自动记录IP地址功能:create or replace trigger
login_on_record_ipafter logon on databasebegindbms_application_info.set_client_info(sys_context(‘userenv’,
‘ip_address’));end;/实验:1. 使用终端机以SCOTT用户远程登录数据库,并查询v$session视图中的client_info字段。SQL> select
sid,serial#,username,terminal,client_info from v$session免费主机域名 where
username=’SCOTT’;
SID SERIAL# USERNAME TERMINAL CLIENT_INFO———- ———- ———-
——————– ——————————
54 62937 SCOTT SAM_DBA2. 执行创建触发器SQL> create or replace trigger
login_on_record_ip
2 after logon on database
3 begin
4
dbms_application_info.set_client_info(sys_context(‘userenv’,
‘ip_address’));
5 end;
6 /Trigger created.3. 断开SCOT免费主机域名T用户连接,再次使用终端机以SCOTT用户远程登录数据库,并查询v$session视图中的client_info字段。SQL>
select sid,serial#,username,terminal,client_info from v$session where
username=’SCOTT’;
SID SERIAL# USERNAME TERMINAL CLIENT_INFO———- ———- ———-
——————– ——————————
54 62945 SCOTT SAM_DBA 192.168.10.2此时已经可以查看 V$SESSION 视图中的 CLIENT_INFO 列看到新登录的客户端IP地址了。感谢你能够认真阅读完这篇文章,希望小编分享的“如何利用v$session视图中client_info字段追踪客户端IP地址”这篇文章对大家有帮助,同时也希望大家多多支持云技术,关注云技术行业资讯频道,更多相关知识等着你来学习!
相关推荐: 怎么使用PostgreSQL ExecAgg函数
本篇内容介绍了“怎么使用PostgreSQL ExecAgg函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大免费主机域名家仔细阅读,能够学有所成!AggState聚合函数执行时状态结构…