Oracle 11g Database和ASM默认的审计策略和相关操作

    这篇文章详细讨论一下Oracle 11gR2 Database中ASM实例和Database实例默认的审计策略和相关操作。

1.Oracle 11g DATABASE默认的审计策略。
    11gR2 Database的audit_trail被默认设置为DB,Oracle Database自动标准开启审计功能。下面是11g默认开启的标准审计功能:

    上图展示的第一部分是默认开启的权限审计,可以通过DBA_PRIV_AUDIT_OPTS获得开启的权限;第二部分是默认开启的语句审计,可以通过DBA_OBJ_AUDIT_OPTS获得开启的权限。

非SYSDBA、SYSOPER用户的审计记录将存放到SYSTEM表空间下的sys.aud$表中,随着时间的推移,SYSTEM表空间可能因此急剧扩张。

下面是在11g数据库实例下的操作:

SQL> show parameter audit

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

audit_file_dest                      string      /u01/app/oracle/admin/ractest/

                                                 adump

audit_sys_operations                 boolean     FALSE

audit_syslog_level                   string

audit_trail                          string      DB

SQL> select userid,count(1) from aud$ group by userid;

USERID                           COUNT(1)

------------------------------ ----------

PUBLIC                                 49

TEST                                    2

SYSTEM                                954

SCOTT                                   1

DBSNMP                               6189

SYSMAN                              43371

SOE                                   122

GGATE                                  70

8 rows selected.

SQL> select owner,segment_name,bytes/1024/1024 mb from dba_segments where segment_name='AUD$';

OWNER

------------------------------

SEGMENT_NAME

--------------------------------------------------------------------------------

        MB

----------

SYS

AUD$

        13

    5万条审计记录占据了13M的空间。

    从上面的结果可以看出,11gR2的数据库实例默认将audit_trail设置为DB,审计除了SYSDBA、SYSOPER权限用户以外的其他用户特定操作。

2.对SYSDBA和SYSOPER进行审计。

对SYSDBA和SYSOPER的审计具有如下的特点:
1).审计线索必须存储在数据库外部。
2).始终会对以SYSDBA或SYSOPER身份执行的连接进行审计。
3).可使用AUDIT_SYS_OPERATIONS启用对SYSDBA或SYSOPER操作的附加审计。
4).可使用AUDIT_FILE_DEST控制审计线索。

    无论是远程或本地SYSDBA、SYSOPER权限用户登录都会在audit_file_dest指定的目的地生成相应审计文件,记录登录信息。Windows平台SYSDBA权限用户的审计记录会被写到事件查看器中。

    下面讨论一下AUDIT_SYS_OPERATIONS和AUDIT_TRIAL两个初始化参数的含义:

AUDIT_SYS_OPERATIONS

Property Description
Parameter type Boolean
Default value false
Modifiable No
Range of values true | false
Basic No

AUDIT_SYS_OPERATIONS enables or disables the auditing of top-level operations, which are SQL statements directly issued by users when connecting with SYSDBAor SYSOPER privileges. (SQL statements run from within PL/SQL procedures or functions are not considered top-level.) The audit records are written to the operating system's audit trail. The audit records will be written in XML format if the AUDIT_TRAIL initialization parameter is set to xml or xml, extended.

On UNIX platforms, if the AUDIT_SYSLOG_LEVEL parameter has also been set, then it overrides the AUDIT_TRAIL parameter and SYS audit records are written to the system audit log using the SYSLOG utility.

    audit_sys_operations参数为false时,系统只以os文件记录sysdba身份的登录、开关数据库的操作。

    audit_sys_operations参数为true时,系统以os文件记录sysdba身份的登录、开关数据库的操作,以及其它辅助的操作。

下面是该参数的例子:

a).audit_sys_operations=false生成的审计记录:



Audit file /u01/app/oracle/admin/ractest/adump/ractest2_ora_21523_1.aud




Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production




With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,




Data Mining and Real Application Testing options




ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1




System name:    Linux




Node name:      rhel2.localdomain




Release:        2.6.18-164.el5xen




Version:        #1 SMP Tue Aug 18 15:59:52 EDT 2009




Machine:        x86_64




VM name:        Xen Version: 3.1 (PVM)




Instance name: ractest2




Redo thread mounted by this instance: 2




Oracle process number: 69




Unix process pid: 21523, image: oracle@rhel2.localdomain (TNS V1-V3)










Tue May 21 12:44:08 2013 +08:00




LENGTH : '160'




ACTION :[7] 'CONNECT'




DATABASE USER:[1] '/'




PRIVILEGE :[6] 'SYSDBA'




CLIENT USER:[6] 'oracle'




CLIENT TERMINAL:[5] 'pts/0'




STATUS:[1] '0'




DBID:[10] '3282490722'










Tue May 21 12:44:44 2013 +08:00




LENGTH : '150'




ACTION :[8] 'SHUTDOWN'




DATABASE USER:[1] '/'




PRIVILEGE :[6] 'SYSDBA'




CLIENT USER:[6] 'oracle'




CLIENT TERMINAL:[5] 'pts/0'




STATUS:[1] '0'




DBID:[0] ''










    只对SHUTDOWN和STARTUP进行记录。





b).audit_sys_operations=true生成的审计记录:




Audit file /u01/app/oracle/admin/ractest/adump/ractest2_ora_23473_1.aud




Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production




With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,




Data Mining and Real Application Testing options




ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1




System name:    Linux




Node name:      rhel2.localdomain




Release:        2.6.18-164.el5xen




Version:        #1 SMP Tue Aug 18 15:59:52 EDT 2009




Machine:        x86_64




VM name:        Xen Version: 3.1 (PVM)




Instance name: ractest2




Redo thread mounted by this instance: 2




Oracle process number: 86




Unix process pid: 23473, image: oracle@rhel2.localdomain (TNS V1-V3)










Tue May 21 12:58:55 2013 +08:00




LENGTH : '160'




ACTION :[7] 'CONNECT'




DATABASE USER:[1] '/'




PRIVILEGE :[6] 'SYSDBA'




CLIENT USER:[6] 'oracle'




CLIENT TERMINAL:[5] 'pts/1'




STATUS:[1] '0'




DBID:[10] '3282490722'










Tue May 21 12:58:55 2013 +08:00




LENGTH : '159'




ACTION :[6] 'COMMIT'




DATABASE USER:[1] '/'




PRIVILEGE :[6] 'SYSDBA'




CLIENT USER:[6] 'oracle'




CLIENT TERMINAL:[5] 'pts/1'




STATUS:[1] '0'




DBID:[10] '3282490722'










Tue May 21 12:58:55 2013 +08:00




LENGTH : '159'




ACTION :[6] 'COMMIT'




DATABASE USER:[1] '/'




PRIVILEGE :[6] 'SYSDBA'




CLIENT USER:[6] 'oracle'




CLIENT TERMINAL:[5] 'pts/1'




STATUS:[1] '0'




DBID:[10] '3282490722'










Tue May 21 12:59:11 2013 +08:00




LENGTH : '184'




ACTION :[30] 'select count(1) from v$process'




DATABASE USER:[1] '/'




PRIVILEGE :[6] 'SYSDBA'




CLIENT USER:[6] 'oracle'




CLIENT TERMINAL:[5] 'pts/1'




STATUS:[1] '0'




DBID:[10] '3282490722'



    对简单的SELECT操作也会记录。

注意:
    1).数据库实例的启动过程会产生多个审计文件,频繁的启停会产生大量的审计文件。 
    2).以上对SYS用户的审计特性在10g的数据库就已经存在。

AUDIT_TRAIL

Property Description
Parameter type String
Syntax AUDIT_TRAIL = { none | os | db [, extended] | xml [, extended] }
Default value none
Modifiable No
Basic No

AUDIT_TRAIL enables or disables database auditing.

Values:

  • none

    Disables standard auditing. This value is the default if the AUDIT_TRAIL parameter was not set in the initialization parameter file or if you created the database using a method other than Database Configuration Assistant. If you created the database using Database Configuration Assistant, then the default is db.

  • os

    Directs all audit records to an operating system file. Oracle recommends that you use the os setting, particularly if you are using an ultra-secure database configuration.

  • db

    Directs audit records to the database audit trail (the SYS.AUD$ table), except for records that are always written to the operating system audit trail. Use this setting for a general database for manageability.

    If the database was started in read-only mode with AUDIT_TRAIL set to db, then Oracle Database internally sets AUDIT_TRAIL to os. Check the alert log for details.

  • db, extended

    Performs all actions of AUDIT_TRAIL=db, and also populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$ table, when available. These two columns are populated only when this parameter is specified.

    If the database was started in read-only mode with AUDIT_TRAIL set to db, extended, then Oracle Database internally sets AUDIT_TRAIL to os. Check the alert log for details.

  • xml

    Writes to the operating system audit record file in XML format. Records all elements of the AuditRecord node except Sql_Text and Sql_Bind to the operating system XML audit file.

  • xml, extended

    Performs all actions of AUDIT_TRAIL=xml, and populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$ table, wherever possible. These columns are populated only when this parameter is specified.

You can use the SQL AUDIT statement to set auditing options regardless of the setting of this parameter.

注意:audit_syslog_level参数只在unix和Linux平台存在。

3.ASM默认的审计策略。

下面是在ASM实例下的操作:

SQL> show parameter audit

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

audit_file_dest                      string

/u01/app/11.2.0/grid/rdbms/aud

it

audit_sys_operations                 boolean

FALSE

audit_syslog_level                   string

    可以注意到ASM实例参数中没有包含audit_trail参数,ASM实例的所有审计记录只能被写到audit_file_dest参数指定的目的地。

    与Oracle数据库实例相同,以sysasm、sysdba登录到ASM实例都会在audit_file_dest目录下生成相应的审计文件,过于频繁的登录ASM实例将产生大量的审计文件。

4.默认审计功能的管理。

1).关闭Database审计功能。
    将数据库实例的audit_trail设置为none,重启数据库实例即可关闭数据库实例对非SYSDBA、SYSOPER权限用户的审计功能;该设置并不能关闭对SYSDBA权限用户的审计,SYSDBA权限用户登录依然会在audit_file_dest指定目录下生成相应的审计文件。

2).关闭ASM审计功能。
    同样没法关闭对以SYSASM和SYSDBA、SYSOPER登录用户的审计。

3).迁移AUD$表。
    AUD$表默认被存放到SYSTEM表空间下,频繁的登录会导致SYSTEM表空间较快扩大,最终可能影响数据库系统的正常运行。参考如下文章:http://yangtingkun.itpub.net/post/468/496990可完成对AUD$表的迁移。

4).AUD$表记录的清除操作。
    AUD$表可以被直接TRUNCATE,也可以参考如下文章:http://yangtingkun.itpub.net/post/468/498990清除部分AUD$表数据。可以创建并调度JOB对AUD$表进行自动化的清理。

--end--

时间: 2024-09-03 03:25:43

Oracle 11g Database和ASM默认的审计策略和相关操作的相关文章

oracle 11g asm 磁盘组兼容属性

   从oracle 11g版本开始,asm磁盘组会有两个新属性来兼容asm版本和数据库版本 COMPATIBLE.ASM - The minimum version of the ASM software that can access the disk group. In 11g, the default setting is 10.1. COMPATIBLE.RDBMS - The minimum COMPATIBLE database initialization parameter s

JDBC 连接 Oracle 11g Release 2

/********************************************************************************** * Created on Nov, 2011 Copyright(c) http://vigilance.co.in All Rights Reserved. ***********************************************************************************/ p

java基于JDBC连接Oracle 11g Release2实例分析

  本文实例讲述了java基于JDBC连接Oracle 11g Release2的方法.分享给大家供大家参考.具体如下: Oracle 11g Release 2 的 JDBC 连接似乎有所不同 ,如果你收到下面的异常: Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

Oracle 11g 审计跟踪管理

在Oracle11g之前,oracle数据库自带的审计功能是关闭的,考虑到性能和审计管理的复杂性,用户一般不打开审计功能.如果有审计要求,DBA会采用trigger来实现对DDL审计的方法来折中.例如类似下面代码实现: create or replace trigger sys.ddl_trigger after DDL on database BEGIN insert into event_table values (ora_sysevent, ora_login_user, ora_inst

oracle 11g ASM 磁盘组在线扩容实验:

oracle 11g ASM磁盘组扩容实验: 该主机为我经常用的测试机,因为为了顺便学习ASM,底层存储使用的是ASM的方式,但是以前规划的时候磁盘组只有4G,由于数据文件增加,导致没有可用的空间.所以,模拟生产环境做了ASM在线扩容的实验. 建议在做之前,对数据库进行备份. ---------------------------------------1.主机和数据库环境--------------------------------------- SQL> select * from v$v

Oracle 11g RAC安装时的INS-30507错误:Empty ASM disk group

最近的Oracle 11g RAC安装碰到了INS-30507错误,也就是在grid安装到创建ASM磁盘组的时候找不到任何候选磁盘,google了N多安装指导也没有找到蛛丝马迹.如果你碰到这个问题,不妨往下瞧. 1.错误信息与解释 SEVERE: [FATAL] [INS-30507] Empty ASM disk group. CAUSE: No disks were selected from a managed ASM disk group. ACTION: Select appropri

oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形

oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形  Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形.即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用.GSD则是用于支持dbca,srvctl,oem等的交互工具.本文描述将这两个服务切换到online. 1.环境    [root@linux2 ~]# cat /etc

Oracle 11g R2 手动建库(create database manually)

      手动创建数据库是DBA们经常遇到的情形,因为有些情况下无法提供GUI环境.实际上手动建库,只要设置好了相关的参数或值,也是非常方便的.本文基于Oracle 11g首先描述了手动建库的大致步骤并给出示例演示.最后提供了一个shell脚本直接执行来实现手动建库.在执行前该脚本可根据你的路径进行适当的修改.   一.手动建库大致步骤    设置环境变量.bash_profile    创建参数文件(位置:$ORACLE_HOME/dbs)    创建目录结构    执行建库脚本   二.手

Oracle 11g的新特性

Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Information Lifecycle Management)等多项创新. 一.新特性提纲 1.数据库管理部分 ◆数据库重演(Database Replay) 这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果. ◆SQL重演(S