【DB笔试面试830】在Oracle中,审计有哪些分类?

2020-06-24 15:12:14 浏览数 (1)

题目部分

【DB笔试面试830】在Oracle中,审计有哪些分类?

答案部分

Oracle中审计总体上可分为标准审计(Standard Auditing)、基于值的审计(Value-Based Auditing)和细粒度审计(Fine-Grained Auditing),细粒度审计也称为“基于政策的审计”,在Oracle 10g之后功能得到很大增强。其中,标准审计可分为用户级审计和系统级审计。用户级审计是任何Oracle用户都可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其它数据库级权限下的操作。

在Oracle中分别支持以下三种标准审计类型,或者说,可以从3个角度去启用审计:

① 语句审计(Statement Auditing),对某种类型的SQL语句审计,不指定结构或对象。审计SQL语句的成功执行或不成功执行。这里从SQL语句的角度出发,进行指定。审计只关心执行的语句。例如,AUDIT CREATE TABLE语句,其中,AUDIT为使用审计的关键字。该语句表示对CREATE TABLE语句的执行进行记录,不管这条语句是否为针对某个对象的操作。

② 权限审计(Privilege Auditing),对执行相应动作的系统特权的使用审计,对涉及某些权限的操作进行审计,这里强调“系统权限”,例如,“AUDIT CREATE TABLE;”命令,可以表明对涉及“CREATE TABLE”权限的操作进行审计。所以,在这种命令的情况下,既产生一个语句审计,又产生了一个权限审计。有时候语句审计和权限审计是相互重复的。

③ 对象审计(Object Auditing),对一特殊模式对象上的指定对象的审计。对一个特殊模式对象上的DML语句进行审计。记录作用在指定对象上的操作。例如,AUDIT SELECT ON SCOTT.DEPT语句,表示指定SCOTT用户的DEPT表,审计对其进行的SELECT语句。

图 3-24 审计的分类

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

0 人点赞