用于跟踪外部应用程序上次执行查询的自定义工具

时间:2017-11-11 07:09:33

标签: c# sql .net oracle

我正在考虑创建一个使用C#构建的自定义工具,该工具将能够连接到已连接到数据库的当前应用程序会话。

我想我的自定义工具将能够接受我的其他应用程序主动使用的会话ID。

然后,当我的自定义工具连接到该会话ID时,我将能够跟踪该应用程序上该会话ID正在执行的任何SQL命令。

关于如何实现这一目标的任何想法?

谢谢,

Hatjhie

1 个答案:

答案 0 :(得分:0)

您的监控应用程序需要以具有Oracle动态视图访问权限的用户身份进行连接。 Find out more

要监控会话,您需要v$session。要查找会话,您需要知道数据库USERNAME(或者可能是外部OSUSER或MACHINE)。会话记录将为您提供SQL_ID,您可以使用它来查询v$sqltextv$sqltext_with_newlines等视图。

默认情况下,用户无权访问V $视图。 DBA可以授予角色select_catalog_role,允许您读取所有数据字典视图,而不仅仅是V $视图。这非常强大,通常最好在特定视图上授予select。请注意,视图以下划线命名,例如v_$session