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