2017-11-11 72 views
-2

我想创建一个使用C#构建的自定义工具,它将能够连接到我已连接到数据库的当前应用程序会话。自定义工具跟踪上次执行的查询由外部应用程序

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

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

有关如何实现这一点的任何想法?

谢谢

Hatjhie

+0

非常有趣的想法。请解释你期望的具体答案,以及你有什么具体问题?这样形成的问题与SO无关。 – krokodilko

回答

0

你的监控应用将需要连接与访问Oracle的动态视图的用户。 Find out more

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

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