Виталий Яндулов Asked:2022-04-02 19:58:27 +0000 UTC2022-04-02 19:58:27 +0000 UTC 2022-04-02 19:58:27 +0000 UTC 是否有可能找出谁发送了执行请求? 772 找到正确的查询: SELECT s.* FROM v$sql s WHERE SQL_TEXT like '%BLABLA%'; 如何找出用户发送它执行的操作系统? sql 1 个回答 Voted Best Answer 0xdb 2022-04-06T20:15:04Z2022-04-06T20:15:04Z 不,在一般情况下,不可能确定。 要在特定数据库用户级别跟踪查询的执行,您必须启用审计。您可以从通过审计监控数据库活动一章开始了解。文档。 如果不需要 100% 的确定性,那么您可以找出哪些会话与解析 SQL 查询的数据库用户处于活动状态,即 第一个发送执行请求的概率很高。但是,很明显,多个操作系统用户可以在一个数据库用户下连接: select /*BLABLA*/ * from dual; select q.first_load_time, q.parsing_user_id, s.sid, osuser, machine, process from v$sql q, v$session s, v$process p where regexp_like (q.sql_text, '\/\*BLABLA') and user#=parsing_user_id and p.addr=s.paddr; FIRST_LOAD_TIME PARSING_USER_ID SID OSUSER MACHINE PROCESS ------------------- --------------- ---------- ------ -------- -------- 2021-11-06/12:26:13 110 48 oracle dbsrv 30465 2021-11-06/12:26:13 110 311 me clnt123 4176
不,在一般情况下,不可能确定。
要在特定数据库用户级别跟踪查询的执行,您必须启用审计。您可以从通过审计监控数据库活动一章开始了解。文档。
如果不需要 100% 的确定性,那么您可以找出哪些会话与解析 SQL 查询的数据库用户处于活动状态,即 第一个发送执行请求的概率很高。但是,很明显,多个操作系统用户可以在一个数据库用户下连接: