【OCP最新题库解析(052)–题34】You want to audit update statements that

  • 2019 年 10 月 10 日
  • 笔记

Q

题目

You want to audit update statements that refer to USER1.DEPT.DNAME.Which type of auditing must you use?

A. standard auditing

B. mandatory auditing

C. value-based auditing

D. fine-grained auditing

A

答案

Answer:D

进行数据库审计时会记录审计对象中发生的插入、更新和删除操作,但是不会捕获更改的实际值。要扩展数据库审计,可使用基于值的审计,利用数据库触发器(事件驱动的PL/SQL 构造)来捕获更改的值。

用户在连接了相应触发器的表中插入、更新或删除数据时,触发器在后台将审计信息复制到包含审计信息的表中。因为审计触发器代码在每次插入、更新或删除操作发生时都必须执行,所以与标准数据库审计相比,使用基于值的审计时,性能下降幅度比较大。性能下降幅度取决于触发器代码的效率。只在标准数据库审计捕获的信息不足的情况下,才使用基于值的审计(value-based auditing)。

基于值的审计由用户或第三方代码实施。Oracle DB提供了可用来构建基于值的审计系统的 PL/SQL 构造。基于值的审计的关键部分是审计触发器,这是一个单纯为了捕获审计信息而构造的PL/SQL 触发器。

数据库审计会记录已发生某个操作这一事实,但是不会捕获关于导致操作的语句的信息。细粒度审计(FGA)扩展了审计功能,可捕获查询或处理数据的实际SQL语句

与标准数据库审计或基于值的数据库审计相比,FGA将重点审计的范围设置得更窄。可将FGA选项设置为按表或视图中的各个列进行审计,还可将其设置为条件选项,以便只在符合管理员定义的特定规范时才捕获审计。FGA策略支持多个相关列。默认情况下,如果其中任何一列出现在SQL语句中,就会审计该语句。通过使用DBMS_FGA.ALL_COLUMNS和DBMS_FGA.ANY_COLUMNS,可对语句中是否使用了任何或全部相关列来进行审计。

可使用DBMS_FGA PL/SQL程序包来创建对目标表或视图的审计策略。如果查询块中返回的任何行与审计列和指定的审计条件相匹配,则审计事件会导致在审计线索中创建并存储审计记录。此外,审计事件还可执行某个过程。FGA自动将审计重点放在语句级别。一个SELECT语句会返回数千行,但只生成一条审计记录。