2011-02-17 54 views
3

我正在使用Oracle SQL Dev 2.1.1.64如何监视和记录所有SQL插入命令

我使用的是使用oracle数据库进行存储的应用程序。 SQL Dev中是否有任何方法?监视并记录从Web应用程序进入数据库的所有插入命令?你能告诉我该怎么做吗?

回答

1

您可以为要监视的表编写触发器。如果您是只有对来自Web应用程序的插入查询感兴趣,则可以检查触发器以查找访问表的某个特定用户名/架构,并将该用户名用作您的Web应用程序凭据。

或者,您也可以使用Oracle的AUDIT feature。它需要一点点的Oracle数据库管理知识来实现​​,虽然...

1

您可以查询v $ SQL,但您需要有相关的GRANTS才能让您执行此操作。

对于长时间运行的会话还可以监控使用V $ SESSION_LONGOPS

希望这可以帮助你进步。

4
audit insert table by <web-application-user> by access 

应该让你开始。

请务必根据需要设置参数audit_trailaudit_file_dest

之后,您可以在sys.aud$audit_file_dest指定的目录中找到操作。

也有fine grained auditing你可能会看看,但从你的问题来看,使用细粒度审计(FGA)似乎是矫枉过正。

0

创建写入数据时表中的变化发生在一个日志表的触发器(插入,更新,删除)。 删除之前,插入之后,更新后触发器是你想要的。

它不会专门记录Web应用程序,但如果您记录用户进行更改,您将能够在查看数据时对其进行过滤。