Oracle审计功能

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

二、标准审计
分类:
在ORACLE中分别支持以下三种标准审计类型:
    语句审计,对某种类型的SQL语句审计,不指定结构或对象。
    特权审计,对执行相应动作的系统特权的使用审计。
    对象审计,对一特殊模式对象上的指定语句的审计。
这三种标准审计类型分别对如下3方面进行审计:
    审计语句的成功执行、不成功执行,或者其两者。
    对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
    对全部用户或指定用户的活动的审计。

当数据库的审计功能打开后,在语句执行阶段产生审计记录。审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。审计记录可存在数据字典表(称为审计记录)或操作系统审计记录中。数据库审计记录是在SYS模式的AUD$表中。

三、细粒度审计:
细粒度审计 (FGA)(通过 Oracle9i 引入)可以理解为“基于政策的审计”。与标准的审计功能相反,FGA 可用于指定生成审计记录必需的条件:FGA 政策通过使用“dbms_fga”程序包以编程方式绑定到对象(表、视图)。类似于用于通过 VPD ("dbms_rls") 进行访问控制的程序包,它允许您创建任何需要的条件,例如:仅当以下条件为真时:
      在早上九点到下午六点之间或在星期六和星期日对某个表进行了访问。
      使用了公司网络外部的某个 IP 地址。
      选定或更新了特定列。
      使用了该列的特定值。

这将创建更有意义的审计线索,因为无需记录每一个人对表的每一次访问。从 Oracle 数据库 10g 开始,FGA 支持在一个策略中使用“选择”、“插入”、“更新”和“删除”语句的任意组合。事实上,绑定到表的 FGA 政策简化了审计政策的管理,因为这将只需在数据库中对其更改一次,不用在每个应用程序中一次次进行。此外。无论用户通过何种方式连接至数据库(通过应用程序、Web 接口或通过 SQL*Plus),其操作都会记录下来。  
 
 
四、细粒度审计(FGA)审计和标准审计的差异 :
    1. 标准审计必须用参数 AUDIT_TRAIL 在数据库级启用。这个参数不是动态的;你必须重启数据库来使其生效。相比而言,FGA 不需要任何参数修改。
    2. 一旦被设置在一个对象上,标准审计将保持在那里。要解除它,必须用 NOAUDIT 命令删除审计选项。这可能很不方便,因为在一个表上丢弃审计选项也将丢弃元数据信息。然而,FGA 可以临时禁用和启用,不丢失任何元数据信息。
    3. FGA 只能够处理四种类型的语句:SELECT、INSERT、UPDATE 和 DELETE。相比而言,常规审计可以处理其它许多语句和权限,甚至会话连接和断开。
    4. 标准审计每次会话只创建一条记录(按会话)或每次访问对象创建一条记录(按访问)这种占用资源很少的方式对于控制审计线索表中的空间非常重要。FGA 并不是同样节省资源;它每次访问运行一次 — 使得线索更大。
    5. 通过记录线索,标准审计可以用来检测任何中断企图,如果企图没有成功,则将产生错误代码。而 FGA 不能。
    6. 标准审计可以写数据库表或 OS 文件。后者在审计员(不是数据库管理员)能够访问线索时非常有用。在 Windows 下,非数据库审计线索记录在事件日志中,并且可以用不同的方式对其进行访问。这个选项保护了审计线索的完整性。然而,FGA 日志仅写到数据库表 FGA_LOG$ 中。可以在 FGA 中创建用户自定义的审计处理程序来写 OS 文件,但它们的完整性不能保证。
    7. 标准审计可以设置用于默认对象。当表是在运行期创建时,这个功能变得极为有用:默认的审计选项允许没有数据库管理员干预的审计。这在 FGA 中是不可能的,用户必须在一个现有的表上创建策略,上述的情况只能在表已创建之后才可能发生。
    8. 在 FGA 中,审计更加灵活 — 仅当访问某些列,当某个特定的条件为真时等等。这种多功能性在您需要控制线索的增长时非常方便。
    9. 在 FGA 中,SQL 赋值变量默认被捕获。在标准审计中,必须把初始化参数 audit_trail设为 db_extended,以启用这一功能。
    10. 权限差异:标准审计需要审计系统或语句权限;FGA 只需要 dbms_fga 程序包上的运行权限。

时间: 2024-12-14 11:59:07

Oracle审计功能的相关文章

[转]ORACLE 审计功能

审计是对选定的用户动作的监控和记录,通常用于: u          审查可疑的活动.例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计. u          监视和收集关于指定数据库活动的数据.例如:DBA可收集哪些被修改.执行了多少次逻辑的I/O等统计数据. ORACLE支持三种审计类型: u          语句审计,对某种类型的SQL语句审计,不指定结构或对象. u          特权审计,对执行相

Oracle 审计功能

一. 简介 审计(Audit)用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)..默认情况下审计是没有开启的. 审计记录包含有审计的操作.用户执行的操作.操作的日期和时间等信息. 不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连接Instanc

oracle 审计(二)

1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)..默认情况下审计是没有开启的. 当数据库的审计是使能的,在语句执行阶段产生审计记录.审计记录包含有审计的操作.用户执行的操作.操作的日期和时间等信息. 不管你是否打开数据库的审计功能,以

Oracle关闭审计功能

[[email protected] ~]# su - oracle [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 12 09:54:57 2017 Copyright (c) 1982, 2011, Oracle.  All rights reserved. Connected to: Oracle Database 11g Enterprise Edi

开启和关闭oracle数据库中的审计功能

第1步:查看审计功能是否开启?SQL> show parameter audit;NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------audit_file_dest                   string      /u01/app/oracle/admin/ORCL/adu

oracle 审计(一)

一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一种是存储在system表空间中的SYS.AUD$表中. 三.对数据库性能影响的考虑 审计必然需要占用CPU,因此,需要综合平衡审计需求与性能之间的平衡性问题,以确定出最好的审许策略. 四.审记结果中包含哪些信息 前面讲到审许结果的存储分数据库存储和文件存储两种方式.对于数据库存储的情况,SYS.AU

oracle审计

1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)中.默认情况下审计是没有开启的. 不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连接Instance:启动数据库:关闭数据库. 2.和审计相关的两个主要参数 Audit

Oracle审计--AUD$占用空间较大处理方案

Oracle 11G以后,数据库默认是开启审计功能的,因此有时候我们忘记了关闭该功能导致SYSTEM表空间暴满,但由于关闭审计功能需要重启数据库,此类操作生产环境下是不允许的,因此我们需要找出哪类审计产生的较多,然后单独的进行关闭:我们可以通过如下方法查找: 如果你发现AUD$这个表比较大了,检查下是哪种审计占的空间: SQL> select action_name,count(*) from dba_audit_trail group by action_name;一般是LOGON和LOGOF

Oracle Audit 功能的使用和说明

http://blog.itpub.net/9399028/viewspace-712457/审计(Audit) 用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD$ 表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)..默认情况下审计是没有开启的. 不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限