将会话用户的显式语句记录到Oracle 12c中的Unified Auditing

时间:2017-11-22 09:49:03

标签: database oracle audit-logging

尝试使用相对较新的Unified Auditing日志环境记录Oracle 12c数据库上特定会话用户运行的所有操作/语句。

审核政策定义如下:

CREATE AUDIT POLICY log_test
ACTIONS ALL
WHEN 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'') = ''JOSTEIN'''
EVALUATE PER SESSION;

这会运行日志语句,但它也会记录会话用户未明确运行的其他语句的 lot

有没有办法只为WHEN子句包含显式语句?

2 个答案:

答案 0 :(得分:1)

您写道:“这会运行日志语句,但它也会记录许多其他未由会话用户明确运行的语句。”

您需要从unified_audit_trail视图中查看这些其他语句“unified_audit_policies”列中的内容

答案 1 :(得分:0)

首先请确保启用统一审核

select * from v$option where PARAMETER = 'Unified Auditing';

您的创建审核策略声明是正确的,因此它应仅审核用户JOSTEIN

之后启用审核策略

audit policy log_test;

您可以查看审核政策选项,如下所示

col audit_option format A20
col policy_name format A18
select POLICY_NAME, AUDIT_OPTION, CONDITION_EVAL_OPT
from   AUDIT_UNIFIED_POLICIES
where  POLICY_NAME ='LOG_TEST';

验证您的审核政策已启用

col user_name format A10
col policy_name format A18
select POLICY_NAME, ENABLED_OPT, USER_NAME, SUCCESS, FAILURE
from AUDIT_UNIFIED_ENABLED_POLICIES
where POLICY_NAME ='LOG_TEST';

执行任何审计操作后,您可以使用

检查审计数据
col action_name format A16
col policy_name format A18
col system_privilege_used format A20
select DBUSERNAME, ACTION_NAME, SYSTEM_PRIVILEGE_USED
from unified_audit_trail
where DBUSERNAME = 'JOSTEIN';

这应该为您提供该特定用户的审核结果。

您可以使用以下链接查看更多内容

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/security/sec_uni_audit/sec_uni_audit.html