随后,当您在任何模式中创建表时,将对该表的 select 自动启用审计选项。要检查在数据库中当前设置的默认审计选项,请执行以下语句: SQL> select * from all_def_audit_opts;
ALT AUD COM DEL GRA IND INS LOC REN SEL UPD REF EXE FBK REA
--- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
-/- -/- -/- -/- -/- -/- -/- -/- -/- S/S -/- -/- -/- -/- -/-
注意 SEL 列下有一个值“S/S”。左侧值表示操作成功时的审计选项。此处该值为“S”,表示“会话级”。右侧部分指示操作何时失败,值也显示为“S”(也表示会话级)。由于您未指定应何时执行审计,从而为成功和失败设置了选项 - 因此值为“S/S”。
假设您要在成功时在会话级以及在失败时在访问级对 select 启用默认审计。您将执行下面的语句: SQL> audit select on default by session whenever successful;
Audit succeeded.
SQL> audit select on default by access whenever not successful;
Audit succeeded.
现在,如果您查看默认选项,则将看到以下语句: SQL> select * from all_def_audit_opts;
ALT AUD COM DEL GRA IND INS LOC REN SEL UPD REF EXE FBK REA
--- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
-/- -/- -/- -/- -/- -/- -/- -/- -/- S/A -/- -/- -/- -/- -/-
此处,请注意列 SEL,该列显示“S/A” - 表示在成功时为会话级(“S”,位于“/”的左侧),在失败时为访问级(“A”,“/”的右侧)。
当您要限制成功访问下的审计条目数时,这样的安排将比较常见,因此对成功访问启用会话级审计。但由于您要跟踪出现的每个失败访问,因此对失败启用了访问级审计。
要禁用默认审计,请执行以下语句: noaudit select on default;
稍后,您应签入 all_def_audit_opts 视图以确保实际上关闭了默认审计选项。 可能的影响 在许多审计中,始终存在性能方面的问题,但针对其中包含的信息而言,代价可能比较小。
但其中也存在一个潜在的危险。由于对随后创建的所有对象均启用了默认审计而与创建它们的用户以及从中进行选择的用户无关,因此作为 DBA 的您将无法控制表的审计选项。恶意攻击者可能会利用这种情况,他可以随意创建对象、插入到对象中、从对象中进行选择,并最终删除对象 - 而所有这些操作恰好在表空间级强制使用的份额中发生。
但由于对每个创建的对象均打开了审计,因此审计跟踪中的记录不断增多,并最终填满 AUD$ 表。由于该表位于 SYSTEM 表空间中,因此它最终将被填满并终止数据库,这实际上相当于创建了一个拒绝服务攻击!
尽管这种情况很少出现,但却完全有可能出现。幸运地是,防范方法比较简单:只需密切监视 SYSTEM 表空间。如果空间很快耗尽,请调查一下审计记录的创建为何如此之快。如果看到大量创建或选择的对象,而这些对象并不属于使用审计构建的配置文件,则必须进行调查。
作为一个立杆见影的措施,您可以关闭默认审计,然后关闭对那些填满审计跟踪条目的对象的审计(可以联机执行)。然后,在将其存储到其他表空间中的某个表之后,您应删除审计跟踪中的记录以便将来分析。 操作计划
- 确定执行哪些操作来启用默认审计。
- 确定所需的默认审计级别 - 会话级或访问级。
- 启用默认审计。
(编辑:aniston)
|