版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理及应用教案,第5章 数据库的管理,5.1 数据库的安全控制 5.2 数据库的恢复技术 5.3 数据库的并发控制,5.1 数据库的安全控制,数据库的安全性是指保护数据库防止用户不合法地使用数据库所造成的数据泄密、更改或破坏。在数据库系统中,大量数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,从而使得安全问题更为突出。系统安全保护措施是否有效,是评价数据库系统性能的主要指标。,5.1.1概述,数据库安全性是保证数据库能否反映现实世界的重要措施,用以防止非法使用数据库中的数据,防止错误数据的输入和输出。完整性措施的防范对象是不合语义的数据。可见,安全性是针对未授权用户而对数据采取的
2、保护措施,而完整性是针对授权用户而采取的数据保护措施。数据库的完整性是指尽可能避免对数据库的无意滥用;数据库的安全性是指尽可能避免对数据库的恶意滥用。无意滥用可以通过约束来避免,完全避免恶意滥用是不可能的,但可以尽量增加一些保护措施,提高数据库的安全性。,5.1.1概述,一般计算机系统中,安全措施往往是一级一级层层设置的,其模型如图5-1所示。,图5-1 计算机系统安全模型,5.1.1概述,安全的操作系统是数据库安全的前提。数据库系统的安全措施有以下几个方面: (1)权限机制 通过权限机制,限定用户对数据的操作权限,把数据的操作限定在指定权限的用户范围内。,(2)视图机制 通过建立用户视图,用
3、户或应用程序只能通过视图来操作数据,保证了视图之外的数据的安全性。 (3)数据加密 对数据库中的数据进行加密,可以防止数据在存储和传输过程中失密。,5.1.1概述,5.1.2 用户标识和鉴别,任何数据库用户要访问数据库时,都需声明自己的用户标识符,只有通过核实的人才能进入系统,这个核实工作就称为用户鉴别。鉴别的方法有以下3种: 1口令(Password) 口令是最广泛使用的用户鉴别方法。所谓口令就是注册时DBMS 给予每个用户的一个字符串。,2利用用户的个人特征 用户的个人特征包括指纹、签名、声波纹等。这些鉴别方法效果不错,但需要特殊的鉴别装置。 3磁卡 磁卡是使用较广的鉴别手段,磁卡上记录有
4、用户的用户标识符。,5.1.2 用户标识和鉴别,5.1.3 访问控制,鉴别解决了用户是否合法的问题,但合法用户的权利是不应该相同的,任何合法用户都只能执行他有权执行的操作,只能访问他有权访问的数据库数据。访问控制的目的就是解决此问题,主要包括 授权 检查权限,1数据库用户的种类,数据库用户按其访问权利分为3类: 一般数据库用户 具有创建表权力的用户 具有DBA特权的用户。,1数据库用户的种类,1)一般数据库用户具有CONNECT特权的用户 该类用户可进入该数据库系统,但只有以下权利: (1)根据授权,查新或更改数据库中的部分数据; (2)可以创建视图或定义数据别名。,2)具有创建表权力的用户具
5、有RESOURCE特权的用户 该类用户除具有一般数据库用户所具有的权利外,还有以下特权: (1)可以在此数据库内创建表、 索引和聚簇; (2)可以授予其他数据库用户对其所创建的表的各种访问,还可收回授出的访问权; (3)有权跟踪审计( audit )自己所创建的数据对象。,1数据库用户的种类,1数据库用户的种类,3)具有DBA特权的用户 具有DBA特权的用户可支配这个数据库的所有资源。DBA除拥有RESOURCE所拥有的权利外,主要还有以下特权: (1)可访问数据库中任何数据; (2)为数据库用户注册及撤销注册的权利; (3)授予及收回数据库用户对数据库的访问权; (4)有权控制这个数据库的跟
6、踪审计 。,2DBA对用户的注册工作,(1)DBA为用户进行注册GRANT 在SQL中语言,DBA可用GRANT命令为用户注册,命令格式如下: GRANT TO IDENTIFIED BY 其中, 有3种: CONNECT,RESOURCE和DBA。 对于新用户,命令中必须有口令选项;已是数据库的用户,只是增加特权类型,则不必再有口令 。,举例,【例5.1】把新用户WANG注册为RESOURCE用户,口令为W02XYZ: GRANT RESOURCE TO WANG IDENTIFIED BY W02XYZ 【例5.2】再把【例5.1】中用户WANG注册为DBA用户(此时不必有口令项): GR
7、ANT DBA TO WANG,2DBA对用户的注册工作,(2)DBA撤消对用户的注册REVOKE命令格式如下: REVOKE FROM 其中 同前。 执行此命令后, 所具有的即被撤销。若此用户的所有都被撤销,则他就成为非法用户了。,2DBA对用户的注册工作,(3)一般授权GRANT 一般授权是指授予某用户对某数据对象进行某种操作的权利。 在SQL语言中,DBA及拥有权限的用户可用GRANT语句向用户授权。格式如下: GRANT ,权限 ON TO , WITH GRANT OPTION;,不同类型的操作对象有不同的操作权限,常见的操作权限如表5-1所示:,2DBA对用户的注册工作,说明: (
8、1)PUBLIC 。接受权限的用户可以是单个或多个具体的用户,PUBLIC参数可将权限赋给全体用户。 (2)WITH GRANT OPTION。若指定了该子句,那麽,获得了权限的用户还可以将权限赋给其他用户。,举例,【例5.3】将对供应商S、零件P、项目J的所有操作权限赋给用户User1及User2。 GRANT ALL PRIVILEGES ON TABLE S,P,J TO User1,User2; 【例5.4】将对供应商S的插入权限赋给用户User1,并允许将此权限赋给其它用户。 GRANT INSERT ON TABLE S TO User1 WITH GRANT OPTION;,2D
9、BA对用户的注册工作,【例5.5】DBA把数据库SPJ中建立表的权限赋给用户User1。 GRANT CREATETAB ON DATABASE SPJ TO User1;,2DBA对用户的注册工作,(4)收回权限REVOKE 语句格式: REVOKE, ON FROM ,;,举例,【例5.6】将用户User1及User2对供应商S、零件P、项目J的所有操作权限收回。 REVOKE ALL PRIVILEGES ON TABLE S,P,J FROM User1, User2; 【例5.7】将所有用户对供应商S的所有查询权限收回。 REVOKE SELECT ON TABLE S FROM P
10、UBLIC; 【例5.8】将User1用户对供应商S的供应商编号Sno的修改权限收回。 REVOKE UPDATE(Sno) ON TABLE S FROM User1;,5.2数据库的恢复技术,数据库恢复技术和并发控制是数据库管理系统的两个重要组成部分。数据库恢复主要是指恢复数据库本身,即在故障引起数据库当前状态不一致后,将数据库恢复到某个正确状态或一致状态。恢复的原理非常简单,就是要建立冗余数据(redundancy)。,5.2.1 事务,数据库恢复需要掌握的重点内容有: 事务的基本概念 事务的特性 故障的类型 恢复的方法与策略。,1事务 事务是一个操作序列,这些操作“要么都做,要么都不做
11、”,是数据库环境中不可分割的逻辑工作单位。 在 SQL语言中事务定义的语句有三条: (1)BEGIN TRANSACTION 事务开始 (2)COMMIT事务提交。 (3)ROLLBACK 事务回滚。,5.2.1 事务,(1)原子性(atomicity):事务是原子的,要么都做,要么都不做。 (2)一致性( consistency):事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。因此,当数据库只包含成功事务提交的结果时,称数据库处于一致性状态。 (3)隔离性( isolation ):事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事务
12、都是不可见的。 (4)持久性(durability):一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。,2事务的四个特性,一般将事物的执行状态分为5种,事务必须处于这5种状态之一。 (1) 活动状态:事务的初始状态,事务执行时处于这个状态。,3. 事务的状态,(2)部分提交状态:当操作序列的最后一条语句自动执行后,事务处于部分提交状态。这时,事务虽然已经完全执行,但由于实际输出可能还临时驻留在内存中,在事务成功完成前仍有可能出现硬件故障,事务仍可能不得不中止。因此,部分提交状态并不等于事务成功执行。,3. 事务的状态,(3) 失败状态:由于硬件或逻辑等错误,使得事务不能继续
13、正常执行,事务就进入了失败状态,处于失败状态的事务必须回滚(ROLLBACK)。这样,事务就进入了中止状态。,3. 事务的状态,(4) 中止状态:事务回滚并且数据库恢复到事务开始执行前的状态。 (5) 提交状态:当事务成功完成后,称事务处于提交状态。只有事务处于提交状态后,才能说事务已经提交。,3. 事务的状态,可以在事务中执行如下的操作,实现事务状态的转换: (1) BEGIN -TRANSATION:开始运行事务,使事务进入活动状态。 (2) END -TRANSATION:说明事务中的所有读写操作都已完成,使事务进入部分提交状态,把事务的所有操作对数据库的影响存入数据库。,3. 事务的状
14、态,(3) COMMIT TRANSACTION :标志事务已经成功地完成,事务中的所有操作对数据库的影响已经安全地存入数据库,事务进入提交状态,结束事务的运行。 (4) ABORT - TRANSACTION :标志事务进入失败状态,系统撤消事务中所有操作对数据库和其他事务的影响,结束事务的运行。 图 5-2给出了事务的状态转换。,3. 事务的状态,图5-2 事务的状态转换图,5.2.2 备份,1数据库备份的必要性 人为错误、硬盘损坏、电脑病毒、断电或是天灾人祸等等都有可能造成数据的丢失。正确分析威胁数据安全的因素,及时地备份数据,能使系统的安全防护更有针对性。,2.故障的种类,(1)事务内
15、部故障: 事务故障是由于事务程序内部错误而引起的。事务内部的故障有的是可以通过事务程序本身发现。但也有些是非预期的,不能由事务程序处理。对于可预期的错误,应该由应用程序以回滚的方式来恢复,非预期的故障应用程序无法处理,是由DBMS系统来实现故障恢复的。事务故障通常指非预期的故障。,2.故障的种类,(2)系统故障: 通常称为软故障,是指造成系统停止运行的任何事件,使得系统要重新启动,如CPU故障 ,操作 系统故障,突然停电等。系统故障只是丢失了数据缓冲区中的内容,影响正在执行的所有事务,但不会破坏数据库。系统故障中止了事务的执行过程,破坏了事务的原子性,由于缓冲区中的内容可能部分已写入数据库,系
16、统重启后数据库可能处于不一致状态。,2.故障的种类,(3)介质故障: 通常称为硬故障。如磁盘损坏、磁头碰撞、瞬时强磁干扰。此类故障发生几率小,但破坏性最大。 (4)计算机病毒: 是一种人为的故障和破坏,是一些恶作剧研制的一种计算机程序,可以繁殖和传播。,5.2.3 恢复,1故障的恢复技术 要使数据库在发生故障后能够恢复,必须建立冗余数据,在故障发生后利用这些冗余数据实施数据恢复。建立冗余数据常用的技术是数据转储和建立日志文件。,1故障的恢复技术,数据转储是将数据库复制到另一个磁盘或磁带上保存起来的过程,又称数据备份。数据转储分为静态转储和动态转储。 静态转储是指在转储期间不允许对数据库进行任何
17、存取、修改活动,得到与数据库完全一致的副本。静态转储又可分为完全转储和增量转储。 完全转储是转储当前数据库的全部数据 增量转储只转储上次备份后发生改变的数据 动态转储是指在转储期间允许对数据库存取和修改, 即转储可以与事务并行执行。,1故障的恢复技术,为保证数据库是可恢复的,日志文件的登记必须遵循两条原则: (1)登记的次序严格按并发事务执行的时间次序。 (2)必须先写日志文件,后写数据库。 为了避免磁盘介质出现故障影响数据库的可用性,许多DBMS提供数据库镜像功能用于数据库恢复。数据库的关键技术在于建立冗余数据,即备份数据。如何在系统出现故障后能够及时使数据库恢复到故障前的正确状态,就是数据
18、库恢复技术。,2恢复策略,有了数据转储和日志文件,就可以在系统发生故障时进行恢复,故障恢复有两个操作: (1)撤消事务(UNDO):将未完成的事务撤消,使数据库回复到事务执行前的正确状态。 撤消事务的过程如下:反向查看未完成的事务日志(由后向前扫描),查找事务的更新操作;对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库中;继续反向扫描日志文件,查找该事务的其他更新操作并执行操作直至事务开始标志。,2恢复策略,(2)重做事务(REDO):将已经提交的事务重新执行。 重做事务的过程如下:从事务的开始标识起,正向扫描日志文件,重新
19、执行日志文件登记的该事务对数据库的所以操作,直至事务结束标识。,2恢复策略,对于不同的故障,采取不同的恢复策略。 (1)事务故障的恢复 事务故障是事务在运行至正常终止点 (COMMIT或ROLLBACK)前终止,日志文件只有该事务的标识而没有结束标识。对这类故障的恢复通过撤销(UNDO)产生故障的事务,使数据库恢复到该事务执行前的正确状态来完成的。,2恢复策略,(2)系统故障的恢复 系统故障会使数据库的数据不一致,原因有两个:一是未完成的事务对数据库的更新可能已写入数据库;二是已提交的事务对数据库的更新可能还在缓冲区中没来得及写入数据库。因此恢复操作就是要撤销故障发生时未完成的事务,重做(RE
20、DO)已提交的事务。,2恢复策略,(3)介质故障的恢复 介质故障由于数据库遭到破坏,需要重装数据库,装载故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤消和重做来恢复。,5.3数据库的并发控制,5.3.1事务的调度 我们考虑一个简单的银行数据库系统。设每个帐号在数据库中具有一条数据库记录,用以记录这个帐号的存款数量和其他信息。设有两个事务T0和T1, 事务T0从帐号A转2000元到帐号B;事务T1从帐号A转20%的款到帐号B。T 0和T 1的定义如下:,5.3.1事务的调度,5.3.1事务的调度,说明:假设用 A和B表示帐号A和帐号B的存款数量;A和B的初值分别为10
21、000和20000 。如果这两个事务顺序执行,可以有两种方案。一是先执行T0后执行T1,如图5-3(a)所示。运行结束时,A和B最终值分别是6400和23600。另一种是先执行T1后执行T0,如图5-3(b)所示。A和B最终值分别是6000和24000。无论采用两种方案中的哪一种,A+B在两个事务结束时仍然是10000+20000。,5.3.1事务的调度,事务调度的一般概念。 (1)调度(schedule):事务的执行次序。 (2)串行调度 (serial schedule):多个事务依次串行执行,且只有当一个事务的所有操作都执行完后才执行另一个事务的所有操作。 (3)并行调度 (concur
22、rent schedule):利用分时的方法同时处理多个事务。,5.3.1事务的调度,从前面的例子可以看出,不论先执行哪个事务,只要是串行调度,执行的结果都是稳定的和正确的。对于N个事务,最多有N!种正确的串行调度。但对于N个事务进行并发调度,情况会变得复杂的多,调度方案远大于N!个,而且并发调度的结果有可能是错误的。图5-4(a)并发调度是正确的,图5-4(b)也是一个并发调度,但其导致A和B的最终结果为8000和24000, A+B=8000+24000 30000,结果是错误的。称此并行调度将产生不一致状态。,5.3.2并发操作的问题,并发控制就是一种在多用户的环境下,对数据库进行并发操
23、作进行规范的机制。其目的是为了避免对数据的丢失、更新、读“脏”数据和不可重复读等,从而保证数据的正确性与一致性。,5.3.2并发操作的问题,并发操作带来的数据不一致性有三类: 丢失修改 不可重复读 读“脏”数据 如图5-5所示。,5.3.2并发操作的问题,(1)丢失修改 如图5-5(a)所示。 (2)不可重复读 如图5-5(b)所示。 (3)读“脏”数据 如图5-5(c)所示。,5.3.3加锁,并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其它事务对数据的读取。,5.3.3加锁,在并发控制中引入两种锁:排它锁(Exclusive Locks
24、,简称X锁)和共享锁(Share Locks,简称S锁)。 排它锁又称为写锁,用于对数据进行写操作时进行锁定。 共享锁又称为读锁,用于对数据进行读操作时进行锁定。,5.3.3加锁,通过对数据加锁,可以限制其它事务对数据的访问,但也降低了事务的并发性。如何在保证事务的一致性的前提下尽可能的提高并发性,这需要封锁协议来解决。,5.3.3加锁,封锁协议是对数据加锁类型、加锁时间和释放锁时间的一些规则描述。 (1)一级封锁协议是:事务 T在修改数据 A之前必须先对其加X锁,直到事务结束才释放X锁。 (2)二级封锁协议是:一级封锁协议加上事务T在读取数据 A 之前必须对其加上 S锁,读完后即可释放S锁。 (3)三级封锁协议是:一级封锁协议加上事务T在读取数据A 之前必须对其加上 S锁,直到事务结束才释放S锁。,5.3.4活锁与死锁,和操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江温州市乐清市人力资源和社会保障局招聘协管员1人备考题库及答案详解(网校专用)
- 2026天津市河西医院招聘1人备考题库含答案详解(基础题)
- ProcessDB工业实时数据管理系统
- 2026江苏泰州市中医院招聘13人备考题库及参考答案详解一套
- 2026海南海口市琼山中山幼儿园春季学期招聘1人备考题库附答案详解(基础题)
- 2026内蒙古锡林郭勒盟锡林浩特市锡林口腔医院有限责任公司招聘1人备考题库及答案详解(必刷)
- 2026福建厦门市集美区康城小学教师招聘1人备考题库含答案详解
- 2026广东中山大学附属第五医院放射科医师岗位招聘4人备考题库含答案详解(综合卷)
- 2026广东广州市增城区中新镇第一小学教师招聘备考题库及完整答案详解一套
- 2026广西北海市市场监督管理局招录公益性岗位人员1人备考题库及参考答案详解一套
- 中医医疗技术相关性感染预防与控制培训
- 全媒体新闻发布实务知到章节答案智慧树2023年广东外语外贸大学、暨南大学、华南理工大学
- FCE考试必备词汇
- 在建工程项目安全检查表
- 安徽哈船新材料科技有限公司新增四套粉末涂料生产线项目环境影响报告表
- 委托技术开发协议全套文本、技术开发合同、技术开发合同
- IATF16949:2016体系推行计划
- 手机拍照技巧大全课件
- 严虎绘画课程对应课件1
- 【课件】纪念与象征-空间中的实体艺术 课件-高中美术人美版(2019)美术鉴赏
- 道德与法治八年级下册教案
评论
0/150
提交评论