Oracle数据库安全解决方案及技术综述

Oracle 数据库安全解决方案及技术综述

学 院:

专 业: 学 号:

学生姓名: 指导教师: 日 期:

电子与信息工程学院 xxxxxxxx xxxxxx xxxxx xxxxxx xxxxxxx

Oracle 数据库安全解决方案及技术综述 1. 背景介绍

随着网络技术的飞速发展。网络安全问题日渐突出。数据库技术自20世纪60年代产生至今,也已得到了快速的发展和广泛应用,数据库中由于数据大量集中存放,且为众多用户直接共享,安全性问题尤为突出。

数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。经过几十年的发展,数据库技术在理论上得到不断完善的同时,也广泛地投入到财务、教育、电子政务、金融等领域中得到大规模的应用。目前,市场上不仅有能满足个人用户需要的桌面小型数据库管理系统,也有能提供大规模数据管理功能、应用在网络环境的大中型数据库管理系统。 2. 数据库系统安全概述

◆ 安全威胁

当前对数据库的主要安全威胁有物理威胁和逻辑威胁:①物理威胁主要是像 各种外力,如:恐怖事件,火灾等造成的数据库服务器故障或数据库中存储介质的损坏造成的数据丢失。②逻辑威胁主要是指对信息的未授权存取,如:恶意用户侵入某银行数据库系统窃取信用卡数据信息。

◆ 数据库安全技术

目前对数据库安全物理威胁的主要解决方案包括数据备份/恢复、数据导入/导出、数据库的灾难恢复,计算机的集群和磁盘阵列等技术,在此本文不进行讨论。本文以Oracle 数据库为例阐述对逻辑威胁的主要解决方法,包括身份认证、存取控制、网络加密、数据加密、审计等技术。

◆ 数据库系统的安全需求

数据库的完整性主要包括物理完整性和逻辑完整性。物理完整性主要包括物理完整性和逻辑完整性。物理完整性是指保证数据库的数据不受物理故障,如硬件故障、掉电的影响,并有可能在灾难毁坏时重建和恢复数据库。逻辑完整性是指对

数据库逻辑结构的保护,包括数据的语义完整性和操作完整性。前者主要指数据存取在逻辑上满足完整性约束,后者主要指在并发事务中保证数据的逻辑一致性。数据库的保密性指不允许未经授权的用户存取数据;数据库的可用性则是指不应拒绝授权用户对数据库的正常操作,同时保证系统的运行效率并提供用户友好的人机交互。

一般而言,数据库的保密性和可用性是一对矛盾。对这一矛盾的分析与解决构成了数据库系统的安全模型和一系列安全机制的主要目标。

数据库系统的安全需求

3. Oracle 的安全策略

3.1系统安全性策略

系统安全策略的定义[1]为:系统安全策略是数据库系统为达到安全目标和相应的安全级别所定义的安全技术、方法、机制的总和。DBMS 将系统安全策略体现在其软件之中,最后由DBA 给予实现,主要体现在安全管理。Oracle9i 的系统安全策略主要功能如下:

(1) 系统与数据的安全性策略

数据库用户管理(DBU) 。数据库主要是由 DBU 访问的。DBA 可授权DBU 应用Create 、Alter 、Drop 语句对数据库对象的操作权限,用户身份验证。数据库用户可以通过操作系统、 网络服务、 数据库或者安全套接字层SSL 进行身份确认。

(2) 操作系统(IOS 安全性

由于Oracle 数据库和应用程序是运行在网络操作系统(NOS )之上,然后进行 安全认证的。所以前两者的安全性需要与操作系统安全一同考虑。DBA 必须具有对NOS 的文件进行Create 和Delete 的权限而数据库用户却不具有。如果操作系统为数据库用户分配角色,则DBA 必须有修改操作系统账户安全区域的操作系统权限。

3.2 用户验证 :

Oracle 采用数据库验证、外部验证和企业验证三种用户验证方式。 ✧ 数据库验证

当创建用户和指定口令时,便使用数据库验证,同时具有了口令管理能力。Oracle 通过在一个概要文件中设置参数并把该文件分配给一个用户的方式来实现的。一个概要文件可以限制会话的数量、每个会话使用的CPU 时间、调用次数、读的次数、空闲时间以及连接时间。概要文件可以防止破坏者利用所有的资源以拒绝服务的攻击方式破坏系统。

✧ 外部验证

外部验证是指在Oracle 之外的验证,即网络操作系统(NOS )和网络验证服务。使用外部验证后在Oracle 就无需再验证。若选此项,则在init.ora 文件设置相关参数通知 Oracle 。使用 NOS 进行验证的优点是,用户更快更方便地连接数据库;对用户验证进行集中控制;用户信息只有一份副本并保存在NOS 中,Oracle 中无需保存,当然两者用户应是相同的,同时审计信息只保存在NOS 中。网络验证服务属于高级安全技术。主要应用网络安全服务,例如 Kerberos 或PKI 等。

✧ 企业验证

企业验证应用于网络环境下的分布式数据库。分布式环境存在多个数据库服务器,它们组成资源的总和定义为全局资源。可以使用全局资源(任何一个数据库服务器)的用户定义为全局用户。企业验证是全局用户使用全局资源的验证,即Oracle 安全服务(OSS )。由 Oracle 安全服务器完成。用安全信息和全局资源存储在网络(LAN/Intranet/Internet)的目录中,存储该目录的服务器称为目录服务器。通常使用轻量目录协议(LDAP )访问该服务器,使用全局口令登录到Oracle 分布式数据库的用户称为全局用户。可将全局用户的权限定义为不同的角色即全局角色。全局角色的全体组成企业角色。 Oracle 安全服务器OSS 实现全局用户的登录过程:

(1) 全局用户登录到 Oracle 分布式数据库系统中;

(2) OSS 动态地将某个全局角色分配给该用户;

(3) 该全局角色所具有的权限即可访问该权限的数据库服务器。换言之,系统中的多个数据库服务器具有不同的权限,它们与全局角色存在对应(映射)关系。最简单的是一对一映射,最复杂的是多对多映射。

用户许可

用户登录到一个数据库服务器到退出期间称为会话。Oracle 可通过设置来限制会话数量。会话数量的设置称为并发许可(协议)。许可是并发使用的,由此许可指定的是并发用户的最大数量,即同时连接到数据库(服务器)的用户会话数量。通过命名用户的许可, 可以限制可访问一个数据库的命名用户数量。 系统运行期间可以跟踪实际会话数量,也能改变并发会话的最大数量。当达到上限时, 只有DBA 能够连接到数据库。而对于一般用户,Oracle 会给他发送一条消息,显示到达最大数量的限制,同时将该消息写入到警告文件中。除此之外,还可以设置并发会话的警告限制数量。在到达该值时,一般用户还可以继续建立新的会话直到达到最大限制值。然后,Oracle 给每个连接的警告文件写一条消息,并且给一般用户发送一条快要达到最大限制的消息。

通过命名用户许可,限制指定的数据库服务器上使用Oracle 的命名用户数量。使用这个许可就是在启动实例以前,设置在数据库可以创建的用户数量。当实例运行时,也可以改变这个最大值或完全停用这个限制。

4. 数据安全性策略

主要包括在对象级控制数据库访问和使用的机制。主要有决定哪个用户访问特定的模式对象,在对象上允许每个用户的特定类型操作,也可以定义审计每个模式对象的操作。为数据库建立安全等级,例如,如果允许其他用户建立任何模式对象,或将对象的存取权限授予系统中的其他用户,这样的安全性是很差的。另外,当希望只有DBA 有权限建立对象, 并向角色和用户授予对象的存取权限时,必须严格控制数据库的安全。

数据的重要性决定了数据和数据库的安全性。如果数据的重要性差,那么数据的安全性略差一些。反之,就应该有严格的安全性策略。用户来维护对数据对象访问的有效控制。数据安全的实现方法主要有:用户账号、对象授权、角色、细粒度存取控制和相关应用程序上下文控制。细粒度存取控制最简单的情况是在SQL 语句中加了一个WHERE 条件, 用它来限制用户对表和视图里元组数据的存取。应用程序上下文是一个安全数据缓冲,用来存储存取控制决定的信息。 5. 用户安全性策略

在Oracle 数据库中, 将用户分为一般用户、最终用户、管理员(DBA )、应用程序员和应用程序管理员。

由于一般用户和管理员具有相对的普遍性,在次只针对一般用户和管理员的安全性策略进行介绍。

5.1 DBA 的安全性策略

当系统规模较小时,只需一个DBA ,则系统安全管理员SSA 也是DBA 。当系统规模很大时,系统拥有多个DBA ,这时两者是分开的。安全管理员将相关管理权限分成几个组, 然后将不同的角色授予相应的DBA 。 当创建数据库后,立即更改有管理权限的sys 和system 用户的口令,防止非法用户访问数据库。当作为sys 和system 用户连入数据库后,用户有强大的权限用各种方式对数据库进行改动。

只有DBA 能用管理权限连入数据库,并保证只有 DBA 能作SYSDBA 角色的成员, 因为SYSDBA 可以没有任何限制地操作和恢复数据库及数据库对象。 6. Oracle 提供的安全机制

数据库的安全性可以分为两类,即数据库系统安全性和数据库数据安全性

6.1系统安全性层面

系统安全性是指在系统级控制数据库的存取和使用的机制。包括:

①用户名/口令的组合是否有效;②用户是否具有连接数据库的授权;③用户以

执行哪些操作;④用户可用的磁盘空间的数量:

⑤用户的资源限制;⑥数据库审计是否有效。

● 数据备份

Oracle 提供了比较完备的数据备份技术。具体请参见Oracle9i 使用手册。 ● 身份认证

在网络环境下多用户系统中,身份认证是安全机制中重要环节。身份认证包括标识和验证,标识是指用户向系统出示自己的身份证明,常用的方法是输入用户名和口令;验证则是系统验证用户的身份证明。Oracle 允许不同类型的验证,以Oracle 数据库为基础的验证允许拥有用户账户ID 和密码,密码以加密的格式存储在数据字典中。Oracle 也支持基于主机操作系统的用户账号转为Oracle 账户的验证。此外,Oracle 高级安全选件还提供更加安全的验证方法[3],如:NTS 、KERBEROSS 、RADIUS 等验证方式。

● 存取控制

数据库的存取控制机制是定义和控制用户对数据库数据的存取访问权限,以确保只授权给有资格的用户访问数据库的权限并防止和杜绝对数据库中数据的非授权访问。数据库管理系统需要对精细的数据粒度加以控制,数据库中的粒度有记录、表格、属性、字段和值等。Oracle 可利用权限、角色、概要文件、细粒度访问等技术提供存取控制支持。

● 权限

默认情况下新的Oracle 用户不具备任何权限。新用户在登录数据库以及运行数据库操作前必须被授予权限。Oracle 数据库包含系统权限和对象权限。系统权限允许用户建立和使用对象,但不授权访问真正的数据库对象。系统权限允许用户运行如:ALTER TABLE ,CREATE TABLE 等权限。对象权限被用来允许访问特殊的数据库对象,如表或视图。Oracle 允许对象的拥有者将他们拥有的针对这些对象的权限授予其他用户或角色。

● 角色

角色是用来简化用户权限分派的管理任务,用户可以被指派多个角色。将权限组织到角色中后再利用角色对一个或多个用户授权使授权管理变得更加容易。Oracle 拥有一些特定权限的默认角色。如:Connect 角色允许用户登录和建立自己的表、索引等;Resource 角色允许用户建立触发器和存储过程等对象。数据库管理员DBA 角色被授予所有管理数据库和用户的系统权限。用户为方便管理可以建立自定义的角色。

● 概要文件

Oracle 利用概要文件来允许管理员针对一些系统资源,密码的利用。这些概要文件可以被定义、命名、然后指派给特定的用户或用户组。概要文件可以用来设置用户在特定的系统资源上的限制,如CPU 时间、同时建立的有效会话数、特定用户建立会话的最大时间等。此外,概要文件也可以用来强制定义密码规则,如密码有效期、密码格式、在若干次登录失败尝试后锁定账户,也可以利用自定义密码格式规则函数来限制密码的设置规则。

● 细粒度访问

Oracle 提供了细粒度访问控制机制Oracle Label Security[5],可实施对单个表或整个模式上的行级访问控制。要利用Oracle Label Security ,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。标签用来标明哪些用户能够访问什么类型数据。在创建了一个策略之后,将该策略应用于需要保护的表,并将这些标签授予用户。当Oracle 数据库在解析SQL 语句时会检测表是否受到某个安全策略的保护,根据用户的访问权限数据库向该SQL 。语句的WHERE 子句中添加安全性谓词。所有这些都发生在Oracle 数据库引擎的内部。所以不管该SQL 。语句的来源如何,用户都不可能绕过该安全性机制,从而达到行级安全的访问控制。

● 审计

任何的数据库系统都不可能是绝对安全的,可以利用Oracle 数据库系统的审计功能,监视和记录所选择用户的活动情况,数据库的审计记录存放在SYS 方案的AUD$表中。开启审计功能后会影响一些数据库的性能,在初始状态Oracle 对审

计功能是关闭的。要开启审计功能,可在初始化参数中将参数“AUDIT —TRAII 。”值设置为“DB 或TRUE ”。Oracle 支持三种类型的审计:语句审计、权限审计和方案对象审计。语句审计是针对DDL 、DML 语句的审计,如“AUDIT TABI 。E ”的语句审计对所有的CREATE 和DROP TABLE 语句都进行审计;权限审计是对系统权限的审计,如只针对“CREATETABLE ”的权限审计,则只审计CREATE TABLE 语句;方案对象审计是针对特定的DMI 。语句和特定方案对象的GRANT 、REVOKE 语句的审计。

从Oracle9i 后支持细粒度审计,可以用于监视基于内容的数据访问。此外,也可利用数据库提供的触发器功能进行编程自定义审计方案,如可以用触发器编写登录,注销以及其他数据库事件的Oracle 审计信息。

6.2 数据安全性层面

在多用户数据库系统中,数据安全性包括:①防止非授权用户对数据进行存取操作:②防止非授权用户对模式对象的存取操作;⑨控制系统资源的使用;④控制磁盘的使用;⑤审计用户的操作.

数据加密

一般而言数据库系统提供的基本安全技术能够满足大多数的应用,但对于一些重要部门或敏感领域的应用,仅靠上述这些措施是难以完全保证数据的安全性,某些用户尤其是一些内部用户仍可能非法获取用户名、口令字,或利用其他方法越权使用数据库,因此有必要对数据库中存储的重要数据进行加密处理。数据库密码系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出解密得到明文信息。Oracle9i 提供了特殊DBMS-OBFUSCATION —TOOL KIT 包, 在 Oraclel10g 中又增加了DBMSCRYPT0包用于数据加密/解密,支持DES 、AES 等多种加密/解密算法。

7. Oracle 的安全管理操作

创建概要文件

创建一个概要文件 user_limited, 把它提供给用户 normal_user"使

用.如果连续3次与normal_user的连接失败, 该账户将自动由oracle 锁定,再使用normal_user账户的正确口令,系统会提示出错信息.1天后此账户自动解锁,可继续使用. 创建命令代码如下:

SQL>CREATE PROFILE user_ limited LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME l ;

SQL>ALTER USER normal_user PROFILE user_limited;

✧ 修改概要文件

如果将上述概要文件的允许失败连接次数改为5.账户锁定时间改为10. 修改代码如下:

SQL>ALTER PROFILE user_limited LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TLME 10;

✧ 启用审计

审计是监视和记录所选用户的数据活动。审计通常用于调查可疑活动和监视与收集特定数据库活动的数据。如果数据被非授权用户删除。管理员可对该数据库的所有连接进行审计,以及对数据库的所有删除进行审计.管理员还可以对某种类型的SQL 语句、执行相应动作的系统权限、全部用户或指定用户的活动进行审计。达到监视数据库对象的数据处理操作的目的.管理员可以启用和禁用审计信息记录。当在数据库中启用审计时,在语句执行阶段生成审计记录, 如审计normal_user用户的所有更新操作代码为: SQL>AUDITUPDATE TABLE BY normal_user,

Oracle 数据库安全解决方案及技术综述

学 院:

专 业: 学 号:

学生姓名: 指导教师: 日 期:

电子与信息工程学院 xxxxxxxx xxxxxx xxxxx xxxxxx xxxxxxx

Oracle 数据库安全解决方案及技术综述 1. 背景介绍

随着网络技术的飞速发展。网络安全问题日渐突出。数据库技术自20世纪60年代产生至今,也已得到了快速的发展和广泛应用,数据库中由于数据大量集中存放,且为众多用户直接共享,安全性问题尤为突出。

数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。经过几十年的发展,数据库技术在理论上得到不断完善的同时,也广泛地投入到财务、教育、电子政务、金融等领域中得到大规模的应用。目前,市场上不仅有能满足个人用户需要的桌面小型数据库管理系统,也有能提供大规模数据管理功能、应用在网络环境的大中型数据库管理系统。 2. 数据库系统安全概述

◆ 安全威胁

当前对数据库的主要安全威胁有物理威胁和逻辑威胁:①物理威胁主要是像 各种外力,如:恐怖事件,火灾等造成的数据库服务器故障或数据库中存储介质的损坏造成的数据丢失。②逻辑威胁主要是指对信息的未授权存取,如:恶意用户侵入某银行数据库系统窃取信用卡数据信息。

◆ 数据库安全技术

目前对数据库安全物理威胁的主要解决方案包括数据备份/恢复、数据导入/导出、数据库的灾难恢复,计算机的集群和磁盘阵列等技术,在此本文不进行讨论。本文以Oracle 数据库为例阐述对逻辑威胁的主要解决方法,包括身份认证、存取控制、网络加密、数据加密、审计等技术。

◆ 数据库系统的安全需求

数据库的完整性主要包括物理完整性和逻辑完整性。物理完整性主要包括物理完整性和逻辑完整性。物理完整性是指保证数据库的数据不受物理故障,如硬件故障、掉电的影响,并有可能在灾难毁坏时重建和恢复数据库。逻辑完整性是指对

数据库逻辑结构的保护,包括数据的语义完整性和操作完整性。前者主要指数据存取在逻辑上满足完整性约束,后者主要指在并发事务中保证数据的逻辑一致性。数据库的保密性指不允许未经授权的用户存取数据;数据库的可用性则是指不应拒绝授权用户对数据库的正常操作,同时保证系统的运行效率并提供用户友好的人机交互。

一般而言,数据库的保密性和可用性是一对矛盾。对这一矛盾的分析与解决构成了数据库系统的安全模型和一系列安全机制的主要目标。

数据库系统的安全需求

3. Oracle 的安全策略

3.1系统安全性策略

系统安全策略的定义[1]为:系统安全策略是数据库系统为达到安全目标和相应的安全级别所定义的安全技术、方法、机制的总和。DBMS 将系统安全策略体现在其软件之中,最后由DBA 给予实现,主要体现在安全管理。Oracle9i 的系统安全策略主要功能如下:

(1) 系统与数据的安全性策略

数据库用户管理(DBU) 。数据库主要是由 DBU 访问的。DBA 可授权DBU 应用Create 、Alter 、Drop 语句对数据库对象的操作权限,用户身份验证。数据库用户可以通过操作系统、 网络服务、 数据库或者安全套接字层SSL 进行身份确认。

(2) 操作系统(IOS 安全性

由于Oracle 数据库和应用程序是运行在网络操作系统(NOS )之上,然后进行 安全认证的。所以前两者的安全性需要与操作系统安全一同考虑。DBA 必须具有对NOS 的文件进行Create 和Delete 的权限而数据库用户却不具有。如果操作系统为数据库用户分配角色,则DBA 必须有修改操作系统账户安全区域的操作系统权限。

3.2 用户验证 :

Oracle 采用数据库验证、外部验证和企业验证三种用户验证方式。 ✧ 数据库验证

当创建用户和指定口令时,便使用数据库验证,同时具有了口令管理能力。Oracle 通过在一个概要文件中设置参数并把该文件分配给一个用户的方式来实现的。一个概要文件可以限制会话的数量、每个会话使用的CPU 时间、调用次数、读的次数、空闲时间以及连接时间。概要文件可以防止破坏者利用所有的资源以拒绝服务的攻击方式破坏系统。

✧ 外部验证

外部验证是指在Oracle 之外的验证,即网络操作系统(NOS )和网络验证服务。使用外部验证后在Oracle 就无需再验证。若选此项,则在init.ora 文件设置相关参数通知 Oracle 。使用 NOS 进行验证的优点是,用户更快更方便地连接数据库;对用户验证进行集中控制;用户信息只有一份副本并保存在NOS 中,Oracle 中无需保存,当然两者用户应是相同的,同时审计信息只保存在NOS 中。网络验证服务属于高级安全技术。主要应用网络安全服务,例如 Kerberos 或PKI 等。

✧ 企业验证

企业验证应用于网络环境下的分布式数据库。分布式环境存在多个数据库服务器,它们组成资源的总和定义为全局资源。可以使用全局资源(任何一个数据库服务器)的用户定义为全局用户。企业验证是全局用户使用全局资源的验证,即Oracle 安全服务(OSS )。由 Oracle 安全服务器完成。用安全信息和全局资源存储在网络(LAN/Intranet/Internet)的目录中,存储该目录的服务器称为目录服务器。通常使用轻量目录协议(LDAP )访问该服务器,使用全局口令登录到Oracle 分布式数据库的用户称为全局用户。可将全局用户的权限定义为不同的角色即全局角色。全局角色的全体组成企业角色。 Oracle 安全服务器OSS 实现全局用户的登录过程:

(1) 全局用户登录到 Oracle 分布式数据库系统中;

(2) OSS 动态地将某个全局角色分配给该用户;

(3) 该全局角色所具有的权限即可访问该权限的数据库服务器。换言之,系统中的多个数据库服务器具有不同的权限,它们与全局角色存在对应(映射)关系。最简单的是一对一映射,最复杂的是多对多映射。

用户许可

用户登录到一个数据库服务器到退出期间称为会话。Oracle 可通过设置来限制会话数量。会话数量的设置称为并发许可(协议)。许可是并发使用的,由此许可指定的是并发用户的最大数量,即同时连接到数据库(服务器)的用户会话数量。通过命名用户的许可, 可以限制可访问一个数据库的命名用户数量。 系统运行期间可以跟踪实际会话数量,也能改变并发会话的最大数量。当达到上限时, 只有DBA 能够连接到数据库。而对于一般用户,Oracle 会给他发送一条消息,显示到达最大数量的限制,同时将该消息写入到警告文件中。除此之外,还可以设置并发会话的警告限制数量。在到达该值时,一般用户还可以继续建立新的会话直到达到最大限制值。然后,Oracle 给每个连接的警告文件写一条消息,并且给一般用户发送一条快要达到最大限制的消息。

通过命名用户许可,限制指定的数据库服务器上使用Oracle 的命名用户数量。使用这个许可就是在启动实例以前,设置在数据库可以创建的用户数量。当实例运行时,也可以改变这个最大值或完全停用这个限制。

4. 数据安全性策略

主要包括在对象级控制数据库访问和使用的机制。主要有决定哪个用户访问特定的模式对象,在对象上允许每个用户的特定类型操作,也可以定义审计每个模式对象的操作。为数据库建立安全等级,例如,如果允许其他用户建立任何模式对象,或将对象的存取权限授予系统中的其他用户,这样的安全性是很差的。另外,当希望只有DBA 有权限建立对象, 并向角色和用户授予对象的存取权限时,必须严格控制数据库的安全。

数据的重要性决定了数据和数据库的安全性。如果数据的重要性差,那么数据的安全性略差一些。反之,就应该有严格的安全性策略。用户来维护对数据对象访问的有效控制。数据安全的实现方法主要有:用户账号、对象授权、角色、细粒度存取控制和相关应用程序上下文控制。细粒度存取控制最简单的情况是在SQL 语句中加了一个WHERE 条件, 用它来限制用户对表和视图里元组数据的存取。应用程序上下文是一个安全数据缓冲,用来存储存取控制决定的信息。 5. 用户安全性策略

在Oracle 数据库中, 将用户分为一般用户、最终用户、管理员(DBA )、应用程序员和应用程序管理员。

由于一般用户和管理员具有相对的普遍性,在次只针对一般用户和管理员的安全性策略进行介绍。

5.1 DBA 的安全性策略

当系统规模较小时,只需一个DBA ,则系统安全管理员SSA 也是DBA 。当系统规模很大时,系统拥有多个DBA ,这时两者是分开的。安全管理员将相关管理权限分成几个组, 然后将不同的角色授予相应的DBA 。 当创建数据库后,立即更改有管理权限的sys 和system 用户的口令,防止非法用户访问数据库。当作为sys 和system 用户连入数据库后,用户有强大的权限用各种方式对数据库进行改动。

只有DBA 能用管理权限连入数据库,并保证只有 DBA 能作SYSDBA 角色的成员, 因为SYSDBA 可以没有任何限制地操作和恢复数据库及数据库对象。 6. Oracle 提供的安全机制

数据库的安全性可以分为两类,即数据库系统安全性和数据库数据安全性

6.1系统安全性层面

系统安全性是指在系统级控制数据库的存取和使用的机制。包括:

①用户名/口令的组合是否有效;②用户是否具有连接数据库的授权;③用户以

执行哪些操作;④用户可用的磁盘空间的数量:

⑤用户的资源限制;⑥数据库审计是否有效。

● 数据备份

Oracle 提供了比较完备的数据备份技术。具体请参见Oracle9i 使用手册。 ● 身份认证

在网络环境下多用户系统中,身份认证是安全机制中重要环节。身份认证包括标识和验证,标识是指用户向系统出示自己的身份证明,常用的方法是输入用户名和口令;验证则是系统验证用户的身份证明。Oracle 允许不同类型的验证,以Oracle 数据库为基础的验证允许拥有用户账户ID 和密码,密码以加密的格式存储在数据字典中。Oracle 也支持基于主机操作系统的用户账号转为Oracle 账户的验证。此外,Oracle 高级安全选件还提供更加安全的验证方法[3],如:NTS 、KERBEROSS 、RADIUS 等验证方式。

● 存取控制

数据库的存取控制机制是定义和控制用户对数据库数据的存取访问权限,以确保只授权给有资格的用户访问数据库的权限并防止和杜绝对数据库中数据的非授权访问。数据库管理系统需要对精细的数据粒度加以控制,数据库中的粒度有记录、表格、属性、字段和值等。Oracle 可利用权限、角色、概要文件、细粒度访问等技术提供存取控制支持。

● 权限

默认情况下新的Oracle 用户不具备任何权限。新用户在登录数据库以及运行数据库操作前必须被授予权限。Oracle 数据库包含系统权限和对象权限。系统权限允许用户建立和使用对象,但不授权访问真正的数据库对象。系统权限允许用户运行如:ALTER TABLE ,CREATE TABLE 等权限。对象权限被用来允许访问特殊的数据库对象,如表或视图。Oracle 允许对象的拥有者将他们拥有的针对这些对象的权限授予其他用户或角色。

● 角色

角色是用来简化用户权限分派的管理任务,用户可以被指派多个角色。将权限组织到角色中后再利用角色对一个或多个用户授权使授权管理变得更加容易。Oracle 拥有一些特定权限的默认角色。如:Connect 角色允许用户登录和建立自己的表、索引等;Resource 角色允许用户建立触发器和存储过程等对象。数据库管理员DBA 角色被授予所有管理数据库和用户的系统权限。用户为方便管理可以建立自定义的角色。

● 概要文件

Oracle 利用概要文件来允许管理员针对一些系统资源,密码的利用。这些概要文件可以被定义、命名、然后指派给特定的用户或用户组。概要文件可以用来设置用户在特定的系统资源上的限制,如CPU 时间、同时建立的有效会话数、特定用户建立会话的最大时间等。此外,概要文件也可以用来强制定义密码规则,如密码有效期、密码格式、在若干次登录失败尝试后锁定账户,也可以利用自定义密码格式规则函数来限制密码的设置规则。

● 细粒度访问

Oracle 提供了细粒度访问控制机制Oracle Label Security[5],可实施对单个表或整个模式上的行级访问控制。要利用Oracle Label Security ,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。标签用来标明哪些用户能够访问什么类型数据。在创建了一个策略之后,将该策略应用于需要保护的表,并将这些标签授予用户。当Oracle 数据库在解析SQL 语句时会检测表是否受到某个安全策略的保护,根据用户的访问权限数据库向该SQL 。语句的WHERE 子句中添加安全性谓词。所有这些都发生在Oracle 数据库引擎的内部。所以不管该SQL 。语句的来源如何,用户都不可能绕过该安全性机制,从而达到行级安全的访问控制。

● 审计

任何的数据库系统都不可能是绝对安全的,可以利用Oracle 数据库系统的审计功能,监视和记录所选择用户的活动情况,数据库的审计记录存放在SYS 方案的AUD$表中。开启审计功能后会影响一些数据库的性能,在初始状态Oracle 对审

计功能是关闭的。要开启审计功能,可在初始化参数中将参数“AUDIT —TRAII 。”值设置为“DB 或TRUE ”。Oracle 支持三种类型的审计:语句审计、权限审计和方案对象审计。语句审计是针对DDL 、DML 语句的审计,如“AUDIT TABI 。E ”的语句审计对所有的CREATE 和DROP TABLE 语句都进行审计;权限审计是对系统权限的审计,如只针对“CREATETABLE ”的权限审计,则只审计CREATE TABLE 语句;方案对象审计是针对特定的DMI 。语句和特定方案对象的GRANT 、REVOKE 语句的审计。

从Oracle9i 后支持细粒度审计,可以用于监视基于内容的数据访问。此外,也可利用数据库提供的触发器功能进行编程自定义审计方案,如可以用触发器编写登录,注销以及其他数据库事件的Oracle 审计信息。

6.2 数据安全性层面

在多用户数据库系统中,数据安全性包括:①防止非授权用户对数据进行存取操作:②防止非授权用户对模式对象的存取操作;⑨控制系统资源的使用;④控制磁盘的使用;⑤审计用户的操作.

数据加密

一般而言数据库系统提供的基本安全技术能够满足大多数的应用,但对于一些重要部门或敏感领域的应用,仅靠上述这些措施是难以完全保证数据的安全性,某些用户尤其是一些内部用户仍可能非法获取用户名、口令字,或利用其他方法越权使用数据库,因此有必要对数据库中存储的重要数据进行加密处理。数据库密码系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出解密得到明文信息。Oracle9i 提供了特殊DBMS-OBFUSCATION —TOOL KIT 包, 在 Oraclel10g 中又增加了DBMSCRYPT0包用于数据加密/解密,支持DES 、AES 等多种加密/解密算法。

7. Oracle 的安全管理操作

创建概要文件

创建一个概要文件 user_limited, 把它提供给用户 normal_user"使

用.如果连续3次与normal_user的连接失败, 该账户将自动由oracle 锁定,再使用normal_user账户的正确口令,系统会提示出错信息.1天后此账户自动解锁,可继续使用. 创建命令代码如下:

SQL>CREATE PROFILE user_ limited LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME l ;

SQL>ALTER USER normal_user PROFILE user_limited;

✧ 修改概要文件

如果将上述概要文件的允许失败连接次数改为5.账户锁定时间改为10. 修改代码如下:

SQL>ALTER PROFILE user_limited LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TLME 10;

✧ 启用审计

审计是监视和记录所选用户的数据活动。审计通常用于调查可疑活动和监视与收集特定数据库活动的数据。如果数据被非授权用户删除。管理员可对该数据库的所有连接进行审计,以及对数据库的所有删除进行审计.管理员还可以对某种类型的SQL 语句、执行相应动作的系统权限、全部用户或指定用户的活动进行审计。达到监视数据库对象的数据处理操作的目的.管理员可以启用和禁用审计信息记录。当在数据库中启用审计时,在语句执行阶段生成审计记录, 如审计normal_user用户的所有更新操作代码为: SQL>AUDITUPDATE TABLE BY normal_user,


相关内容

  • 四川大学工程硕士论文格式
  • 工商电子政务的实践与研究 软件工程 领域 研究生 关 冀 指导老师 李志蜀 网络和数据库是推行电子政务应用的重要手段,电子政务对于推动我国经济向着健康.稳定„„ 关键词:电子政务 网络 数据唐楷泉 1 Industrial And Comercial "E-Government" ...

  • 南昌大学毕业设计开题报告
  • 南昌大学 毕业设计(论文)开题报告 题目:研究生学籍管理信息系统设计与实现 学 专 班 学 姓级:号:名:2001级四班01081510 20050315一.选题的依据及意义: 选题的依据:随着信息科技的高速发展,当今社会步入了数字化生存的时代,各种信息和数据越来越膨胀,潜移默化地影响我们的生活.目 ...

  • 给Oracle数据库打补丁
  • 给软件打补丁相当于给人打预防针,对系统的稳定运行至关重要.本文详细.系统地介绍了Oracle数据库补丁的分类.安装.管理等问题. 厂商提供给用户的软件补丁的形式多为编译后的库函数,所以安装软件补丁实际上就是把这些库函数拷贝到相应目录,并在需要时进行联接操作.软件公司一般在一段时间后会把针对某一版本的 ...

  • 金税三期工程回顾--上线保障与管理方案
  • ORACLE PRODUCT LOGO 金税三期工程回顾 --上线保障与管理方案 回顾:当前存在的问题与健康检查结果 金税三期数据架构与目前环境 总局交易数据 总局分析数据 已经部署了 70 多套数据库:且重庆上线: 随着各省逐步上线,最终估计达到 200 套左右: 使用了包括集群.数据集中与 ...

  • 空间数据库的构建
  • 第21卷第3期 2002年9月<新疆师范大学学报>(自然科学版)JournalofXinjiangNormalUniversity (NaturalSciencesV01.21,No.3Sub.2002Edition) 空间数据库的构建 杨雪峰 (新疆师范大学生命与环境科学学院,乌鲁木齐 ...

  • 毕业论文---oracle数据库巡检报告自动生成工具
  • 题 目:oracle 数据库巡检报告自动生成工具 目 录 摘 要: .................................................................................................................... ...

  • 文献综述 选课系统的
  • <选课系统的设计与实现>文献综述 张愉 摘要:随着计算机和网络的普及,高等学校里纷纷建立了C/S或者B/S结构的网上选课系统.与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了便利.学生在学校的公共机房或者宿舍的个人电脑上通过网络来选课,只要选课还没有截止,学生就能够灵活的修改 ...

  • 虚拟现实技术在建筑施工中的应用与实例
  • 虚拟现实技术在建筑施工中的应用与实例 郑涌林 (华侨大学土木工程学院 福建 362021) [摘 要]介绍了虚拟现实技术的概念以及在建筑施工领域的应用情况,解析了工程实例的计算机虚拟制作流程,探讨虚拟现实技术应用的基本思路和发展前景. [关键词]虚拟现实:建筑施工:应用 中图分类号:TP391.9 ...

  • 数据备份系统的设计
  • 数据备份系统的设计 1. 引言 对于一个关键业务系统而言,数据资料是整个系统运作的核心.但人为的操作错误.软件的缺陷.硬件的损坏.电脑病毒.黑客攻击.自然灾难等诸多因素都有可能造成计算机数据的丢失,那么将会对于业务运作造成无法估量的影响.此时,最关键的问题在于如何尽快恢复信息系统,使其能正常运行.为 ...