【教学课件】第7章数据库安全与保护.ppt

上传人:牧羊曲112 文档编号:5659365 上传时间:2023-08-06 格式:PPT 页数:92 大小:382.50KB
返回 下载 相关 举报
【教学课件】第7章数据库安全与保护.ppt_第1页
第1页 / 共92页
【教学课件】第7章数据库安全与保护.ppt_第2页
第2页 / 共92页
【教学课件】第7章数据库安全与保护.ppt_第3页
第3页 / 共92页
【教学课件】第7章数据库安全与保护.ppt_第4页
第4页 / 共92页
【教学课件】第7章数据库安全与保护.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《【教学课件】第7章数据库安全与保护.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章数据库安全与保护.ppt(92页珍藏版)》请在三一办公上搜索。

1、第7章 数据库安全与保护,7.1 数据库的安全性,7.1.1 数据库安全性的含义数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。安全性问题有许多方面,其中包括七个方面:(1)法律、社会和伦理方面的问题,例如请求查询信息的人是不是有合法的权力。(2)物理控制方面的问题,例如计算机机房是否应该加锁或用其他方法加以保护。,(3)政策方面的问题,如确定存取原则,允许指定 用户存取指定数据。(4)运行方面的问题,如使用口令时,如何使口令保密。(5)硬件控制方面的问题,如CPU是否提供任何安全性方面的功能。,(6)操作系统安全性方面的问题,如在主存储器和数据文件用过以后,操

2、作系统是否把它们的内容清除掉。(7)数据库系统本身的安全性方面的问题。本章主要讨论的就是数据库系统本身的安全性问题,主要考虑安全保护的策略,尤其是控制访问的策略。,7.1.2 数据库安全控制的一般方法 安全性控制就是要尽可能地杜绝所有可能的数据库非法访问,不管它们是有意的还是无意的。,用户标识和鉴别 存取控制 操作系统安全保护 密码存储图7.1 计算机系统的安全模型,()用户标识和鉴定用户标识和鉴定(Identification&Authentication)是系统提供的最外层安全保护措施。标识和鉴定一个用户最常用的方法是用一个用户名或用户标识号来标明用户身份,通过用户名和口令来鉴定用户的方法

3、简单易行,但用户名与口令容易被人窃取,因此还可以用更复杂的方法。例如,利用用户的个人特征。,()存取控制数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。存取权限是由两个要素组成的:数据对象和操作类型。在数据库系统中,定义存取权限称为授权(Authorization)。衡量授权机制是否灵活的一个重要指标是授权粒度,即可以定义的数据对象的范围。授权粒度越细,授权子系统就越灵活,能够提供的安全性就越完善。,()视图机制关系数据库系统中,就是为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护

4、。,()审计审计功能是一种监视措施,它跟踪记录有关数据的访问活动。审计功能一般主要用于安全性要求较高的部门。()数据加密数据加密是防止数据库中的数据在存储和传输中失密的有效手段。加密方法主要有两种:替换方法和置换方法,7.1.3 SQL Server的用户与安全性管理,Microsoft SQL Server 的安全性是非常牢靠的,任何用户企图访问数据库中的数据之前,必须要通过四道关卡,图 7.2表示出了这四个环节。,图7.2 SQL Server的四个环节,SQL Server数据库,1.进入Microsoft SQL Server服务器 Microsoft SQL Server有两种鉴别模

5、式:Windows NT/2000鉴别和Microsoft SQL Server鉴别。2.访问Microsoft SQL Server数据库 一般来说,访问Microsoft SQL Server数据库需经过以下三个步骤:,在Microsoft SQL Server服务器上建立服务器登录标识。在数据库中建立用户帐号、角色并设置用户访问权限。角色是数据库访问权限的管理单位,其成员继承角色的访问权限。角色共分两种:服务器角色和数据库角色。,服务器角色负责整个Microsoft SQL Server服务器的访问权限,而数据库角色只负责某个数据库的访问权限。数据库角色可再往下分为三类:固定数据库角色、

6、公共角色和自定义数据库角色,而服务器角色只包含固定服务器角色。,固定服务器角色 SYSTEM ADMINISTRATORS(sysadmin):该角色权限最大,能执行任何操作,包括否决其他固定服务器角色。DATABASE CREATORS(dbcreator):该角色能创建和修改数据库。DISK ADMINISTRATORS(diskadmin):该角色负责管理磁盘文件。PROCESS ADMINISTRATORS(processadmin):该角色管理运行在Microsoft SQL Server上的不同进程。SECURITY ADMINISTRATORS(securityadmin):该角

7、色管理服务器注册。Server ADMINISTRATORS(Serveradmin):该角色设置服务器配置。SETUP ADMINISTRATORS(setupadmin):该角色安装Microsoft SQL Server同步复制和管理扩展过程。,固定数据库角色 DATABASE OWNER(db_owner):该角色拥有某个数据库的所有权限,能执行其他数据库角色的操作。DATABASE ACCESS ADMINISTRATOR(db_accessadmin):该角色管理某个数据库的用户帐号。DATABASE SECURITY ADMINISTRATOR(db_securityadmin)

8、:该角色管理数据库的用户帐号和角色以及语句和对象权限。DATABASE BACKUP OPERATOR(db_dumpoperator):该角色负责备份数据库的工作。,公共角色 每一个数据库都有一个公共角色,每创建一个新的用户帐号时,此帐号自动拥有该角色。不能对该角色添加或修改用户帐号,对其唯一的操作是为它分配权限。自定义数据库角色 自定义数据库角色同固定数据库角色一样,管理多个用户的相同权限。,应用程序角色 该角色不分配给任何用户,而是分配给某一个运行在Microsoft SQL Server上的应用程序。设置应用程序角色的原因有两点:一是限制访问数据库所使用的应用程序;二是提高Micros

9、oft SQL Server服务器的运 行性能,避免在此服务器上运行其他程序。,(3)设置语句和对象权限 用户可获得的权限主要有:对象权限 元组:SELECT、UPDATE视图:SELECT、UPDATE、DELETE、INSERT存储过程:EXECUTE,语句权限 创建数据库:CREATE DATABASE创建关系属性的默认值:CREATE DEFAULT创建存储过程:CREATE PROCEDURE创建关系中属取值性规则:CREATE RULE创建视图:CREATE VIEW 备份数据库:BACKUP DATABASE备份事务日志:BACKUP TRANSACTION,3.安全性控制命令(

10、1)增加SQL Server用户 可以执行系统存储过程sp_add1ogin,它的格式 如下:Sp_addloginlogin_id,passwd,defdb,deflanguage(2)增加数据库用户 sp_adduser login_id,username,grpname(3)创建用户组 sp_addgroup grpname(4)用户口令 sp_password old_passwd,new_passwd,login_id,7.2完整性控制,数据库完整性的含义 数据库的完整性是指数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。,数据的完整性与安全性是数据库保护的两个不

11、同方面。安全性是防止用户非法使用数据库,包括恶意破坏数据和越权存取数据。完整性则是防止合法用户使用数据库时向数据库中加入不合语义的数据。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。,7.2.2 完整性规则的组成完整性规则主要由以下三部分构成:(1)触发条件:规定系统什么时候使用规则来检查数据。(2)约束条件:规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。(3)违约响应:规定系统如果发现用户的操作请求违背了完整性约束条件,应该采取一定的动作来保证数据的完整性,即违约时要做的事情。,根据完整性检查的时间不同,可把完整性约束分为立即执行约束

12、(Immediate Constraints)和延迟执行约束(Deferred Constraints)。一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示。其中:,D(data)代表约束作用的数据对象;O(operation)代表触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查;A(assertion)代表数据对象必须满足的断言或语义约束,这是规则的主体;C(condition)代表选择A作用的数据对象值的谓词;P(procedure)代表违反完整性规则时触发执行的操作过程。,7.2.3 完整性约束条件的分类完整性约束从约束条

13、件使用的对象分为值的约束和结构的约束。值的约束即对数据类型、数据格式、取值范围和空值等进行规定。完整性约束从约束对象的状态分为静态约束和动态约束。,7.2.4 触发器(Trigger)1.触发器组成(1)事件:指对数据库进行的插入、删除、修改等操作。触发器可以响应这些事件,在适合的条件及恰当的时间内执行指定的动作。(2)条件:触发器测试给定的条件,若条件成立,则执行相应的动作,否则什么也不执行。(3)动作:动作是一系列的操作,这些操作可以撤消触发器发生的事件,可以是与事件相关的操作,也可以是与事件无关的其他操作。,2.触发器的作用 触发器的主要作用是实现由主码和外码所不能保证的、复杂的参照完整

14、性和数据的一致性触发器还有其他许多不同的功能:(1)强化约束(Enforce Restriction)。(2)级联操作(Cascaded Operation)。(3)存储过程的调用(Stored Procedure Invocation)。,3.触发器类型 从触发的元组来分有语句级触发器和元组级触发器。前者可以在语句执行前或执行后被触发,后者在每个触发语句影响的元组触发一次。从触发的时间来分还有Before和After的两种形式,分别在Insert、update及delete之前或之后执行。Microsoft SQL Server支持两种触发器:After触发器与Instead of触发器。,

15、下面以SQL Server 2000为例,介绍用 Transact-SQL 定义触发器的方法。定义触发器的基本语法:CREATE TRIGGER触发器名ON 表名|视图名FOR|AFTER|INSTEAD OF INSERT,UPDATE,DELETEAS SQL 语句,例 7.1 创建一个名为Ins_student的触发器,要求在向学生表插入元组后引发该触发器,检查所插入的元组中系编号是否出现在院系表中,如果在院系表中找不到相应的系编号,则提示用户系编号输入有误,并且回滚事务。解:CREATE TRIGGER Ins_studentON SAFTER INSERT/*触发器在插入元 组后被引

16、发*/,ASIF(SELECT COUNT(*)FROM D,InsertedWHERE D.Dnum=inserted.Dnum)=0BEGINPRINT 系编号输入有误!ROLLBACK TRANSACTIONEND,为了验证我们创建的触发器是否发挥作用,我们可以再写一条SQL语句来插入一条新的学生信息,并故意将该学生的系编号设为院系表中没有的一个,比如8。插入数据的SQL语句如下:INSERT INTO SVALUES(S010,王港,男,34,87609876,8)执行结果:系编号输入有误!可见我们创建的触发器Ins_student正常地发挥了作用。,例 7.2建立一个名为 Ins_t

17、eacher 的触发器,在向 教师 表插入记录时引发该触发器,检查所插入元组中教师的工资是否大于1000元且小于10000元,若不是则提示用户“工资必须大于1000元,小于10000 元”,并且回滚事务。解:CREATE TRIGGER Ins_teacherON TAFTER INSERT,ASIF(SELECT COUNT(*)FROM InsertedWHERE Tsalary=10000)0BEGINPRINT 工资必须大于1000元,小于10000元!ROLLBACK TRANSACTIONEND,插入一个老师信息,设定工资为800元,测试该触发器的SQL语句如下:INSERT IN

18、TO TVALUES(T010,成洁,女,1965-5-3,讲师,800,87654903,2)执行结果:工资必须大于1000元,小于10000元!可见,触发器Ins_teacher也正常地发挥了作用。,7.3并发控制与封锁,7.3.1 事务定义 事务(transaction)是构成单一逻辑工作单元的操作集合。性质原子性(Atomicity):事务是一个不可分割的工作单元。一致性(Consistency):即数据不会应事务的执行而遭受破坏。,隔离性(Isolation):在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样。持久性(Durability):一个事务一旦完成全部操作

19、后,它对数据库的所有更新应永久地反映在数据库中。,例子:事务及其性质,问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。相应的事务:T:read(A);A:=A50;write(A);read(B);B:=B+50;write(B).,原子性(A,B同时被修改或同时保持原值)一致性(A+B的值不变)隔离性持久性,例 7.3 假设某公司在华东地区设立了一个配送中心,负责向其在上海、杭州和南京的分公司输原料。现在要从配送中心发送数量为 Quantity、编号为 Gno1 的商品到其在上海的分公司。设配送中心的商品库存信息存放在 CenterInventory(Gno,QTY

20、,)关系中,而上海分公司的商品库存信息存放在 ShanghaiInventory(Gno,QTY,)关系中,其中 Gno和 QTY属性分别代表商品编号及其库存量。试编写一事务Tl完成相关操作。,解:./*读出配送中心关于商品 Gno1 的库存量 QTY*/EXEC SQL SELECT QTYINTO:MQTYFROM CenterInventoryWHERE Gno=:Gno1;/*从配送中心商品库存信息 CenterInventory 表中减去 Gno1 商品的库存量*/,EXEC SQL UPDATE CenterInventorySET QTY=QTY-:quantityWHERE G

21、no=:Gno1;IF(MQTYquantity)print(库存不足,不能配送!);ROLLBACK TRANSACTION;/*恢复事务,撤消所有操作串*/,ELSE/*从上海商品库存信息 ShanghaiInventory 表中增加 Gno1 商品的库存量*/EXEC SQL UPDATE ShanghaiInventorySET QTY=QTY+:quantityWHERE Gno=:Gno1;COMMIT TRANSACTION:/*提交事务*/,7.3.2 并发操作与数据的不一致性并发操作可能带来的数据不一致性情况有三种:丢失修改、读过时数据和读“脏”数据。,7.3.3 封锁()排

22、它锁和共享锁排它锁和共享锁是最基本的封锁方式如果事务 T 对数据对象 Y 加上了排它锁(记为 X 锁),那么 T 既可以读取 Y,也可以更新 Y。如果事务 T 对数据对象 Y 加上了共享锁(记为 S 锁),那么 T 可以读取 Y,但不能更新 Y。,封锁的粒度,封锁对象的大小称为封锁的粒度(granularity)封锁的对象 逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库 物理单元:页(数据页或索引页)、块 封锁粒度与系统并发度和并发控制开销密切相关。粒度越大,系统中能被封锁的对象就越少,并发度就越小,但同时系统的开销也就越小;相反,粒度越小,并发度越高,系统开销越大,(

23、)封锁协议 所谓封锁协议就是在对数据对象加锁、持锁和释放锁时所约定的一些规则。一级封锁协议一级封锁协议规定事务 T 在更新数据对象以前,必须对该数据对象加排它锁,并且直到事务 T 结束时才可以释放该锁。利用一级封锁协议可以防止丢失更新问题的发生,二级封锁协议 二级封锁协议规定事务 T 在更新数据对象以前必须对数据对象加 X 锁,且直到事务 T 结束时才可以释放该锁,还规定事务 T 在读取数据对象以前必须先对其加 S 锁,读完后即可释放 S 锁。可以防止丢失更新问题,还可以防止未提交依赖问题,但却不能防止不一致性分析问题。,三级封锁协议 三级封锁协议规定事务 T 在更新数据对象以前,必须对数据对

24、象加 X 锁,且直到事务 T 结束时才可以释放该锁,还规定事务 T 在读取数据对象以前必须先对其加 S 锁,该 S 锁也必须在事务 T 结束时才可释放。可以防止丢失更新和未提交依赖问题,此外还可以防止不一致性分析问题的发生。,封锁带来的问题1-(活锁),封锁带来的问题2-饿死,封锁带来的问题3-死锁,死锁预防,数据库中预防死锁的方法有两种:第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预先约定的加锁顺序对使用到的数据加锁。第二种方法是每当处于等待状态的事务有可能导致死锁时,就不再等待下去,强行回滚该事务。,死锁检测,检测事务依赖图中有无回路就可以判断是否发生了死锁。,

25、7.3.4 基于时标的并发控制技术,时标技术是用于并发控制的另一种技术。由于时标技术不采用封锁,因此不存在死锁问题。时标技术不同于加锁技术,它是基于时标的大小来解决操作冲突,保证冲突的操作按照时间顺序来执行。在时标技术中,由于事务不进行加锁,不会因为资源竞争而处于等待状态,因此不会产生死锁,但这是以重新启动为代价的,它是时标技术的一个主要缺点。,7.3.5 SQL Server 事务和封锁机制,(1)事务 在 Microsoft SQL Server 系统中,可以把事务分成两种类型。一种是系统提供的事务,另一种是用户定义的事务。事务的工作原理如图所示:,事务的工作原理,事务复原和检查点机制示意

26、图,(2)封锁机制,封锁类型 共享锁,修改锁,独占锁和意向锁是SQL Server 中常见的几种封锁模式 锁冲突及其防止办法,死锁优先级的设置语句为:SET DEADLOCK_PRIORITYLOW|NORMAL 其中 LOW 说明该进程会话的优先级较低,在出现死 锁时,可以首先中断该进程的事务。另外,各进程中通过设置 LOCK TIMEOUT 选项能够设置进程处于锁定请求状态的最长等待时间。该设置的语句:SET LOCK_TIMEOUTtimeout_period 其中,timeout_period以毫秒为单位。在 SQL 92中定义了四种隔离性级别:未提交读、提交读、可重复读和可串行。,手

27、工加锁 SQL Server 系统中建议让系统自动管理锁,但在 SQL Server 中,封锁操作可以通过SELECT、INSERT、DELETE、UPDATE支持显式加锁。SELECT 语句为例,给出语法格式:SELECT*FROM HOLDLOCK 其中:HOLDLOCK 说明封锁将保持到事务结束。,7.4数据库恢复,数据库恢复的原理及其实现技术 恢复系统应该提供两种类型的功能:一种是生成冗余数据,即对可能发生的故障作某些准备.另一种是冗余重建,即利用这些冗余数据恢复数据库。,数据备份,后备副本(或后援副本)是指在故障发生前某一时刻数据库的副本,副本中包含了数据库中所有数据,包括系统数据和

28、用户数据。制做后备副本的过程称为转储,是由DBA定期将数据库复制到磁带或另一个磁盘上,并将这些备用的数据文本妥善地保存起来。,转储可以分为增量转储和海量转储。海量转储是指每次转储全部数据库,而增量转储是指每次转储上次转储后修改过的数据。转储要用DBMS提供的专门命令,而不能简单采用复制数据库文件的方法。转储可分为静态转储和动态转储。静态转储是指系统停止对外服务,不允许用户运行事务,只进行转储操作。,动态转储是指转储期间允许用户对数据库进行存取操作,即转储和用户事务可以并发执行。普通用户是无权进行转储操作的,转储操作必须由DBA完成。当然DBA也可以授权给其他用户,由他代为转储。,登记日志文件,

29、日志文件是用来记录事务的每一次对数据库更新操作的文件,包括用户的更新操作以及由此引起的系统内部的更新操作。有了日志文件,DBMS就可以根据日志文件进行事务故障恢复和系统故障恢复,并结合后援副本进行介质故障恢复了。,1.日志文件的格式和内容 对于以记录为单位的日志文件,日志文件中需要登记的主要内容包括:各个事务的开始(BEGIN TRANSACTION)标记 各个事务的结束(COMMIT或ROLLBACK)标记 各个事务的所有更新操作,每个日志记录的内容主要包括:事务标识(标明是哪个事务)操作的类型(插入、删除或修改)操作对象(记录内部标识)更新前数据的旧值(对插入操作而言,此项为空值)更新后数

30、据的新值(对删除操作而言,此项为空值),2.登记日志文件时必须遵循两条原则:(1)登记的次序严格按并发事务执行的时间次序。(2)必须先写日志文件,后写数据库。,数据库的故障和恢复策略,1.事务故障(Transaction Failure)及其恢复 事务故障是指事务未运行至正常终止点前被撤消,这时恢复子系统应对此事务做UNDO处理。具体做法是:,反向阅读日志文件,找出该事务的所有更新操作,对每一个更新操作做它的逆操作。即若记录中是插入操作,则做删除操作。若记录中是删除操作,则做插入操作,若是修改操作,则用修改前的值代替修改后的值。如此处理直至读到此事务的开始标记,事务故障恢复完成。,2.系统故障

31、(System Failure)及其恢复 系统故障发生时,造成数据库不一致状态的原因有两个:一是由于一些未完成事务对数据库的更新已写入数据库,二是由于一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库。基本的恢复算法分为三步:,(1)根据日志文件建立重作队列和撤消队列(2)对撤消队列中事务进行UNDO处理。(3)对重做队列中的各个事务进行重做(REDO)处理。,3.介质故障(Media Failure)及其恢复 使存储在外存上的数据部分损失或全部损失,称为介质故障。介质故障发生后,存储在磁盘上的数据被破坏。重启动后,数据库管理员要手工装入数据库发生介质故障前某个时刻的副本,并将自此时开

32、始的所有成功事务全部重作,也就是将这些事务已提交的结果重新记入数据库。,(1)重装转储的后援副本,使数据库恢复到转储时的一致状态。(2)装入转储后备份的第一个日志文件。(3)装入下一个日志文件重复第(2)步,直至处理完所有的日志文件,这时数据库恢复至故障前某一时刻的一致状态。,7.4.3 SQL Server 2000中数据的备份与恢复,SQL Server 2000提供了四种数据库备份与恢复的方式:全库备份:备份整个数据库。日志备份:备份日志文件。差异备份:仅备份自上次全库备份后被修改 过的数据页。文件或文件组备份:对组成数据库的文件或 文件组进行单独的备份。,例 7.4对 学生选课 数据库

33、做一次全库备份,备份的名字为学生选课backup,备份设备是 myBak 逻辑磁盘设备,此备份将覆盖以前所有的备份。解:备份(BACKUP)语句如下:,USE master/*在主数据库master中执行*/,EXEC sp_addumpdevice disk,myBak,/*创建一逻辑磁盘设备myBak,并指定备份文件存放的绝对路径*/GO/*批处理,先创建逻辑设备,再进行备份操作根性*/BACKUP DATABASE 学生选课/*对 学生选课 数据库进行备份*/,DISK=c:Microsoft SQL ServerMSSQLBACKUPStudentClass.bak,TO myBak/

34、*备份设备是 前面创建的myBak 逻辑磁盘设备*/WITH INIT,/*此备份将覆盖以前所有的备份*/NAME=学生选课backup/*备份的名字为 学生选课 backup*/,例 7.5 对 学生选课 数据库做一次差异备份,备份的名字为学生选课backup,备份设备是例7.5中创建的 myBak”逻辑磁盘设备,新备份的数据将添加到备份设备上原备份内容的后面。解:备份(BACKUP)语句如下:BACKUP DATABASE 学生选课/*对 学生选课 数据库进行备份*/,TO myBak/*备份设备是前面创建的myBak 逻辑磁盘设备*/WITH DIFFERENTIAL,/*差异备份*/N

35、OINIT,/*新备份的数据将添加到各份设各上原备 份内容的后面*/NAME=学生选课 backup/*备份的名字为 学生选课 backup*/,例 7.6 对“学生选课”数据库做一次日志备份,备份的名字为”学生选课 backup”,备份设备是“myBak”逻辑磁盘设备,新备份的数据将添加到备份设备上原备份内容的后面。解:备份(BACKUP)语句如下:BACKUP LOG 学生选课/*对 学生选课 进行日志备份*/,TO myBak/*备份设备是前面创建的myBak 逻辑磁盘设备*/WITH NOINIT,/*新备份的数据将添加到备份设备上原备份内容的后面*/NAME=学生选课backup/*

36、备份的名字为 学生选课 backup*/,例 7.7 假设“学生选课”数据库在“myBak”逻辑磁盘设备上作了3次备份(一次全库备份、一次差异备份和一次日志备份)后发生了介质故障,要求用 RESTORE 语句恢复该数据库。解:本例的数据库恢复可以使用如下的一组语句:RESTORE DATABASE 学生选课FROM myBakWITH,FILE=1,/*从磁盘设备的第一个备份恢复数据*/NORECOVERYRESTORE DATABASE 学生选课FROM myBak WITHFILE=2,/*从磁盘设备的第二个备份恢复数据*/,NORECOVERYRESTORE LOG 学生选课FROM m

37、yBakWITHFILE=3,/*从磁盘设备的第三个备份恢复数据*/RECOVER,小结,本章详细介绍了数据库的安全性、完整性、并发控制和数据库恢复技术。数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。实现数据库系统安全性的方法有用户标识和鉴定、存取控制、视图机制、审计和数据加密等。,小结,数据库的完整性是指数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。完整性与安全性不同,它是防止合法用户使用数据库时向数据库中加入不合语义的数据。触发器是在关系数据库管理系统中应用得比较多的一种完整性保护措施。,小结,并发控制是为了防止多个用户同时存取同一数

38、据,造成数据库的不一致性。事务是数据库进行并发控制的基本单位,多个事务的并发调度会带来一些问题,如丢失更新、不一致性分析和未提交依赖等问题。实现并发操作的方法主要是封锁技术,基本的封锁类型有排它锁和共享锁两种,三个级别的封锁协议可以有效解决并发操作的一致性问题。在封锁过程中还会发生活锁和死锁现象,死锁一旦发生,可以选择一个处理死锁代价最小的事务将其撤消。,小结,数据库的恢复是指系统发生故障后,把数据从错误状态中恢复到某一正确状态的功能。常见的故障类型有事务故障、系统故障和介质故障,本章主要分析了故障产生的原因和故障恢复的技术。最后举例说明了SQL Server中数据的备份与恢复。,习题,7.1什么是数据库的安全性?什么是数据库的完整性?7.2什么是事务?试叙述事务的四个性质?7.3 如果数据库系统对事务的并发操作不加控制,有可能带来哪些问题?7.4什么是封锁?封锁的基本类型有哪几种?7.5什么是事务日志?它有什么用途?7.6什么是数据库的恢复?恢复的基本原则是什么?恢复是如何实现的?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号