Oracle XE audit_trail 没有为所有用户保存

Oracle XE audit_trail not saving for all users

我通过 sys 用户的以下 运行 在我的 Oracle XE 服务器上启用了审计:

SQL> ALTER SYSTEM SET audit_sys_operations=true SCOPE=spfile;
SQL> ALTER SYSTEM SET audit_trail=XML,EXTENDED SCOPE=spfile;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP

当我 运行 作为 sys 用户查询时,xml 文件会在默认位置(例如 /u01/app/oracle/admin/XE/adump/xe_ora_2339_1.xml)记录查询。但是,如果我 运行 作为不同的用户进行查询(例如,test_user),adump 目录中的任何文件都不会发生更新。

我已确认为 test_user 设置了参数:

SQL> show parameter audit;
NAME                     TYPE    VALUE
------------------------ ------- ------------------------------
audit_file_dest          string  /u01/app/oracle/admin/XE/adump
audit_sys_operations     boolean TRUE
audit_syslog_level       string
audit_trail              string  XML, EXTENDED

我也尝试重新启动 sqlplus 会话(即重新连接 test_user),以及禁用 audit_sys_operations,但问题仍然存在。

版本信息:Oracle 数据库 11g 快捷版 11.2.0.2.0 版 - 64 位生产版(通过 this docker image)。

我的问题是,除了启用审核外,我还需要使用 AUDIT 命令指定要审核的内容。就我而言,我想要一切,所以我添加了以下内容(this tutorial 中提到的命令):

SQL> AUDIT ALL;  # note: it seems like the next two statements would be included with "all", but I didn't verify this.
SQL> AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE;
SQL> AUDIT EXECUTE PROCEDURE;

请注意,使用 AUDIT_TRAIL=XML、EXTENDED(可能还有所有基于文件的审计设置?),看起来有一些写入 XML 文件的缓冲,因为在我的测试用户断开连接之前我没有得到查询显示,所以如果您缺少日志条目,请尝试将用户注销以查看它是否显示。