Oracle审计功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 程序包上的运行权限。
以上是关于Oracle审计功能的主要内容,如果未能解决你的问题,请参考以下文章