文档解释
ORA-47407: ALWAYS AUDIT option set for Rule Set string
Cause: The rule set audit option is set to always audit
Action: No action required
ORA-47407:Always Audit 非常使用 Oracle。这是一个数据库错误,指明规则集(Rule Set)已经设置了Always Audit选项,但实际上没有设置 对应的Always Action类型。
官方解释
ORA-47407 是指在设置一下总是触发审核事件时,没有针对此规则集定义审核动作类型。
例如:
DBMS_FGA.add_policy (
object_schema => ‘HR’,
object_name => ‘EMP’,
policy_name => ’emp_audit’,
audit_condition => ‘Sal=3000’,
audit_column => ‘Name’,
audit_trail => DBMS_FGA.DB
);
— disabling the above policy
DBMS_FGA.drop_policy(
object_schema => ‘HR’,
object_name => ‘EMP’,
policy_name => ’emp_audit’
);
上面示例代码,删除策略前需要先设置 Always Audit 选项,但是没有设置 Always Action 类型,会导致这个问题。
常见案例
1. 在删除一个审核策略时,忘记先将Always Audit 选项设置为true,或者忘记定义 Always Action 类型导致了这个错误。
一般处理方法及步骤
1. 确认并记录下此审计规则集(Rule Set);
2. 使用 DBMS_FGA.add_policy 函数或 ALTER SYSTEM SET FGA_POLICIES 命令重新设置审计策略;
3. 清理数据库审计报错,使用 DBMS_FGA.drop_policy 删除之前设置的失效策略;
4. 确认审计问题已经解决。