本文共 3238 字,大约阅读时间需要 10 分钟。
oracle审计主要用于记录用户对数据库所做的操作,基于配置的不同,审计的结果会放在操作系统文件中或者系统表中,默认情况下,使用管理员权限连接实例,开启及关闭数据库是会强制进行审计的,其它的基础的操作则没有进行审计,在一些安全性要求比较高的环境是需要做一些审计的配置的,下文简单介绍一下oracle中审计的配置方法,几种审计方法的不同,以及如何对管理员进行审计.
一。oracle中审计的配置: 1.审计相关的三个重要参数: a.audit_file_dest:指定审计文件存放的位置: b.audit_trail:指定审计的类型: none:为系统默认值,不进行审计 DB:将审计结果放在数据库表中,aud$,通常只记录连接的信息. DB_EXTENDED:将审计结果放在数据库表中,记录具体执行语句 OS:将审计结果记录在操作系统文件中,文件位置由audit_file_dest参数指定,(windows系统中将直接在事件查看器的系统日志中记录) XML:将审计结果记录在audit_file_dest指定位置下的XML文件中。 c.audit_sys_operations:是否对sysdba用户做审计 ,关于sysdba用户审计的结果,linux存放在audit_file_dest参数指定位置的aud文件中,windows存放在事件查看器的系统日志中2.审计的级别:
开启审计后,可在statement语句、privilege权限和object对象级别对数据库进行审计。 a.statement:按语句来审计如audit table xxx; b.privilege:按权限来审计,如audit select any table c.object:按对象来审计,如audit all on hr.employees by HR,只会对hr用户对employees表执行的操作做审计 3.审计的其它相关选项: by access 每个被审计的操作都会生成一条记录 by session 默认值,每个会话里同类型操作只会生成一条audit trail whenever successful:操作成功才审计 whenever not successful:操作不成功才审计 4.查询审计结果的视图 dba_audit_trail:查看所有的普通审计记录 dba_fga_audit_trail:查看所有细粒度审计记录 sys.aud$审计结果实际存放的系统表 5.取消审计: noaudit select any table 6.开启审计方法 a.查看参数 SQL> show parameter auditNAME TYPE VALUE
------------------------------------ ----------- ------------------------------ audit_file_dest string /u01/oracle/product/admin/orcl /adump audit_sys_operations boolean FALSE audit_syslog_level string audit_trail string NONE b.设置审计类型并重启数据库 SQL> alter system set audit_trail = db_extended scope=spfile;System altered.
c.审计用户对表操作 SQL> audit table ;Audit succeeded.
d.切换用户后创建表 SQL> connect Connected. SQL> create table audtest (id int);Table created.
e.管理员登录查看审计结果 SQL> connect as sysdba Connected. SQL> select username,sql_text from dba_audit_trail;USERNAME
------------------------------ SQL_TEXT -------------------------------------------------------------------------------- TEST create table audtest (id int) f.审计系统管理员操作 SQL> alter system set audit_sys_operations= true scope=spfile;System altered.
SQL> connect as sysdba Connected. SQL> create table systest (id int);Table created.
SQL> connect as sysdba Connected. SQL> create table systest (id int);Table created.
SQL> create table systest1 (id int);
Table created.
g.查看系统管理员审计结果 Audit file /u01/oracle/product/admin/orcl/adump/ora_5895.aud Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options ORACLE_HOME = /u01/oracle/product/10.2/db1 System name: Linux Node name: oracle1 Release: 2.6.9-55.ELsmp Version: #1 SMP Fri Apr 20 17:03:35 EDT 2007 Machine: i686 Instance name: orcl Redo thread mounted by this instance: 1 Oracle process number: 20 Unix process pid: 5895, image:Mon Mar 28 23:03:28 2011
ACTION : 'CONNECT' DATABASE USER: 'sys' PRIVILEGE : SYSDBA CLIENT USER: Administrator CLIENT TERMINAL: PC-20090718IUGM STATUS: 0Mon Mar 28 23:03:42 2011
ACTION : 'create table systest (id int)' DATABASE USER: 'sys' PRIVILEGE : SYSDBA CLIENT USER: Administrator CLIENT TERMINAL: PC-20090718IUGM STATUS: 0Mon Mar 28 23:08:09 2011
ACTION : 'create table systest1 (id int)' DATABASE USER: 'sys' PRIVILEGE : SYSDBA CLIENT USER: Administrator CLIENT TERMINAL: PC-20090718IUGM STATUS: 0 "ora_5895.aud" 38L, 995C本文转自ttzztt 51CTO博客,原文链接:http://blog.51cto.com/tianzt/529827,如需转载请自行联系原作者