oracle11g新特性有哪些,oracle11G新特性

本文详细介绍了Oracle数据库的审计功能,包括审计的定义、级别、参数和视图,以及如何开启和关闭审计。此外,还提到了11G版本中审计路径和用户密码安全性的变化,如审计文件的位置调整、控制文件的存储路径以及用户密码加密和管理的增强。文章强调了审计在数据库安全性中的重要角色,并提供了配置审计的实例。
摘要由CSDN通过智能技术生成

Normal

0

7.8 磅

0

2

false

false

false

EN-US

ZH-CN

X-NONE一.审计

1.审计简介

1)什么是审计及作用

审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin /$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查 看)中。

在oracle11g中,审计功能(AUDIT_TRAIL)是默认开启的。而以前的版本中,审计默认是关闭的。

因为开启审计,那么,数据库增加了很多的消耗。会降低业务性能,因此,如果不是很必要,在安装好数据库后,可适当选择关闭数据库审计功能。

2.和审计相关的几个主要参数

audit_trail: None:

不做审计;DB:是默认值,,将audit

trail记录在数据库的审计相关表中,

如aud$,审计的结果只有连接信息;DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具

体语句;OS:将audit trail记录在操作系统文件中,文件名由

audit_file_dest参数指定;XML:10g里新增的。

Audit_sys_operations:默认为false,当设置为true时,所有sys用户(包括以

sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。

3.审计级别

当开启审计功能后,可在三个级别对数据库进行审计:Statement(语句)、Privilege(权限)、object(对象)。

Statement:按语句来审计,比如audit table会审计数据库中所有的create

table,drop table,truncate table语句,

alter session by user;会审计user用户所有的数据库连接。这里我们可以看到,对语句的审计也是分用户的。

Privilege:按权限来审计,当用户使用了该权限则被审计,如执行grant select any table to a,当执行了

audit select any table

这条语句后,当用户a访问了用户b的表时(如select * from b.t)会用到select any table权限,故会被审计。注意用户是自己表的所有者,所以用户访问自己的表不会被审计。

Object:按对象审计,只审计on关键字指定对象的相关操作,如aduit,alter,delete,drop,insert on cmy.t by scott;这里会对cmy用户的t表进行审计,但同时使用了by子句,所以只会对scott用户发起的操作进行审计。注意Oracle没有提供对schema中所有 对象的审计功能,只能一个一个对象审计,对于后面创建的对象,Oracle则提供on default子句来实现自动审计,比如执行audit drop on default by access;后,

对于随后创建的对象的drop操作都会审计。但这个default会对之后创建的所有数据库对象有效,似乎没办法指定只对某个用户创建的对象有效,想比trigger可以对schema的DDL进行“审计”,这个功能稍显不足。

2)审计的一些其他选项

by

access / by session:by access每一个被审计的操作都会生成一条audit trail。by session一个会话里面同类型的操作只会生成一条audit trail,默认为by session。

whenever

[not] successful:whenever successful操作成功(dba_audit_trail中returncode字段为0)才审计,

whenever not successful反之。省略该子句的话,不管操作成功与否都会审计。

4.和审计相关的视图

dba_audit_trail:保存所有的audit trail,实际上它只是一个基于aud$的视图。其它的视图dba_audit_session,dba_audit_object,dba_audit_statement都只是dba_audit_trail的一个子集。dba_stmt_audit_opts:可以用来查看statement审计级别的audit options,即数据库设置过哪些statement级别的审计。dba_obj_audit_opts,dba_priv_audit_opts视图功能与之类似all_def_audit_opts:用来查看数据库用on default子句设置了哪些默认对象审计。

5.审计的开启与关闭

修改参数文件开启审计功能,自由控制审计级别。

开启数据库审计:

Ø11g以后版本中不允许动态修改初始化参数,需要修改参数文件,将 audit_trail参数值修改为 ‘db’,’db,extended’,’os’,’xml’其中一个。

Ø11g以前的版本,可以动态修改初始化参数,如:

ALTER

SYSTEM SET audit_trail=db,extended SCOP=SPFILE;

开启管理用户的审计:

Alter system

set audit_sys_operations=TRUE scope=spfile;

关闭审计

11g中,将对应审计语句的audit改为noautdit,如audit

session whenever successful对应的取消审计语句为noaudit session

whenever successful;

或者,修改参数文件中:audit_trail参数为’none’,这样就不会做任何审计相关的操作。

Alter system set audit_trail=’none’;

二.需要注意的文件路径的变化

11G版本中,数据库文件的存储路径有所变化,不知道的,会很难找到。

这些文件包括:最重要的是告警日志,监听日志,控制文件数量及存储目录也有所变化。

1.日志文件路径

11G中,alert日志存储在

’$ORACLE_BASE/diag/rdbms/db_name/$ORACLE_SID/trace/’目录下。

9i,10G中alert日志存储在’/$ORACLE_BASE/admin/$ORACLE_SID/bdump/’下

2.控制文件路径

11G中控制文件只有两个文件,一个使用中的控制文件,一个映像文件。

9i,10G中控制文件有三个文件,一个使用中的控制文件,两个映像文件。

11G中,控制文件存储路径:

$ORACLE_BASE/oradata/$ORACLE_SID/control#.ctl

$ORACLE_BASE/flash_recovery_area/$ORACLE_SID/control#.ctl

9i,10G中控制文件存储路径

$ORACLE_BASE/oradata/$ORACLE_SID/control#.ctl

11G版本前,控制文件默认存放于$ORACLE_BASE/oradata/下。11G以后,对于控制文件的安全性加强了保护,将控制文件分别存储于不同的目录下,别一个映像的存储于闪回区。

三.用户密码安全

Oracle对用户密码有很强的保护意识,其加密方式 是对user_name+password进行hash运算加密,而不单单是对密码进行了加密。用户登录时,用户名及密码作为一个整体经过转译进行鉴权,验证用户是否有权进行登录操作。

数据库在安装的时候,如果没有指定用户密码,安装程序会赋予用户一个默认密码。

11G这一系列版本中,用户密码出现以下新特性:

Ø在11G以前,我们可以通过视图查看到用户密码的加密串,11G以后已经看不到了。

Ø用户名密码开始区分大小写。

10G中,只有使用alter user identified by‘***’才会区分大小写。

9i中,大小

写不进行区分。

Ø口令可以包含未用引号括起来的多字节字符。如果口令包含除$、_或#外的任何特殊字符,则必须用引号括起来。

1)默认密码

在安装数据库时,如果没有设置用户密码那么常用

的几个用户都是有自己默认密码的,详细情况如下:

用户名/密码

登录身份

说明

sys/change_on_install

SYSDBA或SYSOPER

不能以NORMAL登录,可作为默认的系统管理员

system/manager

SYSDBA或NORMAL

不能以SYSOPER登录,可作为默认的系统管理员

sysman/oem_temp

sysman

为oms的用户名

scott/tiger

NORMAL

普通用户

aqadm /aqadm

SYSDBA或NORMAL

高级队列管理员

Dbsnmp/dbsnmp

SYSDBA或NORMAL

复制管理员

2)查看哪些用户在使用默认密码

select*fromdba_users_with_defpwd;

视图dba_users_with_defpwd顾名思义,可以了解到,这里面存储的是仍旧使用默认密码的用户。

但是使用非默认密码的用户的密码,是可以通过sys.user$来查看的。

3)修改用户密码

ALTER USER user_nameIDENTIFIED BY password

;

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

使用区分大小写的口令: sec_case_sensitive_logon={true | false}

防止 DoS 攻击: sec_protocol_error_further_action={CONTINUE| (DELAY,integer) | (DROP,integer) }

CONTINUE : 这是默认值,就不是進行任何处理

DROP : 去除使用者的登入权限

DELAY : 延长使用者的再入登入的间隔时间,单位是秒

sec_protocol_error_trace_action={ NONE |TRACE| LOG | ALERT }

NONE : 沒有动作

TRACE : 默认值,写入trace中

LOG : 写入alert log中

ALERT : 由dba手动或OEM中设定alert信息

防止强力攻击: sec_max_failed_login_attempts={10|1 to unlimited}

可设定不回传oracle版本相关的信息:sec_return_server_release_banner={true | false}

-----------------------------   THE END   -------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值