一尘不染

Oracle SQL查询日志记录

sql

我正在使用Oracle 11g标准版。

我想将用户正在执行的所有SQL查询记录到表中。

如何才能做到这一点?


阅读 124

收藏
2021-05-05

共1个答案

一尘不染

如果您使用的是现代版本的数据库(9i或更高版本),并且您拥有企业版许可证,则可以使用细粒度审核。它使我们能够通过已定义的策略以非常低的粒度审核用户查询。

要捕获SQL文本并绑定变量,您需要在添加FGA策略时适当设置AUDIT_TRAIL参数。
了解更多


“我使用的是11g标准,因此不支持审核功能。”

不完全是。AUDIT命令是标准Oracle构建的一部分,但是它仅允许我们在给定用户针对给定表发出SELECT时捕获。但是,是的,找出到底 是什么
,他们正在选择需要企业版许可证。

另外,没有ON SELECT触发器,因此我们无法滚动自己的触发器。


“那么我可以在标准版中使用AUDIT命令吗?……但是一位顾问告诉我,如果不支付企业许可证,就无法使用它?”

我自己以顾问的身份发言,我不得不说那些家伙并不总是知道他们在说什么。

因此,让我们清楚一点:

  • AUDIT命令是Oracle SQL的一部分。它可与标准版一起使用。实际上,从11g开始,默认情况下已启用它。它审核一般活动。 了解更多
  • 细粒度审核是一个PL / SQL程序包,仅当您拥有企业版时才可用。它使我们可以在非常低的水平上审计用户活动。了解更多
2021-05-05