Oracle SQL查询日志记录

JMW*_*JMW 16 sql oracle logging

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

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

如何才能做到这一点?

APC*_*APC 11

如果您使用的是现代版本的数据库(9i或更高版本)并且拥有Enterprise Edition许可证,则可以使用细粒度审计.它允许我们通过定义的策略以非常低的粒度级别审核用户查询.

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


"我使用的是11g标准,因此不支持审核功能."

不完全是.AUDIT命令是标准Oracle构建的一部分,但它只允许我们捕获给定用户对给定表发出SELECT的时间.但是,是的,要确切了解他们所选择的内容需要企业版许可证.

也没有ON SELECT触发器,所以我们不能自己动手.


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

作为一名顾问,我不得不说这些人并不总是知道他们在谈论什么.

所以我们要明确:

  • AUDIT命令是Oracle SQL的一部分.它可与标准版一起使用.事实上,自11g以来它默认启用.它审核一般活动. 了解更多.
  • Fine Grained Auditing是一个PL/SQL包,仅在拥有Enterprise Edition时才可用.它允许我们以非常低的级别审核用户活动.了解更多.