Oracle数据库安全解决方案及技术综述学 院: 电子与信息工程学院专 业: xxxxxxxx学 号: xxxxxx学生姓名 : xxxxx指导教师 : xxxxxx日 期: xxxxxxxOracle数据库安全解决方案及技术综述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等验证方式存取控制数据库的存取控制。