




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第章数据库保护,第6章 数据库保护 本 章 要 点 1.掌握数据库的安全性的概念,理解数据库中权限和用户的分类,并掌握数据库中权限的授权和收权。 2.掌握数据库完整性的概念,理解完整性约束条件,深入理解安全性和完整性的区别。 3.掌握数据库当中的故障的种类,理解数据库恢复中经常使用的数据库转储和登记日志文件等技术,了解对故障的恢复策略。,第章数据库保护,数据库保护指的是防止数据库中的数据被非法使用或非法修改,保证数据库中的数据正确、可靠,保证数据库中的数据不会丢失。因此,数据库保护包含三个方面的内容,第一是保证数据库中的数据不被破坏,这是通过数据库的安全机制实现的;第二是保证数据库中的世界与现
2、实世界相符,这是通过数据库的完整性控制机制实现的;第三是保证当由于各种原因而造成数据损害时,数据不会丢失,这是通过数据库的备份和恢复机制实现的。本章我们介绍这三方面的内容。,第章数据库保护,6.1 数据库安全性 安全性对于一个数据库管理系统来说是至关重要的。数据库通过存储了大量的数据,这些数据可能包括了个人信息、客户清单或其他机密资料。如果有人未经授权非法侵入了数据库,并查看和修改了数据,那么将会造成极大的危害,特别是在银行、金融等系统中更是如此。 安全性问题并非是数据库系统所独有,实际上在许多系统上都存在同样的问题。数据的安全控制是指在数据库系统的不同层次提供安全防范措施,以免数据库系统遭到
3、有意或无意的损坏。 在数据库中,可采用加密存、取数据的方法防止有意的非法活动;使用用户身份验证、限制操作权来控制有意的非法操作;采用提高系统的可靠性和数据备份来控制无意的破坏。,第章数据库保护,数据库的安全性和完整性是两个不同的概念,完整性是指防止合法用户的无意操作而造成的数据错误。通俗的来说,安全性防范的是非法用户的有意破坏,完整性防范的是合法用户的无意破坏。,第章数据库保护,6.1.1 安全控制模型 数据库中的数据被恶意破坏的形式有多种,可能是物理地破坏计算机设备,也可能是窃取信息、恶意修改和删除数据等,这些都会产生严重的后果。 数据库的安全涉及很多层面,除了数据库管理系统本身应该具备安全
4、保护功能外,还需要从管理机制、人员行为等多方面采取措施。所以,数据库安全性应该从如下几个层次采取措施: 物理层 人员层 操作系统层 数据库控制层,第章数据库保护,在一般数据库应用系统中,安全措施是一级一级层层设置的。图6.1显示了从用户使用数据库应用程序开始一直到访问后台数据库数据经过的安全认证过程。 图6.1 数据库应用系统的安全模型,第章数据库保护,当用户访问数据库数据时,首先应该进入到数据库系统。用户进入到数据库系统通常是通过数据库应用程序实现的,这时用户要向数据库应用程序提供其身份,然后数据库应用程序将用户的身份要给数据库管理系统进行验证,只有合法的用户才能进入到下一步的操作。若是合法
5、用户,当其要进行数据库操作时,DBMS还要验证此用户是否具有这种操作权。如果有操作权才能进行操作,否则拒绝执行用户的操作。在操作系统一级也有相应的保护措施,比如设置文件的访问权限等。对于存储在磁盘上的文件,还可以加密存储,这样即使数据被人窃取,窃取者也很难读懂数据。另外,还可以将数据库文件保存多份,这样当出现意外情况时(比如,磁盘坏了),不至于丢失数据。 这里,我们只讨论与数据有关的用户身份验证和用户权限管理等技术。,第章数据库保护,6.1.2 存取控制 数据库安全性所关心的主要是DBMS的存取控制机制。数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人
6、员无法接近数据,者主要是通过数据库系统的存取控制机制实现的。 存取控制机制主要包括以下两部分: 1.定义用户权限,并将用户权限登记到数据字典中。 2.合法权限检查,每当用户发出存取数据的操作请求后,DBMS首先查看数据字典,根据安全规则进行合法权限检查。若用户的操作不在所定义的权限内,则系统将拒绝执行操作。 用户权限定义和合法权限检查机制一起构成了DBMS的安全子系统。,第章数据库保护,存取控制方式主要分为两种:自主存取控制(Discretionary Control,DAC)和强制存取控制(Mandatary Control,MAC)。 自主存取控制方式就是由用户(如数据库管理员)自主控制操
7、作数据库对象的权限,哪些用户可以对哪些对象进行哪些操作,完全取决于用户之间的授权。任何用户只要需要,就有可能获得对任何对象的操作权限。这种存取控制方式非常灵活,但有时容易控制。目前大多数数据库管理系统都支持自主存取控制方式。 强制存取控制方式就是每一个数据对象被标以一定的密级,每一个用户也被授予一个许可证级别,对于任意一个对象,只有具有合法许可证的用户才可以存取。 强制存取控制本质上具有分层特点,通常具有静态的、严格的分层结构,与现实世界的层次管理相吻合。强制存取控制特别适合层次分明的军方和政府等的数据管理。,第章数据库保护,6.1.3 数据库权限的分类及用户的分类 1.权限的分类 通常情况下
8、,数据库中权限分为两类,一类是维护数据库管理系统的权限,另一类是操作数据库中的对象和数据的权限,这类权限又可以分为两种,一种是操作数据库对象的权限,包括创建、删除和修改数据库对象;另一种是操作数据库数据的权限,包括对表、视图数据的增、删、改、查等操作。 2.用户的分类 数据库中的用户按照其操作权限的大小可分为如下三类: 数据库系统管理员 数据库对象拥有者 普通用户,第章数据库保护,6.1.4 操作权限定义 SQL语言提供了安全性控制方面的语句。包括授权(GRANT)、收权(REVOKE),下面分别介绍这两个语句。 1授权 SQL语言用GRANT语句实现对用户的授权。大致语法格式为: GRANT
9、 , ON 操作对象 TO , WITH GRANT OPTION 其语义为:将对指定数据对象的指定操作权限授予指定的用户。 对不同类型的操作对象有不同的操作权限,常见的操作权限如表6.1所示。,第章数据库保护,表6.1 不同对象类型的操作权限 对属性列和视图的操作权限有:查询(SELECT)、插入(INSERT)、修改(UPDATE)、删除(DELETE)以及这四种权限的总和(ALL PRIVILEGES)。 对基本表的操作权限有:查询(SELECT)、插入(INSERT)、修改(UPDATE)、删除(DELETE)、修改表(ALTER)和建立索引(INDEX)以及这六种权限的总和(ALL
10、PRIVILEGES)。,第章数据库保护,对数据库可以建立表(CREATETAB)的权限,该权限属于DBA,可由DBA授予普通用户,普通用户拥有此权限后可以建立基本表,基本表的属主(Owner)拥有对该表的一切操作权限。 如果指定了WITH GRANT OPTION子句,它使得被授权的用户具有授权权限,即被授权的用户有权力将得到的指定权限再授予其他用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。,第章数据库保护,2收权 可以使用REVOKE语句将被授予的权限收回。在收回某用户的权限时,系统自动将此次用户转授给其他用户的此权限一并收
11、回。 收回创建对象权 REVOKE ,. FROM ,. 其中,和的含义GRANT语句。 收回数据操作权 REVOKE ,. ON FROM ,. 其中,各选项含义同GRANT语句。,第章数据库保护,6.2 数据库完整性 数据库的完整性是指数据的正确性和相容性。 所谓数据库完整性,是衡量数据库数据质量好坏的一种标志,是确保数据库中数据的一致,正确性以及符合企业规则的一种思想,是使无序数据条理化,确保正确的数据被存放在正确位置的一种手段。它是为了防止数据库中出现不符合语义的数据,为了维护数据的完整性,数据库管理系统必须提供一种机制来检查数据库中的数据是否满足语义规定的条件。这些加在数据库数据上的
12、语义约束条件就是数据完整性约束条件,这些约束条件作为表定义的一部分存储在数据库中。而DBMS检查数据是否满足完整性的机制就称为完整性检查。 数据的完整性和安全性是两个不同的概念。,第章数据库保护,满足数据完整性的要求必须满足以下特点: 数据的值必须正确无误,即数据类型必须正确,数据的值必须在规定范围之内。 数据的存在必须确保同一表格数据之间及不同表格数据之间的和谐关系。 完整性检查是围绕着完整性约束条件进行的,因此完整性约束条件是完整性控制机制的核心。完整性约束条件作用的对象可以是关系、元组和列三种。 列约束主要是列的数据类型、取值范围、精度、排序等约束条件。 元组的约束是元组中各个字段间的联
13、系的约束。 关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。,第章数据库保护,完整性约束条件涉及这三类对象,其状态可以是静态的,也可以是动态的。所谓静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件。它是反映数据库状态合理性的约束,这是最重要的一类完整性约束。 动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件。 综合上述两个方面,可以将完整性约束条件分为六类。 1静态列级约束 静态列级约束是对一个列的取值域的说明,包括以下几个方面: 对数据类型的约束 对数据格式的约束 对取值范围或取值集合的约束 对空值的约束,规定哪些列可以为空值,哪些列不能
14、为空值,第章数据库保护,2静态元组约束 一个元组是由若干个列值组成的,静态元组约束就是规定元组的各个列之间的约束关系。例如,订货关系中包含发货量、订货量等列,规定发货量不得超过订货量。 3静态关系约束 静态关系约束是指在一个关系的各个元组之间或者若干关系之间存在的约束。常见的静态约束有: 实体完整性约束 参照完整性约束 实体完整性约束和参照完整性约束是关系模型的两个极其重要的约束,称为关系的两个不变性。 函数依赖约束 大部分函数依赖约束都在关系模式中定义。 统计约束 即字段值与关系中多个元组的统计值之间的约束关系。,第章数据库保护,4动态列级约束 动态列级约束是修改列定义或列值时应满足的约束条
15、件,包括下面两方面: 修改列定义时的约束。 修改列值时的约束。 修改列值时有时需要参照其旧值,并且新旧值之间需要满足某种约束条件。 5动态元组约束 动态元组约束是指修改元组的值时元组中各个字段间需要满足某种约束条件。 6动态关系约束 动态关系约束是加在关系变化前后状态上的限制条件。,第章数据库保护,6.3 数据库的备份与修复 尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部
16、分数据丢失,因此数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。恢复子系统是数据库管理系统的一个重要组成部分。数据库子系统所采用的恢复技术是否行之有效,不仅对系统的可靠程度起着决定性作用,而且对运行效率也有很大影响,是衡量系统性能优劣的重要指标。,第章数据库保护,6.3.1 故障的种类 数据库系统中可能发生各种各样的故障,这里谈到的故障是指DBMS本身在运行过程中产生的故障,没有包括网络故障和数据传输过程中的通讯故障。大致可以分以下4类。 1.事务内部的故障 它是指由于事务没有达到预期的终点,导致数据库可能处于一种不正确的
17、状态。事务内部的故障有的是可以通过事务程序本身发现的有的是非预期的,不能由事务程序处理的。 事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此,数据库可能处于不正确状态。恢复程序的作用就是要在不影响其它事务运行的情况下,强行回滚(ROLLBACK)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好像根本没有启动一样。这类恢复操作称为事务撤消(UNDO)。,第章数据库保护,2.系统故障 系统故障是指造成系统停止运转的任何事件,使得系统要重新启动,通常称为软故障(Soft Crash)。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其
18、是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务。重做(Redo)所有已提交的事务,以将数据库真正恢复到一致状态。,第章数据库保护,3.介质故障 介质故障称为硬故障(Hard Crash),硬故障指外存故障。如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在
19、存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。 4.计算机病毒 计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。 总结以上各类故障,对数据库的影响有两种可能性:一是数据库本身被破坏;二是数据库没有破坏,但数据可能不正确。 恢复的基本原理十分简单,可以用一个词来概括:冗余。,第章数据库保护,6.3.2恢复实现技术 在数据库系统中,恢复的基本含义是恢复数据库本身。也就是说,在发生某种故障使数据库当前状态已经不再正确时,把数据库恢复到已知为正确的
20、某一状态。恢复机制涉及的两个关键问题是:第一, 如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。 建立冗余数据最常用的技术是数据转储和登录日志文件。 1.数据转储 数据转储是数据库恢复中采用的基本技术。 1)转储的定义 所谓转储,就是DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。,第章数据库保护,当数据库遭到破坏后可以将后备副本重新装入,但重装后备副本只能将数据库恢复到转储时的状态,要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务。 系统在Ta时刻停止运行事务进行数据库转储,在Tb时刻转储完毕,得到Tb时刻
21、的数据库一致性副本。系统运行到Tf时刻发生故障。为恢复数据库,首先由DBA重装数据库后备副本,将数据库恢复至Tb时刻的状态,然后重新运行自Tb时刻至Tf时刻的所有更新事务,这样就把数据库恢复到故障发生前的一致状态。 转储是十分耗费时间和资源的,不能频繁进行, DBA应该根据数据库使用情况确定一个适当的转储周期。,第章数据库保护,2)转储的分类 转储按转储时的状态分为静态转储和动态转储。 静态转储是在系统中无运行事务时进行的转储操作。 动态转储是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。 转储按转储方式分为海量转储和增量转储。 海量转储是指每次转储全部数据库。 增量转储
22、则指每次只转储上一次转储后更新过的数据。 从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来会更方便些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。 数据转储有两种方式,分别可以在两种状态下进行,因此数据转储方法可以分为四类:动态海量转储、动态增量转储、静态海量转储和静态增量转储。如表6.2所示。,第章数据库保护,表6.2 数据转储分类,第章数据库保护,2.登录日志文件 日志是指记载数据库修改信息的数据结构。 日志文件是用来记录事务对数据库的更新操作的文件。 不同数据库系统采用的日志文件并不完全一样。概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为
23、单位的日志文件。 1)日志文件的格式和内容 以记录为单位的日志文件,包括: 各个事务的开始(BEGIN TRANSACTION)标记 各个事务的开始(BEGIN TRANSACTION)标记 各个事务的所有更新操作 这里每个事务开始的标记、结束标记和每个更新操作构成一个日志记录(Log Record)。,第章数据库保护,以数据块为单位的日志文件,包括: 事务标识(标明是那个事务); 操作的类型(插入、删除或修改); 操作对象(记录内部标识); 更新前数据的旧值(对插入操作而言,此项为空值); 对于以数据块为单位的日志文件,日志记录的内容包括事务标识和被更新的数据块。由于将更新前的整个块和更新后
24、的整个块都放入日志文件中,操作的类型的操作对象等信息就不必放入日志记录中。,第章数据库保护,2)日志文件的作用 事务故障恢复和系统故障必须用日志文件。 在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库。 在静态转储方式中,也可以建立日志文件。 当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态,如图6.3所示。,第章数据库保护,图6.3 利用日志文件进行恢复 3)登记日志文件(Lo
25、gging) 为保证数据库是可恢复的,登记日志文件时必须遵循两条原则: 登记的次序严格按并发事务执行的时间次序; 必须先写日志文件,后写数据库。,第章数据库保护,6.3恢复策略 6.4.1 事务故障的恢复 事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是: 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。 对该事务的更新操作执行逆操作。 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 如此处理下去,直至读到此事务的开始标记,事
26、务故障恢复就完成了。,第章数据库保护,6.4.2 系统故障的恢复 系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。 系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。系统的恢复步骤是: 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中主题班会课件大全
- 二零二五年度白酒企业定制酒研发与购销合同
- 2025版办公室行政管理岗位劳动合同
- 2025版北京大数据处理与分析技术服务合同
- 2025年度特色小镇拆迁房投资合作合同
- 2025版彩钢板产品进出口代理合同
- 2025年度高科技产品采购及质量保障服务合同
- 二零二五年度智能安防技术研发与施工合同
- 2025版高端制造厂房土建施工及配套设施安装合同
- 二零二五年专业按摩师技能培训与就业承包协议
- 2025年中国体外培育牛黄行业发展监测及投资战略咨询报告
- 完整版肿瘤科医疗质量评价体系与考核标准
- 设备厂房租赁合同
- 复烤厂安全生产管理培训
- 酒店接送车辆管理准则
- 华师大版七年级上册初一数学(基础版)(全册知识点考点梳理、重点题型分类巩固练习)(家教、补习、复习用)
- 保洁安全保障方案
- 水处理工程电气及自控系统安装施工方案
- 二下数学课内计算拔尖练习小纸条(30条)
- 预应力双T板监理细则
- 悬臂高空作业车施工方案
评论
0/150
提交评论