退出
网络安全技术
?学习目的,
? 掌握数据库安全的威胁
? 了解数据库安全技术的安全评估策略
? 了解并掌握数据库加密技术
? 了解并掌握数据库备份和恢复技术方法及策略
? 了解并掌握 PROTECT
? 了解并运用 ORACLE中的安全技术
?学习重点,
? 数据库安全的威胁
? 数据库加密技术
? 数据库备份和恢复
? PROTECT
数据库系统担负着存储和管理数据信息的
任务数据库的安全性,就是防止非法用户使用
数据库造成数据泄露、更改或破坏,以达到保
护数据库的目的。数据库中数据必须在数据库
管理系统( DBMS)统一的严格的控制之下,只
允许有合法使用权限的用户访问,尽可能杜绝
所有可能对数据库的非法访问。一个 DBMS能否
有效地保证数据库的安全性是它的主要性能指
标之一
7,1
数据库系统
安全概述
本节主要对数据库系统安全的重要性、数据
库系统面临的威胁、安全需求、数据库系统的安
全策略与安全评估和数据库系统安全模型与控制
作讨论。
计算机系统内数据的组织形式主要有 2种:
一种为文件的形式;另一种为数据库的形式 。
? 文件形式的数据缺乏数据的共享性,这种
形式的数据组织方式在数据库系统内很少被使
用 。
? 数据库组织形式的这种数据组织方式以其
数据具有共享性、独立性、一致性、完整性和可
控性的优点,这种形式的数据组织方式在数据库
系统内被广泛应用,成为了目前计算机系统存储
数据的主要形式。,]
7,1,1 据库系统安全简介
? 1、数据库安全面临的威胁 。
? 2、数据库安全的特性。
? 3、数据库安全的重要性,
? 4、数据库的安全需求
数据库面临的安全威胁大致主要有两个方
面:一种为人为因素。另一种为自然因素。
? 人为的因素主要有六种,
1 非授权用户的非法存取数据或篡改数据
2 授权用户在输入或处理数据过程中对发生了变
动的数据进行了输入或处理导致了数据库内部的
数据不正确;
3 授权用户的故意破坏数据或泄露机密、敏感的
数据资料;
1.数据库安全面临的威胁
4 程序员设计安装了木马程序在装有数据库文件的
计算机内部导致数据库内的数据资料被窃取;
5 系统设计人员为了回避系统的安全功能安装了不
安全的系统在系统内部;
6 存储介质的丢失
? 自然因素主要有三种,
1,计算机硬件故障引起数据库内数据的丢失或破坏
(例如,存储设备故障造成数据信息的丢失或破
坏);
2,软件保护功能失效造成的数据信息的泄露(例如,
系统本身在设计上的缺陷,如缺少或破坏了存取
控制机制,造成了数据信息的泄露);
3,计算机病毒入侵数据库系统破坏和修改数据库软
件或数据。
就数据库的而言,即要访问控制方便,同时也
要保证数据的安全,为此它具有如下的特性,
1,据库的完整性;
2,数据库内数据元素的完整性;
3,数据库内数据的一致性;
4,数据库内数据的稳定性;
5,数据库内数据的可访问控制。
2,数据库安全的特性
为何把数据库的安全提到如此高的原因?
主要有以下几种因素,
1.在一个数据库内有着大量的数据, 同时
这些数据被大量的用户共同使用 —— 共
享, 这些用户都有自己不同职责和权限,
为保证各用户都能精确的完成自己的职
责和 任务, 为保证数据库内数据的完整
性和数据的一致性, 对其使用数据库内
数据的范围和权限都必须作出严格的控
制, 使得每位用户都能得到与其权力相
当的对数据库内数据的访问权限 。
3,数据库安全的重要性
2,数据库内数据的冗余度很小, 一旦对数据进行
了修改, 原来存储的数值就发生了破坏, 而几
乎无同等的 数据来帮助恢复数据库内数据原来
的值 。 因此必须有一套数据库恢复技术, 用以
保证数据库系统出现故障后来恢复数据库 。 保
证数据库内数据的稳定性 。
3,由于通常情况下, 数据库系统都是支持多个用
户同时对数据库进行数据的存取, 既要保证数
据库系统内数据的易修改性, 同时也要保证其
一致性和稳定性, 必须采取相应的安全策略,
避免由此带来的对数据库的安全造成的威胁 。
由此可以知道数据库系统给人们的工作
带来了效率和方便的同时也给我们带来了数据
安全的不稳定因素 。
数据库的安全可分为两大类,
其一, 是物理介质的安全 。
其二, 是存储介质上的数据的逻辑安全 。 对于物理
介质只要出现了破坏, 那几乎是无法在恢复的,
只能小心保管和使用, 而下面主要讨论它的逻辑
安全 。
4,数据库的安全需求
数据库的逻辑安全是指在不改变现有的
数据库管理系统的情况下, 对现有的数据或
对新数据的新的应用力, 它对数据库系统的
一个最为重要的要求就是其应用系统内数据
的独立性 。
数据库的安全除了数据库内数据本身外,
还要考虑安全可靠数据库管理系统的和安全
可靠的操作系统 。
对操作系统的安全主要表现有四种安全需求,
1.操作系统应 具有能防止对数据库系统管理程序
和用户应用程序的非法修改能力;
2.操作系统应具有对用户合法性的认证能力, 对非
法用户进入时及时处理并报警能力;
3.操作系统应具有能正确的使用 I/O操作的能力;
4.操作系统应具有保护存储器 ( 内部存储器和外不
存储器 ) 内的数据不被非法使用和修改的能力 。
对数据库系统除了要求使用方便外, 对数
据库管理系统的安全主要有五种安全需求,
1,具有正确识别用户的功能的能力:即能对用户的
身份进行识别和验证, 防止 非法用户进入系统;
2,具有对合法用户进行访问控制的能力:即能对合
法用户对数据库内的授权数据进行访问控制, 使
不同的用户只能对它具有合法权限的数据进行访
问控制;
3,具有对各种规定的功能的命令的正确的编译和解
释能力:即能正确的执行各种规定的功能操作,
同时还要能正确的传递各变量的值;
4,具有保证和维护数据库系统内数据的安全性和完
整性的功能力:即能防止合法用户对数据库内数
据的非法修改, 还要有当合法用户对数据库内数
据进行逻辑上的修改后不会对其他的合法用户造
成影响, 同时也能防止非法用户对数据库内数据
的访问和控制;
5,具有易维护性和可用性:即当数据库内数据遭到
破坏时能及时的修复能力, 也能对数据库内数据
具有备份的功能, 同时也具有方便用户访问授权
数据库内数据, 并具有安全通信的能力 。
对数据库系统内数据库的安全性的要求主要
有六种需求,
1.数据库的完整性:数据库的完整性是数据库系统,
操作系统和计算机管理和使用者 3方面的责任 。 数
据库系统必须对数据库进行访问控制, 确保只有
授权用户才能对数据库进行访问控制 ( 更新修改,
删除 ), 防止非非人为因素的灾难 。 对操作系统
和计算机使用和管理者来讲, 必须对数据库系统
内的数据进行周期性的备份, 用以防止由于各种
灾害造成的重大影响 。
2.数据元素的完整性:数据库元素的完整性指的是
数据库元素的正确性和准确性, 数据库系统能帮
助用户及时发现错误并纠正 。
3,审计性:在数据库的应用中需要对数据库的
所有访问产生审计记录, 用以帮助在事后查
看什么人对数据库进行了什么操作, 带来了
什么影响, 以便维护数据库的完整性 。 数据
库的审计跟踪包括对记录, 字段和数据元素
的访问记录 。
4,可获取性:数据库内的数据能被用户进行读
取 。
5,访问控制,DBMS必须对用户访问的数据进行
规定 。 规定哪些数据可以访问, 哪些不能访
问 。。
6,用户认证,DBMS应具有严格的用户身份识别
和认证 。 DBMS可能要求用户输入口令, 日期
时间, 用以确定用户的合法性 。
表 7-1数据库的安全功能、安全区域和安全过程
区 域 安全功能和安全过程
外部过程 个人安全许可证, 口令保护, 信息等级和安全策略规则, 检测和字段处理
通信线路 数据加密
物理环境 确定文件, 处理者, 计算机终端的安全 ( 信息辐射的屏蔽和放泄密, 防倒 )
数据存储 数据加密, 数据备份, 存储器的安全 ( 防倒,物理破坏 )
处理机软件
,硬件
用户授权, 存取控制, 对盗窃的监视记录, 数
据的痕迹, 内容的保护, 建立特权状态, 安全
可靠的硬件
7,1,2 数据库系统的安全策略与安全评估
数据库的安全策略是指导管理、保护和传递敏
感信息的法则和方法的准则的集合(包括安全管理
策略、访问控制策略和信息控制策略)
对于不同的数据库形式我们有不同的安全控制
策略。但我们也需要对安全性有一个基本的评估原
则,以及数据库的审计,在此基础上可以有多种安
全策略。下面分别给予介绍。
1,安全性问题的基本原则
? 基于数据库的安全访问,提出以下几点实施安全的
评估原则,
? ( 1)选择性访问控制 (Discretionary Access
Controls DAC),DAC用来决定用户是否有权访问数
据库对象;
? ( 2)验证:验证就是保证只有授权的合法用户才能
注册和访问;
? ( 3)授权:对不同的用户访问数据库授予不同的权
限;
? ( 4)审计:监视系统发生的一切事件。
2,数据库的安全评估
1,数据系统的完整性:指系统是否存在功能上的缺陷,
由此带来的安全影患 。
2,数据库系统的可信性:通过对系统进行分析, 测试,
观测和求证取得系统防止各种可能的攻击能力 。
3,篡改检测:防止非授权的修改, 即使安全机制证明
是正确的, 未授权的合法用户的修改也会破坏其安
全性 。
4,系统的灵活性:指的是系统执行广泛, 多种多样,
不同环境下不同安全策略的能力 。
5,用户的方便性:在保证数据库系统安全的前提下,
能尽力使用户使用方便和灵活 。
6,降低管理成本:对因安全需要的特殊操作带来的管
理费用应尽量的减少, 同时也要注意效率的提高,
并能平衡 。 对一个数据库进行安全审计和评价, 需
要什么样的共享方式, 什么样的存取控制方式, 什
么样的安全等级, 以及由此带来的成本开销和安全
需求都要考虑, 并尽量减到最低 。
3,数据库系统的管理安全控制策略
基于上述四点原则, 数据库系统提供了四种基本策
略进行安全性控制,
1,创建服务器时, 数据库系统将所有权限都分配给系
统管理员, 系统管理员可以在服务器上增加注册者
(Logins)(只有系统管理员有此权限 )。 Logins可以
登录服务器但不能访问数据库 。 数据库属主 (DBO)有
权增加用户 (users),users可以使用分配给它的数
据库 。 当 users访数据库时, 首先以 Logins身份进入
服务器, 系统自动打开默认数据库, Logins身份转
化为 users身份 。
2,用户登录后, 系统要通过口令进行验证, 以防止非
法用户盗用他人的用户名进行登录 。 这一验证步骤
在登录时的注册对话框中出现, 注册与验证同时进
行, 用户名与口令有一个不符, 登录请求被拒绝 。
3,数据库系统提供了 Audit Server,它是能够全面审
计跟踪服务器上一切活动的工具, 在某些情况下,
我们难以阻止非法操作的发生, 但至少可以监视非
法操作, 并采取跟踪措施, 找出非法执行操作的人 。
4,权限使得用户在数据库中活动范围仅被容许在小范
围内, 大大提高了数据库的安全性 。 在数据库系统
系统中, 对象的所有者或创建者自动被授予对对象
的许可权 。 所有者则有权决定把许可权授予其他用
户 。 数据库系统提供了 GRANT和 REVOKE命令, 以便授
予或取消许可权 。 数据库所有者和系统管理员享有
特殊许可权, 包括数据库所有者 (Database Owner,
DBO)对自己所拥有的数据库中的一切对象具有全部
许可权;系统管理员 (System Administrantion,SA)
享有服务器内的所有数据库的一切对象的许可权 。
5,除了以上四点基本策略, 数据库系统数据库
中还提供了两种对象 —— 视图和存储过程用
于增强系统的安全性 。 视图和存储过程像数
据库中的其他对象, 也要进行权限设定, 这
样用户只能取得对视图和存储过程的授权,
而无法访问底层表 。 视图可以限制底层表的
可见列, 从而限制用户能查询的数据列的种
类, 还能通过应用 Where子句限制表返回的行 。
4,访问控制策略
1,知需策略:根据用户对数据库内数据的需求,
让用户得到与自己身份相当的对数据库内数
据访问控制权限。
2,最大程度上的共享策略:数据库系统由于安
全的需要对数据的访问控制有严格的控制和
保护措施,但在这种共享策略的指导下,能
使数据信息在最大可能的程度上给所有用户
共享,但也不是所有用户都能对所有数据都
能访问控制,而是只有与其身份相当的用户
才能对其权限下的数据进行访问控制。
3,根据历史的存取记录的访问控制策略:有的
数据本身不会泄露秘密,但我们与用户以前
得到的信息联系在一起就能从中推断出受到
保护的信息。因此可以根据用户以前的存取
信息来控制其现在的请求。
4,按存取类型控制策略:取得这种权限的用户
可根据需要作出存取控制(读、写、修改、
删除和插入等操作),或不做人何处理。但
这样的控制对数据库的破坏特别大,所以需
要进行严格的控制。
5,信息控制策略主要是指信息的加密处理,防
止信息被窃取,关于加密技术后面会详细介
绍。
5,数据库的审计
数据库的审计主要任务是指对数据库系统应用程
序或用户使用资源(包括数据)的情况进行记录和审
计,用以保证数据的安全。一旦当出现异常情况时,
审计人员或管理员应能根据审计记录分析出原因,并
分请责任。对审计的类型主要分为以下 4种,
( 1)设备安全的审计:主要是对计算机资源(软件、
硬件)的审计,同时还包括对传输介质的访问的
稳定性和安全的审计。
( 2)应用程序的审计:其包括了对整个应用程序系
统、控制程序的逻辑和数据的逻辑合法性和合理
性的审计。
( 3)系统操作的审计:主要包括了对管理系统操作
的合法性的设计。
( 4)欺诈行为的审计:对已发生的欺诈行为和危害
系统安全的行为事件进行检测和审计。
对数据库的审计可采用了解系统技术、验证处
理技术和处理结果验证技术 3种技术来进行审计。
( 1)了解系统技术:审计者可以可以通过阅读各
种日志文件来进行审计,由此可以查找到非法用
户企图攻击的目标,非法访问的方法,对哪些数
据对象曾经做出了非法的处理,从而为防止非法
用户的攻击提供线索,在数据受到破坏后能找到
处理的方法和找到肇事者和事故发生的时间。在
这方面美国已经对 EDP系统制定了审计标准。
( 2)验证处理技术:验证处理技术是为保证系统执行
的操作能正确执行的一种验证方法。该技术一般分为
事务选择、测试数据和并行仿真。事务选择是指审计
者根据制定的审计标准选择好事务样板来仔细分析。
测试数据指审计者通过检测被处理的测试数据。并行
仿真是指审计者通过一组应用程序来仿真操作系统的
主要功能,对仿真出来的数据进行比较,看结果是否
正确。同时看操作流程是否是满足设计要求。
( 3)处理结果的验证技术:审计者在这一方式上把重
点放在了数据的结果上,主要考虑如何选择数据和从
选出的数据中找什么信息。审计者从日志文件内选择
审计跟踪记录数据,并包括把审计数据收集技术插入
到应用程序内部的审计模块内,建立全部的审计跟踪
日志。从选出的数据内部可以找到检测控制信息(包
括语义完整性、无关信息源点的数据。
7,1,3 数据库系统安全模型与控制
下图 7-1给出了一个数据库系统的安全模型与控制图 。
图 7-1 一个数据库系统的安全模型与控制图
从上图中我们知道 数据库加密系统分成两个功
能独立的主要部件:一个是加密字典管理程序,另
一个是数据库加 /解密引擎。加密字典管理程序是管
理加密字典的实用程序,是数据库管理员变更加密
要求的工具。 加密字典管理程序通过数据库加 /解
密引擎实现对数据库表的加密、解密及数据转换等
功能,此时,它作为一个特殊客户来使用数据库加 /
解密引擎。数据库解密处理,对应用开发人员和操
作人员是透明的。
但由于数据库管理系统对数据库加 /解密程序实
现的位置的不同,对它又进行了层次上的划分,分
成 OS,DBMS内核层和 DBMS外层上实现加 /解密。
图 7-1 DBMS内层加 /
解密图 图 7-2 DBMS外层加 /解密图
7,2
数据库系统
的安全技术
为什么要引入数据库系统的安全技术?
据有关资料报道,80%的计算机犯罪来自系统内部。
在传统的数据库系统中,数据库管理员的权力至高
无上,他既负责各项系统管理工作,例如资源分配、
用户授权、系统审计等,又可以查询数据库中的一
切信息。为此,不少系统以种种手段来削弱系统管
理员的权力。实现数据库加密以后,各用户(或用
户组)的数据由用户用自己的密钥加密,数据库管
理员获得的信息无法进行正常脱密,从而保证了用
户信息的安全。另外,通过加密,数据库的备份内
容成为密文,从而能减少因备份介质失窃或丢失而
造成的损失。
7.2.1 口令保护技术
? 口令技术的内容,
口令管理技术包括数据库中多个事务的口令
同步;异构数据库间的口令同步,如 Oracle 和
Unix口令;用户初始的口令更新;强制口令更新;
口令可用性、口令的时间限制、口令的历史管理、
口令等级设置等。
? 口令保护技术的技术手段,
1.口令安全漏洞检查和系统终止。包括检查系统
终止前登录失败的次数,系统终止前登录成功
与登录失败间的时间间隔,跟踪企图登录的站
点地址。
2,口令加密、审计技术。包括发现口令漏
洞,记录口令历史,记录对表、行、列的访问,
记录应用系统的访问等。
3.零知识证明简称为零式方式的口令管理方式来
确保使用者在最大程度上的合法性
零知识证明其具体步骤如下
1) 用户获取一个随机数,并使其与自己所持有的密
钥一并处理,并将结果传送给数据库安全管理员;
2) 安全管理员获取一个随机数,并将此数字传送给
用户(用户将此随机数同自己的密钥一并处理,
并将其结果再一次传送给数据库安全管理员);
3) 安全管理员检查这个回答是否正确,如果正确,
则减少对用户真实身份一半的怀疑;如不正确,
则停止用户的进一步活动;
4) 重复上述 4步骤可能连续几十次,如果每次都正
确,则数据库管理员对用户身份的怀疑可能减
少到零,这时用户被认为是合法用户
7.2.2 数据库加密技术
一个良好的数据库加密系统应该满足的几种基本要求,
( 1) 不影响合法用户的操作 。
( 2) 合理处理数据 。
( 3) 密钥动态管理 。
( 4) 字段加密 。
在满足上述要求后, 还需根据不同数据库的特点来
进行加密 。
软件加密方式
软件加密方式
( 1)库外加密:数据库管理系统把要加密的数据当做
一个文件,把每个数据块当做文件的一个记录进行
加密。文件系统与数据库管理系统间交换的就是块
号。
( 2)库内加密:它就是对数据库系统内数据元素(可
以是记录、字段)进行加密。只能采用特定的数据
库管理系统才能阅读里面的数据。
硬件加密方式
硬件加密是指在数据库管理系统和其数据存
储的物理介质间加装了一个硬件装置(常说的加
密狗就是一种),把实际的数据与管理系统脱离,
但对控制信息不加密,只对数据加密。
7,2,3 数据库备份与恢复技术
数据库系统备份性能评价的基本要素是,
1,对于数据库备份的评价首先要分析什么数据需要
备份, 以及数据库系统的运行环境;
2,其次还要考虑数据的重要程度和可能受到什么样
的安全威胁, 对于安全威胁大的数据要优先考虑;
3,第三, 就是要考虑数据的更新速度, 对于更新
快的数据要制定的备份的策略就要考虑备份的
频率就要高, 同时存储介质也要冗错能力和效
率都高的介质上, 对于少更新的数据可以考虑
存储在价格低的存储设备上 。
4,最后还要考虑的就是备份数据的时间, 考虑数
据备份过过程中是否会影响数据库系统的效率,
以及最为重要的就是备份数据的可信程度 ( 是
否常发生变化 ) 。
数据库系统恢复的评价的要素
1,对于数据库系统恢复的评价要考虑被恢复的数据的
优先顺序, 对那些日常要常用的数据要优先恢复,
避免对日常的工作造成影响 。
2,最后也是最为重要的就是要考虑被恢复的数据的确
实有效性 。
其对数据库管理性能的一个基本评价就是看是
否能把事故发生前最近发生的数据保存下来并恢复
的能力为策略的。其恢复策略是和备份策略相关的。
1,事务故障的恢复
? 事务故障是指事务在运行至正常终止点前被中止,
这时恢复子系统应利用日志文件撤消( UNDO)此事
务已对数据库进行的修改。
? 系统的恢复步骤是,
? ( 1)反向扫描文件日志(即从最后向前扫描日志
文件),查找该事务的更新操作;
? ( 2)对该事务的更新操作执行逆操作。即将日志
记录中, 更新前的值, 写入数据库;
? ( 3)继续反向扫描日志文件,查找该事务的其他
更新操作,并做同样处理;
? ( 4)如此处理下去,直至读到此事务的开始标记,
事务故障恢复就完成了。
2,系统故障的恢复
? 系统故障的恢复是由系统在重新启动时自动完成的, 不
需要用户干预 。
? 系统的恢复步骤,
? ( 1) 正向扫描日志文件 ( 即从头扫描日志文件 ),
找出在故障发生前已经提交事务, 将其事务标识记入
重做 ( REDO) 队列 。 同时找出故障发生时尚未完成的
事务, 将其事务标识记入撤消队列 。
? ( 2) 对撤消队列中的各个事务进行撤消 (UNDO)处理 。
进行 UNDO处理的方法是, 反向扫描日志文件, 对每个
UNDO事务的更新操作执行逆操作, 即将日志记录中
,更新前的值, 写入数据库 。
? ( 3) 对重做队列中的各个事务进行重做 (REDO)处理 。
进行 REDO处理的方法是:正向扫描日志文件, 对每个
REDO事务重新执行日志文件登记的操作 。
3,介质故障恢复
发生介质故障后, 磁盘上的物理数据和日志文件
被破坏, 这是最严重的一种故障, 恢复方法是重装
数据库, 然后重做已完成的事务 。 具体来说就是,
? ( 1) 装入最新的数据库后备副本, 使数据库恢复
到最近一次转储时的一致性状态 。 对于动态转储
的数据库副本, 还须同时装入转储开始时刻的日
志文件副本 。
? ( 2) 装入相应的日志文件副本 ( 转储结束时刻的
日志文件副本 ), 重做已完成的事务 。
? 介质故障的恢复需要 DBA介入 。 但 DBA只需要重装
最近转储的数据库副本和有关的各日志文件副本,
然后执行系统提供的恢复命令即可, 具体的恢复
操作仍由 DBMS完成 。
数据库恢复的实现
恢复机制涉及的两个关键问题是,
第一, 如何建立冗余数据;
第二, 如何利用这些冗余数据实施数据库恢复 。 建立冗
余数据最常用的技术是数据转储和登录日志文件 。
? 数据存储:所谓转储即 DBA定期地将整个数据库复制
到磁带或另一个磁盘上保存起来的过程 。 这些备用的
数据文本称为后备副本或后援副本 。
? 当数据库遭到破坏后可以将后备副本重新装入, 但重
装后备副本只能将数据库恢复到转储时的状态, 要想
恢复到故障发生时的状态, 必须重新运行自转储以后
的所有更新事务 。
日志文件登记
? 日志文件是用来记录事务对数据库的更新操作的文
件 。 概括起来日志文件主要有两种格式:以记录为
单位的日志文件和以数据块为单位的日志文件 。
? 日志文件中需要登记的内容包括,
? ① 各个事务的开始 (BEGIN TRANSACTION)标记;
? ② 各个事务的结束 (COMMIT或 ROLL BACK)标记;
? ③ 各个事务的所有更新操作 。
数据库的镜像技术
为避免磁盘介质出现故障影响数据库的可用性,
许多数据库管理系统提供了数据库镜像 ( Mirror)
功能用于数据库恢复 。 即根据 DBA的要求, 自动把整
个数据库或其中的关键数据复制到另一个磁盘上 。
每当主数据库更新时, DBMS自动把更新后的数据复
制过去, 即 DBMS自动保证镜像数据与主数据的一致
性 。 这样, 一旦出现介质故障, 可由镜像磁盘继续
提供使用, 同时 DBMS自动利用镜像磁盘数据进行数
据库的恢复, 不需要关闭系统和重装数据库副本 。
在没有出现故障时, 数据库镜像还可以用于并发操
作, 即当一个用户对数据加排他锁修改数据时, 其
他用户可以读镜像数据库上的数据, 而不必等待该
用户释放锁 。
数据库镜像技术的缺点
由于数据库镜像是通过复制数据实现的,频繁
地复制数据自然会降低系统运行效率,因此在实际
应用中用户往往只选择对关键数据和日志文件镜像,
而不是对整个数据库进行镜像。
? Entity( 实体 ) —— 必须不重复地标识每一条记录 。
? Referential( 引用 ) —— 每个外键值都必须在相关
的表中有一个匹配的主键值 ( 或者为 Null) 。
? Business(业务) —— 这些规则是业务特有的,与
关系数据库理论无关。
备份和恢复工具
比较 流行 的 CA的 ArcServe2000, Veritas 的
BackupWxce以及 Legato的 Networker等 。
7,3
数据库的保密
程序及其应用
Protect是一种具体的保密应用程序 。 这个保密
程序是 DBase,FoxBase,FoxPro数据库在安装该数
据库系统时一起产生, 是 DBase,FoxBase,FoxPro
数据库的一个组成部分
数据库的保密程序是集成到系统数据库中起
保护数据作用的应用程序
7,3,1 Protect的保密功能
1,用户和用户组注册机制
? 通过 Protect的控制菜单为每个用户注册 ( 用户名,
用户 密码, 用户所属组名等 ), 注册值的内容以
用户表的形式存储在一个系统文件 DBsystem.db中 。
当启动 DBase,FoxBase或 FoxPro数据库时, 系统
先 自 动 寻 找 包 含 用 户 注 册 值 内 容 的 文 件
DBsystem.db,启动注册过程 。 当用户输入正确的
注册值时, 系统确认该用户为合法用户, 可以进
入数据库系统;否则为非法用户拒绝进入该数据
库系统 。
Protect为每个用户组建立一种密码,当用户启
用 Protect程序后,数据自动加密。当用户组与文件
组匹配,且用户访问级别与文件及字段特权访问级
别匹配时,Protect保密系统对数据自动解密,用户
才能获取对数据的使用权。
2,用户访问级别控制
对已经获得进入数据库系统权限的用户,
Protect则进一步设置所有用户的访问级别,访问
级别不一样就提供不同的数据使用权,用来控制
对数据库文件和字段的访问。数据库文件的访问
权通过四种对文件的存取权限级别来实现。这四
种特权操作分别是:只读、修改、扩充、删除,
每种特权又分为八级。只有级别相同或级别更高
的用户存取权限才能使用这种设置特权。文件存
取权限设置后,接着设置字段存取权限。字段存
取权限的设置项目有字段存取级别和建立字段特
权。字段的存取级别分为八级,建立字段特权有
三种:只读、非读非写、可读可写
7,3,2 Protect功能的应用
?Protect程序是一个全屏幕, 菜单形式的保密
程序 。 在 Dbase,Foxbase,FoxPro数据库系统
中, 在启用数据库系统的驱动器标识符下输入
Protect,再输入回车键就可以进入保密系统 。
按照屏幕显示的提示内容去操作, 就可以建立
安全保密机制 。
?当屏幕出现 enter password:时, 就要求输入
系统管理员密码 。 系统管理员具有最高使用数
据库的权限, 能够建立整个数据库的安全系统 。
因此要确保该密码的安全性 。
?随着数据库技术的发展, 保密程序也得到了延
伸, 不在是传统的模式 。 access数据库中, 工
具菜单中增加了安全项, 可以直接通过安全项
后的级联菜单来设置数据库的访问权限 。 而后
出现的 SQL和 Oracle等数据库也就更充分的利
用了保密应用程序, 从而让这些数据库本身的
安全性能得到了非常大的提高 。
? 在输入正确的系统管理员密码后, 就可以看到整
个菜单形式的安全管理系统, 选择用户菜单, 这
时, 就可以按照菜单的提示为用户注册, 顺序输
入登陆用户名, 用户密码, 用户组名等信息 。
? 最后, 保存上面的设置, 退出 Protect管理系统后,
Protect的安全保护就起作用了 。 用户只有在给出
了合法的密码等信息后, 才能注册成功, 这时才
能进入数据库系统且在所设置的权限范围内使用 。
7,4
Oracle数据
库的安全
? 主要知识点 ? 如何保证 Oracle数据库的安全就成为整个 MIS
系统安全的重要组成部分。
? 就 Oracle系统中如何进行访问控制?
? Oracle如何来保证数据库系统内数据的完整性?
Oracle是如何进行并发控制的?
? Oracle是如何进行审计跟踪?
7,4,1 Oracle的访问控制
? ORACLE的访问控制方法是采用对用户命名对象的存
取方式来进行访问控制的 。 用户对其命名的对象的
存取进行受特殊权限控制 。 一种特权是存取一命名
对象的许可, 为一种规定格式 。
? ORACLE为访问数据安全的需要, 使用主要有两种机
制:模式和用户 。 模式为模式对象的集合, 模式对
象如表, 视图, 过程和包等 。
安全管理员对用户安全域有下列决策
? ( 1) 是由数据库系统还是由操作系统维护用户授权
信息;
? ( 2) 设置用户的缺省表空间和临时表空间;
? ( 3) 列出用户可存的表空间和在表空间中可使用空
间份额;
? ( 4) 设置用户资源限制的环境文件, 该限制规定了
用户可用的系统资源的总量;
? ( 5) 规定用户具有的特权和角色, 可存取相应的对
象 。
每一个用户有一个安全域,它是一组特性,可决定
下列内容,
? ( 1)用户可用的特权和角色;
? ( 2)用户可用的表空间的份额;
? ( 3)用户的系统资源限制。
1,用户特权和角色鉴别
为了防止非授权的数据库用户的使用, ORACLE
提供二种用户特权和角色鉴别方法:操作系统确认
和相应的 ORACLE数据库确认 。
? 在操作系统允许下, ORACLE可使用操作系统所维
护的信息来鉴定用户 。 由操作系统鉴定用户的优
点是,
?( 1) 用户可更方便地连接到 ORACLE,不需要
指定用户名和口令;
?( 2) 对用户授权的控制集中在操作系统,
ORACLE不需要存储和管理用户口令, 但用户名
在数据库中仍然要维护;
?( 3) 在数据库中的用户名和操作系统审计跟
踪相对应 。
? ORACLE数据库方式的用户确认,ORACLE利用存储
在数据库中的信息可鉴定试图接到数据库的一用
户,这种鉴别方法仅当操作系统不能用于数据库
用户鉴别时才使用。当用户使用一 ORACLE数据库
时执行用户鉴别。每个用户在建立时有一个口令,
用户口令在建立对数据库连接时使用,以防止对
数据库非法的使用。用户的口令以密码的格式存
储在数据库数据字典中,用户可随时修改其口令。
关于表空间的使用有 3种设置选择,
? ( 1)用户的缺省表空间;
? ( 2)用户的临时表空间;
? ( 3)数据库表空间的空间使用定额
2,用户的表空间设置和定额
3,用户资源限制和环境文件
在 ORACLE数据库系统中有下列资源限制,
? ( 1) 为了防止无控制地使用 CPU时间, ORACLE可限
制每次 ORACLE调用的 CPU时间和在一次会话期间
ORACLE调用所使用的 CPU的时间, 以 0.01秒为单位 。
? ( 2) 为了防止过多的 I/O,ORACLE可限制每次调用
和每次会话的逻辑数据块读的数目 。
? ( 3) ORACLE在会话级还提供其它几种资源限制,
? ORACLE可限制几种类型的系统资源的使用,每种资
源可在会话级、调用级或两者上控制。
用户环境文件
? 用户环境文件是指定资源限制的命名集, 可赋给
ORACLE数据库的有效的用户 。
? 利用用户环境文件可容易地管理资源限制。要使用
用户环境文件,首先应将数据库中的用户分类,决
定在数据库中全部用户类型需要多少种用户环境文
件。在建立环境文件之前,要决定每一种资源限制
的值。例如一类用户通常不执行大量逻辑数据块读,
那就可将 LOGICAL-READS-PER-SESSION和 LOGICAL-RE
ADS-PER-CALL设置相应的值。在许多情况中决定一
用户的环境文件的合适资源限制的最好的方法是收
集每种资源使用的历史信息
7,4,2 Oracle的完整性
ORACLE应用于关系数据库的表的数据完整性有下
列类型,
? ( 1) 在插入或修改表的行时允许不允许包含有空值
的列, 称为空与非空规则;
? ( 2) 唯一列值规则, 允许插入或修改的表行在该列
上的值唯一;
? ( 3) 引用完整性规则, 同关系模型定义;
ORACLE允许定义和实施上述每一种类型的数据
完整性规则, 这些规则可用完整性约束和数据库触
发器定义 。
? 完整性约束, 是对表的列定义一规则的说明性方
法 。
? 数据库触发器,是使用非说明方法实施完整性规
则,利用数据库触发器(存储的数据库过程)可
定义和实施任何类型的完整性规则
7,4,3 Oracle的并发控制
Oracle数据库作为一个共享资源,可为多个
应用程序所共享。为了有效地利用数据库资源,
可能多个程序或一个程序的多个进程并行地运行,
这就是数据库的并行操作。在多用户数据库环境
中,多个用户程序可并行地存取数据库,如果不
对并发操作进行控制,会存取不正确的数据,或
破坏数据库数据的一致性 。
1,数据库不一致的类型
( 1) 不一致性;
( 2) 不可重复读;
( 3) 读脏数据;
( 4) 丢失更改;
( 5) 破坏性的 DDL操作;
2,封锁
封锁是防止存取同一资源的用户之间破坏性的
干扰的机制, 该干扰是指不正确地修改数据或不正
确地更改数据结构 。
在多用户数据库中使用两种封锁:排它 ( 专用 )
封锁和共享封锁 。
? 排它封锁禁止相关资源的共享, 如果一事务以排
它方式封锁一资源, 仅仅该事务可更改该资源,
直至释放排它封锁 。
? 共享封锁允许相关资源可以共享, 几个用户可同
时读同一数据, 几个事务可在同一资源上获取共
享封锁 。 共享封锁比排它封锁具有更高的数据并
行性 。
3,ORACLE多种一致性模型
? ORACLE在两个不同级上提供读一致性:语句级读
一致性和事务级一致性 。 ORCLE总是实施语句级读
一致性, 保证单个查询所返回的数据与该查询开
始时刻相一致 。 所以一个查询从不会看到在查询
执行过程中提交的其它事务所作的任何修改 。
? ORACLE允许选择实施事务级读一致性, 它保证在
同一事务内所有查询的数据
4,封锁机制
ORACLE将封锁分为下列类,
? ( 1) 数据封锁:数据封锁保护表数据, 在多个用户
并行存取数据时保证数据的完整性 。 数据封锁防止相
冲突的 DML和 DDL操作的破坏性干扰 。 DML操作可在两
个级获取数据封锁:指定行封锁和整个表封锁, 在防
止冲突的 DDL操作时也需表封锁 。 当行要被修改时,
事务在该行获取排它数据封锁 。 表封锁可以有下列方
式:行共享, 行排它, 共享封锁, 共享行排它和排它
封锁 。
? ( 2) DDL封锁 ( 字典封锁 ), DDL封锁保护模式对象
( 如表 ) 的定义, DDL操作将影响对象, 一个 DDL语句
隐式地提交一个事务 。 当任何 DDL事务需要时由
ORACLE自动获取字典封锁, 用户不能显式地请求 DDL
封锁 。 在 DDL操作期间, 被修改或引用的模式对象被
封锁 。
? ( 3)内部封锁:保护内部数据库和内存结构,这
些结构对用户是不可见的
5,手工的数据封锁
下列情况允许使用选择代替 ORACLE缺省的封锁机制,
? ( 1) 应用需要事务级读一致或可重复读;
? ( 2) 应用需要一事务对一资源可排它存取, 为了
继续它的语句, 具有对资源排它存取的事务不必
等待其它事务完成;
? ( 3) ORACLE自动封锁可在二级被替代:事务级各
系统级;
? ( 4) 事务级:包含下列 SQL语句的事务替代
ORACLE 缺省封锁,LOCK TABLE 命令,
SELECT… FOR UPDATE命令, 具有 READ ONLY选项
的 SET TRANSACTIN命令 。 由这些语句所获得的封
锁在事务提交或回滚后所释放;
? ( 5) 系统级:通过调整初始化参数 SERIALIZABLE
和 REO-LOCKING,实例可用非缺省封锁启动 。 该两
参数据的缺省值为,
?SERIALIZABLE=FALSE
?ORW-LOCKING=ALWAYS
7,4,4 Oracle的审计追踪
ORACLE支持三种审计类型,
? ( 1) 语句审计, 对某种类型的 SQL语句审计, 不
指定结构或对象;
? ( 2) 特权审计, 对执行相应动作的系统特权的使
用审计;
? ( 3) 对象审计, 对一特殊模式对象上的指定语句
的审计 。
ORACLE所允许的审计选择限于下列方面,
? ( 1) 审计语句的成功执行, 不成功执行, 或者其
两者;
? ( 2) 对每一用户会话审计语句执行一次或者对语
句每次执行审计一次;
? ( 3) 对全部用户或指定用户的活动的审计 。
Oracle审计追踪是对选定的用户动作的监控
和记录, 通常用于,
? ( 1) 审查可疑的活动 。 例如:数据被非授权用
户所删除, 此时安全管理员可决定对该 数据库
的所有连接进行审计, 以及对数据库的所有表的
成功地或不成功地删除进行审计 。
? ( 2) 监视和收集关于指定数据库活动的数据 。
例如,DBA可收集哪些被修改, 执行了多少次逻
辑的 I/O等统计数据 。
7.5
本章小结
数据库系统信息安全性主要依赖于两个层次:
一层是数据库管理系统本身提供的用户名 /口令字识
别、视图、使用权限控制、审计等管理措施,大型
数据库管理系统 Oracle,Sybase,MySQL等均有此功
能;另一层就是靠应用程序设置的控制管理,如使
用较普遍的 数据库 Foxbase,Foxpro等。本章主要介
绍了 数据库系统的安全策略与安全评估、安全技术、
数据库的保密程序及其应用等理论知识,并列举了
数据库安全性实例 —— Oracle系统的安全。
数据库系统的安全技术主要有三个方面:口令保护
技术、数据库加密技术和数据库备份与恢复技术。口令
保护是最基本的安全技术。数据库加密技术包括数据库
的加密要求、加密方式和数据库文件的加密等。数据库
备份与恢复技术介绍了对数据库备份的评估、性能、策
略、数据库系统的恢复和完整性等。数据库的保密程序
是集成到系统数据库中起保护数据作用的应用程序(如
Protect是一种在 DBase,FoxBase,FoxPro数据库中具体
应用的保密程序)。 Oracle是一种使用较普遍的大型数
据库管理系统,它的安全性尤为重要。本章最后详细介
绍了 Oracle的访问控制主要是通过用户鉴定和存取控制
来实现的; Oracle的完整性约束表示有对列的约束、元
组约束以及实体完整性约束、参照完整性约束; Oracle
的并发控制;审计追踪(语句审计、特权审计和模式对
象审计)等内容。