一、审计分类
Oracle中审计总体上可分为“标准审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功能得到很大增强。其中标准审计可分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。二、审计用途
通常用于以下活动:1、确保行为的准确性。包括对特定模式、表、行货影响特定内容的行为
2、根据账号探测到非预期操作的用户
3、调查可疑的活动。比如某个用户删除了表中数据,安全管理员可能决定审计数据库连接和所有成功的、不成功的对数据库中所有表的行删除操作。
4、将非授权用户的行为通知审计员。
5、监控和汇总特定数据库活动信息。比如数据库管理员收集哪些表被更新、进行了哪些逻辑i/o、当前有多少用户连接等
6、探测某个授权的问题或者控制执行。比如你可以创建审计策略,规定不要生成审计信息,因为数据通过其他方式保护。
7、这样,当有审计信息生成时,你就知道其他的安全控制失效了。
8、定位审计要求。
三、审计的内容
1、一般活动审计sql语句、权限、模式对象、函数、存储过程、包、触发器、网络活动。
比如,可以在某个用户执行update、delete语句时进行审计。
oracle将审计记录写入audit_trail初始化参数执行的位置。
2、默认的,安全相关的sql语句和权限
oracle提供的一系列默认审计设置。
结果写入audit_trail参数指定位置。
3、特定的,细粒度活动
对于特定范围的数据,比如value>7800的,特定IP的
可以将设计记录写到数据库审计跟踪或xml格式的操作系统审计跟踪中
4、sys管理用户
可以对sysdba或sysoper权限连接的用户直接指定的sql进行审计。不包括pl/sql过程、函数。
四、审计参数
1、查看参数
show parameter audit_trail;
2、参数值有四种
NONE:关闭审计功能
DB:默认值 可以通过SYS.AUD$进行查询
OS:审计信息写入到操作系统,文件路径通过audit_file_dest参数控制
DB,EXTENDED:额外记录SQL语句到SYS.AUD$.SQL_TEXT
XML:10G开始新增XML XML,EXTENDED
五、审计相关表
AUD$,默认创建在SYSTEM表空间,建议move到单独的表空间下
1、确认是否有表如果查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。
SELECT * FROM SYS.AUD$; -- 没有记录返回 SELECT * FROM DBA_AUDIT_TRAIL; -- 没有记录返回
2、安装
审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。
@$ORACLE_HOME/rdbms/admin/cataudit.sql
3、迁移审计表至其它(USERS)表空间
ALTER TABLE sys.aud$ MOVE TABLESPACE USERS; ALTER TABLE sys.aud$ MOVE LOB(sqlbind) store as(TABLESPACE USERS); ALTER TABLE sys.aud$ MOVE LOB(SQLTEXT) store as(TABLESPACE USERS); ALTER TABLE sys.I_AUD1 REBUILD tablespace USERS;