初识ORACLE数据库的审计功能.doc
文本预览下载声明
初识ORACLE数据库的审计功能
2009-02-17 10:31
顺着这样的思路去学习。1、审计可以达到怎样的效果?我用来做什么?2、任何概念都该有分类的吧,审计也不例外?3、如何启用审计?数据库一级。4、如何设定我所需要的审计?针对某个特定的监视目标了。5、如何看审计的结果?6、论坛上一些常见的问题,自己认为比较难理解的问题。初识ORACLE的审计功能顺着这样的思路去学习。1、审计可以达到怎样的效果?我要来做什么?2、有分类吗?3、如何启用审计?数据库一级。4、如何设定我所需要的审计?针对某个特定的监视目标了。5、如何看审计的结果?6、论坛上一些常见的问题,自己认为比较难理解的问题。一、审计可以达到怎样的效果?可以记录对数据库对象的所有操作。什么时候,什么用户对什么对象进行了什么类型的操作。但是无法得知操作的细节,比如到底数据更新成了1还是2?不过现在新出现的精细审计(Fine grained Auditing),好像也可以记录DML语句了。二、审计可以分为3类。或者说,可以从3种角度去启用审计。1、语句审计(Statement Auditing)。对预先指定的某些SQL语句进行审计。这里从SQL语句的角度出发,进行指定。审计只关心执行的语句。例如,audit CREATE TABLE;命令,就表明对create table语句的执行进行记录。不管这语句是否是针对某个对象的操作2、权限审计(Privilege Auditing)对涉及某些权限的操作进行审计。这里强调“涉及权限”例如,audit CREATE TABLE;命令,又可以表明对涉及“CREATE TABLE”权限的操作进行审计。所以说,在这种命令的情况下,既产生一个语句审计,又产生了一个权限审计。有时候“语句审计”和“权限审计”的相互重复的。这一点可以后面证明。3、对象审计(Object Auditing)。记录作用在指定对象上的操作。三、如何启用审计。通过数据库初始化参数文件中的AUDIT_TRAIL 初始化参数启用和禁用数据库审计。DB 启用数据库审计并引导所有审计记录到数据库的审计跟踪OS 启用数据库审计并引导所有审计记录到操作系统的审计跟踪。可以用AUDIT_FILE_DEST 初始化参数来指定审计文件存储的目录。NONE 禁用审计这个值是默认值四、如何设定所需的审计AUDIT语句。例如:审计属于用户jward 的dept 表上的所有的SELECT INSERT 和DELETE 语句AUDIT SELECT, INSERT, DELETEON jward.dept;五、控制何时触发审计动作。1)By session / By Accessby session对每个session中发生的重复操作只记录一次by access对每个session中发生的每次操作都记录,而不管是否重复。2)Whenever successful/ Whenever not successfulWhenever successful表示操作成功以后才记录下来。Whenever not successful表示操作失败后才记录下来。六、审计实施1、语句审计Audit session; Audit session By ;与instance连接的每个会话生成一条审计记录。审计记录将在连接时期插入并且在断开连接时期进行更新。保留有关会话的信息比如连接时期断开连接时期处理的逻辑和物理I/O,以及更多信息将存储在单独一条审计记录中该审计记录与会话相对应2、audit delete table2) 权限审计Audit DELETE ANY TABLEby accesswhenever not successful;所有不成功的,使用DELETE ANY TABLE权限进行的操作。3) 对象审计AUDIT SELECT, INSERT, DELETEON jward.deptBY ACCESSWHENEVER SUCCESSFUL;七、审计结果1)数据库初始化参数文件中AUDIT_TRAIL=OS时,审计记录存在操作系统的文件中。UNIX系统的话,默认存在“$oracle_home/rdbms/audit/” 目录下。If you have set AUDIT_TRAIL = OS, modify the init.ora file to specifythe destination for the audited records using the AUDIT_FILE_DEST parameter.If your ope
显示全部