养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

获取session ip

时间:2024-11-02 14:31:16

目的:目前正在做数据库监控脚本,小部分功能是监控各种应用在数据库上的连接状态,其中重要的是获取会话ip,再根据ip远程连接,查看各种应用的功能。原因:由于数据库较多,且每个数据库上连接的应用不一,应用开发人员不一,监测数据库应用结果非应用开发人员也能看懂

方法/步骤

1、查询v$session并不能明确知道应用的具体功能selectt.MACHINE,t.PROCESS,t.PORT,t.PROGRAM,t.MODULEfromv$sessiontwhereusername='SA'orderbyt.MACHINE

获取session ip

2、查询到v$session中客户端信息为空selectt.CLIENT_INFOfromv$sessiontwheret.USERNAME='ZXX';

获取session ip

3、sys_context('use筠续师诈renv','ip_address')只能获取本地连接ipselec墉掠载牿tsys_context('userenv','ip_address'),sys_context('userenv','host')fromdual;如何获取其他主机session的ip呢?

获取session ip

4、添加触发器createorreplacetrigg娣定撰钠ertrg_login_onafterlogo荏鱿胫协nondatabasebegindbms_application_info.set_client_info(sys_context('userenv','ip_address'));end;一旦有新的session连接,oracle就会将session的ip_address写入到v$session中CLIENT_INFO字段中

获取session ip

5、缺陷:已经连接进来的session还是不能获取ip,只能和开发人员讨论

© 一点知识