


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle数据库安全解决方案及技术综述学院:电子与信息工程学院专业:xxxxxxxx学号:xxxxxx学生姓名 :xxxxx指导教师 :xxxxxx日期:xxxxxxxOracle数据库安全解决方案及技术综述1. 背景介绍? 随着网络技术的飞速发展。网络安全问题日渐突出。数据库技术自20 世纪60 年代产生至今, 也已得到了快速的发展和广泛应用,数据库中由于数据大量集中存放,且为众多用户直接共享,安全性问题尤为突出。? 数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。经过几十年的发展,数据库技术在理论上得到不断完善的同时,也广泛地投入到财务、 教育、电子政务、金融等领
2、域中得到大规模的应用。 目前,市场上不仅有能满足个人用户需要的桌面小型数据库管理系统, 也有能提供大规模数据管理功能、应用在网络环境的大中型数据库管理系统。2. 数据库系统安全概述安全威胁当前对数据库的主要安全威胁有物理威胁和逻辑威胁:物理威胁主要是像各种外力,如:恐怖事件, 火灾等造成的数据库服务器故障或数据库中存储介质的损坏造成的数据丢失。 逻辑威胁主要是指对信息的未授权存取, 如:恶意用户侵入某银行数据库系统窃取信用卡数据信息。数据库安全技术目前对数据库安全物理威胁的主要解决方案包括数据备份恢复、 数据导入导出、数据库的灾难恢复, 计算机的集群和磁盘阵列等技术, 在此本文不进行讨论。本文
3、以 Oracle 数据库为例阐述对逻辑威胁的主要解决方法, 包括身份认证、存取控制、网络加密、数据加密、审计等技术。数据库系统的安全需求数据库的完整性主要包括物理完整性和逻辑完整性。 物理完整性主要包括物理完整性和逻辑完整性。 物理完整性是指保证数据库的数据不受物理故障, 如硬件故障、掉电的影响, 并有可能在灾难毁坏时重建和恢复数据库。 逻辑完整性是指对数据库逻辑结构的保护, 包括数据的语义完整性和操作完整性。 前者主要指数据存取在逻辑上满足完整性约束, 后者主要指在并发事务中保证数据的逻辑一致性。数据库的保密性指不允许未经授权的用户存取数据; 数据库的可用性则是指不应拒绝授权用户对数据库的正
4、常操作, 同时保证系统的运行效率并提供用户友好的人机交互。一般而言,数据库的保密性和可用性是一对矛盾。 对这一矛盾的分析与解决构成了数据库系统的安全模型和一系列安全机制的主要目标。数据库系统的安全需求3. Oracle 的安全策略3.1 系统安全性策略系统安全策略的定义 1 为:系统安全策略是数据库系统为达到安全目标和相应的安全级别所定义的安全技术、方法、机制的总和。 DBMS将系统安全策略体现在其软件之中, 最后由 DBA 给予实现,主要体现在安全管理。 Oracle9i 的系统安全策略主要功能如下:(1) 系统与数据的安全性策略数据库用户管理( DBU)。数据库主要是由 DBU访问的。 D
5、BA 可授权 DBU应用 Create 、Alter 、Drop 语句对数据库对象的操作权限,用户身份验证。数据库用户可以通过操作系统、 网络服务、 数据库或者安全套接字层 SSL进行身份确认。(2) 操作系统( IOS 安全性由于 Oracle 数据库和应用程序是运行在网络操作系统(NOS)之上,然后进行安全认证的。所以前两者的安全性需要与操作系统安全一同考虑。DBA必须具有对NOS 的文件进行 Create 和 Delete 的权限而数据库用户却不具有。如果操作系统为数据库用户分配角色, 则 DBA必须有修改操作系统账户安全区域的操作系统权限。3.2 用户验证:Oracle采用数据库验证、
6、外部验证和企业验证三种用户验证方式。数据库验证当创建用户和指定口令时,便使用数据库验证,同时具有了口令管理能力。 Oracle 通过在一个概要文件中设置参数并把该文件分配给一个用户的方式来实现的。一个概要文件可以限制会话的数量、 每个会话使用的 CPU时间、调用次数、读的次数、空闲时间以及连接时间。 概要文件可以防止破坏者利用所有的资源以拒绝服务的攻击方式破坏系统。外部验证外部验证是指在Oracle 之外的验证,即网络操作系统(NOS)和网络验证服务。使用外部验证后在Oracle 就无需再验证。 若选此项,则在 init.ora文件设置相关参数通知Oracle 。使用NOS 进行验证的优点是,
7、用户更快更方便地连接数据库;对用户验证进行集中控制;用户信息只有一份副本并保存在NOS中,Oracle 中无需保存,当然两者用户应是相同的, 同时审计信息只保存在NOS中。网络验证服务属于高级安全技术。主要应用网络安全服务,例如Kerberos或PKI 等。企业验证企业验证应用于网络环境下的分布式数据库。分布式环境存在多个数据库服务器,它们组成资源的总和定义为全局资源。可以使用全局资源 (任何一个数据库服务器)的用户定义为全局用户。企业验证是全局用户使用全局资源的验证,即Oracle安全服务(OSS)。由Oracle安全服务器完成。 用安全信息和全局资源存储在网络(LAN/Intranet/I
8、nternet)的目录中,存储该目录的服务器称为目录服务器。通常使用轻量目录协议(LDAP)访问该服务器,使用全局口令登录到 Oracle 分布式数据库的用户称为全局用户。可将全局用户的权限定义为不同的角色即全局角色。全局角色的全体组成企业角色。Oracle 安全服务器OSS 实现全局用户的登录过程:(1) 全局用户登录到 Oracle 分布式数据库系统中;(2) OSS动态地将某个全局角色分配给该用户;(3) 该全局角色所具有的权限即可访问该权限的数据库服务器。换言之,系统中的多个数据库服务器具有不同的权限, 它们与全局角色存在对应 (映射)关系。最简单的是一对一映射,最复杂的是多对多映射。
9、用户许可用户登录到一个数据库服务器到退出期间称为会话。 Oracle 可通过设置来限制会话数量。会话数量的设置称为并发许可(协议) 。许可是并发使用的,由此许可指定的是并发用户的最大数量, 即同时连接到数据库 (服务器) 的用户会话数量。通过命名用户的许可, 可以限制可访问一个数据库的命名用户数量。 系统运行期间可以跟踪实际会话数量, 也能改变并发会话的最大数量。 当达到上限时, 只有 DBA能够连接到数据库。而对于一般用户, Oracle 会给他发送一条消息,显示到达最大数量的限制,同时将该消息写入到警告文件中。除此之外,还可以设置并发会话的警告限制数量。 在到达该值时, 一般用户还可以继续
10、建立新的会话直到达到最大限制值。然后, Oracle 给每个连接的警告文件写一条消息,并且给一般用户发送一条快要达到最大限制的消息。通过命名用户许可,限制指定的数据库服务器上使用 Oracle 的命名用户数量。使用这个许可就是在启动实例以前, 设置在数据库可以创建的用户数量。 当实例运行时,也可以改变这个最大值或完全停用这个限制。4. 数据安全性策略主要包括在对象级控制数据库访问和使用的机制。主要有决定哪个用户访问特定的模式对象,在对象上允许每个用户的特定类型操作,也可以定义审计每个模式对象的操作。 为数据库建立安全等级, 例如,如果允许其他用户建立任何模式对象,或将对象的存取权限授予系统中的
11、其他用户,这样的安全性是很差的。 另外,当希望只有DBA 有权限建立对象,并向角色和用户授予对象的存取权限时,必须严格控制数据库的安全。数据的重要性决定了数据和数据库的安全性。如果数据的重要性差, 那么数据的安全性略差一些。 反之,就应该有严格的安全性策略。用户来维护对数据对象访问的有效控制。数据安全的实现方法主要有:用户账号、对象授权、角色、细粒度存取控制和相关应用程序上下文控制。细粒度存取控制最简单的情况是在SQL语句中加了一个WHERE条件,用它来限制用户对表和视图里元组数据的存取。应用程序上下文是一个安全数据缓冲,用来存储存取控制决定的信息。5. 用户安全性策略在 Oracle 数据库
12、中, 将用户分为一般用户、最终用户、管理员( DBA)、应用程序员和应用程序管理员。由于一般用户和管理员具有相对的普遍性, 在次只针对一般用户和管理员的安全性策略进行介绍。5.1DBA的安全性策略当系统规模较小时,只需一个 DBA,则系统安全管理员 SSA也是 DBA。当系统规模很大时,系统拥有多个 DBA,这时两者是分开的。安全管理员将相关管理权限分成几个组, 然后将不同的角色授予相应的 DBA。 当创建数据库后,立即更改有管理权限的 sys 和 system 用户的口令,防止非法用户访问数据库。当作为 sys 和 system 用户连入数据库后,用户有强大的权限用各种方式对数据库进行改动。
13、只有 DBA能用管理权限连入数据库, 并保证只有 DBA 能作 SYSDBA角色的成员 , 因为 SYSDBA可以没有任何限制地操作和恢复数据库及数据库对象。6. Oracle 提供的安全机制数据库的安全性可以分为两类,即数据库系统安全性和数据库数据安全性6.1 系统安全性层面系统安全性是指在系统级控制数据库的存取和使用的机制。包括:用户名口令的组合是否有效;用户是否具有连接数据库的授权;用户以执行哪些操作;用户可用的磁盘空间的数量:用户的资源限制;数据库审计是否有效。数据备份Oracle 提供了比较完备的数据备份技术。具体请参见Oracle9i使用手册。身份认证在网络环境下多用户系统中, 身
14、份认证是安全机制中重要环节。身份认证包括标识和验证,标识是指用户向系统出示自己的身份证明,常用的方法是输入用户名和口令;验证则是系统验证用户的身份证明。Oracle允许不同类型的验证,以Oracle 数据库为基础的验证允许拥有用户账户ID 和密码,密码以加密的格式存储在数据字典中。 Oracle 也支持基于主机操作系统的用户账号转为Oracle 账户的验证。此外,Oracle 高级安全选件还提供更加安全的验证方法3 ,如:NTS、KERBEROSS、RADIUS等验证方式。存取控制数据库的存取控制机制是定义和控制用户对数据库数据的存取访问权限, 以确保只授权给有资格的用户访问数据库的权限并防止
15、和杜绝对数据库中数据的非授权访问。数据库管理系统需要对精细的数据粒度加以控制, 数据库中的粒度有记录、表格、属性、字段和值等。 Oracle 可利用权限、角色、概要文件、细粒度访问等技术提供存取控制支持。权限默认情况下新的 Oracle 用户不具备任何权限。新用户在登录数据库以及运行数据库操作前必须被授予权限。 Oracle 数据库包含系统权限和对象权限。系统权限允许用户建立和使用对象, 但不授权访问真正的数据库对象。 系统权限允许用户运行如: ALTER TABLE,CREATE TABLE等权限。对象权限被用来允许访问特殊的数据库对象,如表或视图。 Oracle 允许对象的拥有者将他们拥有
16、的针对这些对象的权限授予其他用户或角色。角色角色是用来简化用户权限分派的管理任务,用户可以被指派多个角色。 将权限组织到角色中后再利用角色对一个或多个用户授权使授权管理变得更加容易。Oracle 拥有一些特定权限的默认角色。 如:Connect 角色允许用户登录和建立自己的表、索引等; Resource 角色允许用户建立触发器和存储过程等对象。数据库管理员 DBA角色被授予所有管理数据库和用户的系统权限。 用户为方便管理可以建立自定义的角色。概要文件Oracle利用概要文件来允许管理员针对一些系统资源,密码的利用。这些概要文件可以被定义、 命名、然后指派给特定的用户或用户组。 概要文件可以用来
17、设置用户在特定的系统资源上的限制, 如 CPU时间、同时建立的有效会话数、 特定用户建立会话的最大时间等。 此外,概要文件也可以用来强制定义密码规则, 如密码有效期、 密码格式、在若干次登录失败尝试后锁定账户, 也可以利用自定义密码格式规则函数来限制密码的设置规则。细粒度访问Oracle 提供了细粒度访问控制机制OracleLabelSecurity5,可实施对单个表或整个模式上的行级访问控制。要利用OracleLabelSecurity ,需要创建一个或多个安全策略, 其中每一个安全策略都包含一组标签。 标签用来标明哪些用户能够访问什么类型数据。 在创建了一个策略之后, 将该策略应用于需要保
18、护的表,并将这些标签授予用户。当 Oracle 数据库在解析 SQL语句时会检测表是否受到某个安全策略的保护,根据用户的访问权限数据库向该 SQL。语句的WHERE子句中添加安全性谓词。所有这些都发生在 Oracle 数据库引擎的内部。所以不管该 SQL。语句的来源如何,用户都不可能绕过该安全性机制,从而达到行级安全的访问控制。审计任何的数据库系统都不可能是绝对安全的,可以利用 Oracle 数据库系统的审计功能,监视和记录所选择用户的活动情况, 数据库的审计记录存放在 SYS方案的AUD$表中。开启审计功能后会影响一些数据库的性能,在初始状态 Oracle 对审计功能是关闭的。要开启审计功能
19、, 可在初始化参数中将参数 “ AUDITTRAII 。”值设置为“ DB或 TRUE”。Oracle 支持三种类型的审计:语句审计、权限审计和方案对象审计。语句审计是针对DDL、DML语句的审计,如“ AUDITTABI。 E”的语句审计对所有的CREATE和 DROP TABLE语句都进行审计;权限审计是对系统权限的审计, 如只针对 “ CREATETABLE”的权限审计, 则只审计 CREATE TABLE语句;方案对象审计是针对特定的DMI。语句和特定方案对象的GRANT、 REVOKE语句的审计。从 Oracle9i 后支持细粒度审计,可以用于监视基于内容的数据访问。此外,也可利用数
20、据库提供的触发器功能进行编程自定义审计方案, 如可以用触发器编写登录,注销以及其他数据库事件的 Oracle 审计信息。6.2数据安全性层面在多用户数据库系统中, 数据安全性包括: 防止非授权用户对数据进行存取操作:防止非授权用户对模式对象的存取操作; 控制系统资源的使用; 控制磁盘的使用;审计用户的操作数据加密一般而言数据库系统提供的基本安全技术能够满足大多数的应用, 但对于一些重要部门或敏感领域的应用, 仅靠上述这些措施是难以完全保证数据的安全性, 某些用户尤其是一些内部用户仍可能非法获取用户名、 口令字,或利用其他方法越权使用数据库, 因此有必要对数据库中存储的重要数据进行加密处理。 数据库密码系统要求将明文数据加密成密文数据, 数据库中存储密文数据, 查询时将密文数据取 出解密得到明 文信息 。 Oracle9i 提供了特 殊 DBMS-OBFUSCATION TOOL KIT 包, 在 Oraclel10g 中又增加了 DBMSCRYPT0包用于数据加密解密,支持 DES、AES等多种加密解密算法。7. Oracle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论