尝试使用相对较新的Unified Auditing日志环境记录Oracle 12c数据库上特定会话用户运行的所有操作/语句。
审核政策定义如下:
CREATE AUDIT POLICY log_test
ACTIONS ALL
WHEN 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'') = ''JOSTEIN'''
EVALUATE PER SESSION;
这会运行日志语句,但它也会记录会话用户未明确运行的其他语句的 lot 。
有没有办法只为WHEN子句包含显式语句?
答案 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';
这应该为您提供该特定用户的审核结果。
您可以使用以下链接查看更多内容