找到oracle程序呼叫者

2021-09-01 03:49:29 字數 816 閱讀 1947

最近在使用基於aix的oracle,通過topas發現cpu使用率過高,在90%以上,一直是兩個oracle的程序在工作。

因為外部程式訪問oracle最終都體現在oracle的程序,而不能發現最終的使用使用者是誰,無法準確定位問題。找到乙個sql,通過oracle的v$session,和v$process。

select  b.machine, b.program,b.osuser, b.username  , a.spid,b.sid

from v$process a, v$session b

where a.addr = b.paddr and  b.username is not null  

通過這個sql,spid就是作業系統的程序id,sid是oracle 的sessionid,username就是資料庫的schema,osname是作業系統使用者。

再通過這個sid可以通過下列的sql,找到正在執行的slq_id

select sql_id from v$active_session_history where session_id ='22' order by sql_exec_start desc

再通過這個sql_id最終找到正在執行的sql

select * from v$sql where sql_id = 'fvvhhvzapqnjx' 

或者合併成乙個sql

select b.* from v$active_session_history a,v$sql b where  a.session_id ='22' and a.sql_id=b.sql_id order by a.sql_exec_start desc

驗證驅動的呼叫者

驗證驅動的呼叫者 有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ri...

驗證驅動的呼叫者

驗證驅動的呼叫者 有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ri...

如何在Activity中獲取呼叫者

在activity中獲取呼叫者身份,有兩個作用 乙個是用於安全驗證,另乙個是 記錄呼叫日誌,便於在後續分析日誌,發現非法呼叫。android中有如下api 可以實現獲取呼叫者 binder.getcallinguid 和binder.getcallingpid 然後根據uid,pid查詢到包名 ac...