欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:69866328       资源大小:382.50KB        全文页数:92页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    第第7 7章章 数据库安全与保护数据库安全与保护 7.1 7.1 数据库的安全性数据库的安全性7.1.17.1.1数据数据库安全性的含安全性的含义数数据据库库的的安安全全性性是是指指保保护护数数据据库库,防防止止因因用用户户非非法使用数据库造成数据泄露、更改或破坏。法使用数据库造成数据泄露、更改或破坏。安全性问题有许多方面,其中包括七个方面:安全性问题有许多方面,其中包括七个方面:(1)法法律律、社社会会和和伦伦理理方方面面的的问问题题,例例如如请请求求查查询信息的人是不是有合法的权力。询信息的人是不是有合法的权力。(2)物物理理控控制制方方面面的的问问题题,例例如如计计算算机机机机房房是是否否应该加锁或用其他方法加以保护。应该加锁或用其他方法加以保护。(3)政策方面的问题,如确定存取原则,允许指定政策方面的问题,如确定存取原则,允许指定 用户存取指定数据。用户存取指定数据。(4)运行方面的问题,如使用口令时,如何使口令运行方面的问题,如使用口令时,如何使口令保密。保密。(5)硬件控制方面的问题,如硬件控制方面的问题,如CPU是否提供任何安是否提供任何安全性方面的功能。全性方面的功能。(6)操作系统安全性方面的问题,如在主存储器和操作系统安全性方面的问题,如在主存储器和数据文件用过以后,操作系统是否把它们的内容清数据文件用过以后,操作系统是否把它们的内容清除掉。除掉。(7)数据库系统本身的安全性方面的问题。本章主数据库系统本身的安全性方面的问题。本章主要讨论的就是数据库系统本身的安全性问题,主要要讨论的就是数据库系统本身的安全性问题,主要考虑安全保护的策略,尤其是控制访问的策略。考虑安全保护的策略,尤其是控制访问的策略。7.1.27.1.2数据数据库安全控制的一般方法安全控制的一般方法 安安全全性性控控制制就就是是要要尽尽可可能能地地杜杜绝绝所所有有可可能能的的数数据据库非法访问,不管它们是有意的还是无意的。库非法访问,不管它们是有意的还是无意的。用户用户DBMSOSDB用户标识和鉴别存取控制操作系统安全保护密码存储图图7.1 计算机系统的安全模型计算机系统的安全模型()()用户标识和鉴定用户标识和鉴定用户标识和鉴定(用户标识和鉴定(Identification&Authentication)是系统提供的最外层安全保护措是系统提供的最外层安全保护措施。标识和鉴定一个用户最常用的方法是用一个用施。标识和鉴定一个用户最常用的方法是用一个用户名或用户标识号来标明用户身份,通过用户名和户名或用户标识号来标明用户身份,通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,因此还可以用更复杂的方法。例如,容易被人窃取,因此还可以用更复杂的方法。例如,利用用户的个人特征。利用用户的个人特征。()存取控制()存取控制数据库系统中,为了保证用户只能访问他有权数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。存取的数据,必须预先对每个用户定义存取权限。存取权限是由两个要素组成的:存取权限是由两个要素组成的:数据对象和操作类数据对象和操作类型型。在数据库系统中,定义存取权限称为。在数据库系统中,定义存取权限称为授权授权(Authorization)。衡量授权机制是否灵活的一个)。衡量授权机制是否灵活的一个重要指标是授权粒度,即可以定义的数据对象的范重要指标是授权粒度,即可以定义的数据对象的范围。授权粒度越细,授权子系统就越灵活,能够提围。授权粒度越细,授权子系统就越灵活,能够提供的安全性就越完善。供的安全性就越完善。()视图机制()视图机制关系数据库系统中,就是为不同的用户定关系数据库系统中,就是为不同的用户定义不同的视图,通过视图机制把要保密的数据对义不同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。对数据提供一定程度的安全保护。()审计()审计审计功能是一种监视措施,它跟踪记录有关数据的访审计功能是一种监视措施,它跟踪记录有关数据的访问活动。审计功能一般主要用于安全性要求较高的部门。问活动。审计功能一般主要用于安全性要求较高的部门。()数据加密()数据加密数据加密是防止数据库中的数据在存储和传输中失密数据加密是防止数据库中的数据在存储和传输中失密的有效手段。加密方法主要有两种:替换方法和置换方法的有效手段。加密方法主要有两种:替换方法和置换方法7.1.3SQLServer7.1.3SQLServer的用的用户与安全性管理与安全性管理 Microsoft SQL Server 的安全性是非常的安全性是非常牢靠的牢靠的,任何用户企图访问数据库中的数据之前任何用户企图访问数据库中的数据之前,必须要通过四道关卡必须要通过四道关卡,图图 7.2表示出了这四个环表示出了这四个环节。节。图7.2SQLServer的四个环节 用户登录请求NT操作系统SQLServer数据库服务器数 据库 对象SQLServer数据库1.进入进入Microsoft SQL Server服务器服务器 Microsoft SQL Server有两种鉴别模式有两种鉴别模式:Windows NT/2000鉴别鉴别和和Microsoft SQL Server鉴别。鉴别。2.访问访问Microsoft SQL Server数据库数据库 一般来说一般来说,访问访问Microsoft SQL Server数据库需数据库需经过以下三个步骤经过以下三个步骤:(1)在在Microsoft SQL Server服务器上建立服务器登服务器上建立服务器登录标识。录标识。(2)在数据库中建立用户帐号、角色并设置用户访问在数据库中建立用户帐号、角色并设置用户访问权限权限。(3)(3)角色角色是数据库访问权限的管理单位是数据库访问权限的管理单位,其成员继其成员继承角色的访问权限。承角色的访问权限。(4)(4)角色共分两种角色共分两种:服务器角色服务器角色和和数据库角色数据库角色。服务器角色服务器角色负责整个负责整个Microsoft SQL Microsoft SQL ServerServer服务器的访问权限服务器的访问权限,而而数据库角色数据库角色只负只负责某个数据库的访问权限。数据库角色可再责某个数据库的访问权限。数据库角色可再往下分为三类往下分为三类:固定数据库角色固定数据库角色、公共角色和公共角色和自定义数据库角色自定义数据库角色,而服务器角色只包含固定而服务器角色只包含固定服务器角色。服务器角色。固定服务器角色固定服务器角色 SYSTEM ADMINISTRATORS(sysadmin):该角色权限最大,能执行任何操作,包括否决其他固定服务器角色。DATABASE CREATORS(dbcreator):该角色能创建和修改数据库。DISK ADMINISTRATORS(diskadmin):该角色负责管理磁盘文件。PROCESS ADMINISTRATORS(processadmin):该角色管理运行在Microsoft SQL Server上的不同进程。SECURITY ADMINISTRATORS(securityadmin):该角色管理服务器注册。Server ADMINISTRATORS(Serveradmin):该角色设置服务器配置。SETUP ADMINISTRATORS(setupadmin):该角色安装Microsoft SQL Server同步复制和管理扩展过程。固定数据库角色固定数据库角色 DATABASE OWNER(db_owner):该角色拥有某个数据库的所有权限,能执行其他数据库角色的操作。DATABASE ACCESS ADMINISTRATOR(db_accessadmin):该角色管理某个数据库的用户帐号。DATABASE SECURITY ADMINISTRATOR(db_securityadmin):该角色管理数据库的用户帐号和角色以及语句和对象权限。DATABASE BACKUP OPERATOR(db_dumpoperator):该角色负责备份数据库的工作。公共角色公共角色 每一个数据库都有一个公共角色,每创建一个新的用户帐号时,此帐号自动拥有该角色。不能对该角色添加或修改用户帐号,对其唯一的操作是为它分配权限。自定义数据库角色自定义数据库角色 自定义数据库角色同固定数据库角色一样,管理多个用户的相同权限。应用程序角色应用程序角色 该角色不分配给任何用户,而是分配给某一个运行在Microsoft SQL Server上的应用程序。设置应用程序角色的原因有两点设置应用程序角色的原因有两点:一是限制访问数据库所使用的应用程序;二是提高Microsoft 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.安全性控制命令安全性控制命令(1)增加SQL Server用户 可以执行系统存储过程可以执行系统存储过程sp_add1ogin,它的格式它的格式 如下:如下:Sp_addloginlogin_id,passwd,defdb,deflanguageSp_addloginlogin_id,passwd,defdb,deflanguage(2)增加数据库用户增加数据库用户 sp_adduser login_id,username,grpname(3)创建用户组创建用户组 sp_addgroup grpname(4)用户口令用户口令 sp_password old_passwd,new_passwd,login_id7.27.2完整性控制完整性控制数据库完整性的含义数据库完整性的含义 数数据据库库的的完完整整性性是是指指数数据据的的正正确确性性、有有效效性性和和相相容容性性,防防止止错错误误的的数数据据进进入入数数据据库库造造成成无无效效操作。操作。数据的完整性与安全性是数据库保护的两个数据的完整性与安全性是数据库保护的两个不同方面。安全性是防止用户非法使用数据库,不同方面。安全性是防止用户非法使用数据库,包括恶意破坏数据和越权存取数据。完整性则是包括恶意破坏数据和越权存取数据。完整性则是防止合法用户使用数据库时向数据库中加入不合防止合法用户使用数据库时向数据库中加入不合语义的数据。也就是说,安全性措施的防范对象语义的数据。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。是不合语义的数据。7.2.2 完整性规则的组成完整性规则的组成完整性规则主要由以下三部分构成:完整性规则主要由以下三部分构成:(1)触发条件)触发条件:规定系统什么时候使用规则来检查:规定系统什么时候使用规则来检查数据。数据。(2)约束条件:)约束条件:规定系统检查用户发出的操作请求规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。违背了什么样的完整性约束条件。(3)违约响应:)违约响应:规定系统如果发现用户的操作请求规定系统如果发现用户的操作请求违背了完整性约束条件违背了完整性约束条件,应该采取一定的动作来保证应该采取一定的动作来保证数据的完整性,即违约时要做的事情。数据的完整性,即违约时要做的事情。根据完整性检查的时间不同,可把完整性约束根据完整性检查的时间不同,可把完整性约束分为分为立即执行约束立即执行约束(Immediate Constraints)和和延迟执行约束延迟执行约束(Deferred Constraints)。一条完整性规则可以用一个五元组一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示。其中:来形式化地表示。其中:D(data)代表约束作用的数据对象;代表约束作用的数据对象;O(operation)代表触发完整性检查的数据库操作,代表触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查;则,是立即检查还是延迟检查;A(assertion)代表数据对象必须满足的断言或语代表数据对象必须满足的断言或语义约束,这是规则的主体;义约束,这是规则的主体;C(condition)代表选择代表选择A作用的数据对象值的谓作用的数据对象值的谓词;词;P(procedure)代表违反完整性规则时触发执行的代表违反完整性规则时触发执行的操作过程。操作过程。7.2.3 完整性约束条件的分类完整性约束条件的分类完整性约束从约束条件使用的对象分为完整性约束从约束条件使用的对象分为值的约束和值的约束和结构的约束。结构的约束。值的约束即对值的约束即对数据类型、数据格式、数据类型、数据格式、取值范围和空值取值范围和空值等进行规定。等进行规定。完整性约束从约束对象的状态分为完整性约束从约束对象的状态分为静态约束和动态静态约束和动态约束约束。7.2.4 触发器触发器(Trigger)1.触发器组成触发器组成 (1)事件事件:指对数据库进行的插入、删除、修改等操作。指对数据库进行的插入、删除、修改等操作。触发器可以响应这些事件触发器可以响应这些事件,在适合的条件及恰当的时在适合的条件及恰当的时间内执行指定的动作。间内执行指定的动作。(2)条件条件:触发器测试给定的条件触发器测试给定的条件,若条件成立若条件成立,则执则执行相应的动作行相应的动作,否则什么也不执行。否则什么也不执行。(3)动作动作:动作是一系列的操作动作是一系列的操作,这些操作可以撤消触这些操作可以撤消触发器发生的事件发器发生的事件,可以是与事件相关的操作可以是与事件相关的操作,也可以也可以是与事件无关的其他操作。是与事件无关的其他操作。2.触发器的作用触发器的作用 触发器的主要作用触发器的主要作用是实现由主码和外码所不能保证是实现由主码和外码所不能保证的、复杂的参照完整性和数据的一致性的、复杂的参照完整性和数据的一致性触发器还有其他许多不同的功能触发器还有其他许多不同的功能:(1)强化约束强化约束(Enforce Restriction)。(2)级联操作级联操作(Cascaded Operation)。(3)存储过程的调用存储过程的调用(Stored Procedure Invocation)。3.触发器类型触发器类型 从触发的元组来分有从触发的元组来分有语句级触发器和元组级触语句级触发器和元组级触发器发器。前者可以在语句执行前或执行后被触发。前者可以在语句执行前或执行后被触发,后者后者在每个触发语句影响的元组触发一次。在每个触发语句影响的元组触发一次。从触发的时间来分还有从触发的时间来分还有BeforeBefore和和AfterAfter的两种形的两种形式式,分别在分别在InsertInsert、updateupdate及及deletedelete之前或之后执行。之前或之后执行。Microsoft SQL ServerMicrosoft SQL Server支持两种触发器支持两种触发器:After:After触发器与触发器与Instead ofInstead of触发器。触发器。下面以下面以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 /*触发器在插入元触发器在插入元 组后被引发组后被引发*/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_teacher 的触发器的触发器,在向在向 教师教师 表插入记录时引发该触发器表插入记录时引发该触发器,检查所插入元检查所插入元组中教师的工资是否大于组中教师的工资是否大于1000元且小于元且小于10000元元,若若不是则提示用户不是则提示用户“工资必须大于工资必须大于1000元元,小于小于10000 元元”,并且回滚事务。并且回滚事务。解:解:CREATE TRIGGER Ins_teacherON TAFTER INSERTASIF(SELECT COUNT(*)FROM InsertedWHERE Tsalary=10000)0BEGINPRINT 工资必须大于工资必须大于1000元元,小于小于10000元元!ROLLBACK TRANSACTIONEND 插入一个老师信息,设定工资为插入一个老师信息,设定工资为800元,测试该元,测试该触发器的触发器的SQL语句如下:语句如下:INSERT INTO TVALUES(T010,成洁成洁,女女,1965-5-3,讲讲师师,800,87654903,2)执行结果:执行结果:工资必须大于工资必须大于1000元元,小于小于10000元元!可见,触发器可见,触发器Ins_teacher也正常地发挥了作用。也正常地发挥了作用。7.37.3并发控制与封锁并发控制与封锁7.3.1 7.3.1 事务事务定义定义 事务事务(transaction)(transaction)是构成单一逻辑工作单元是构成单一逻辑工作单元的操作集合的操作集合 。性质性质原子性原子性(Atomicity):(Atomicity):事务事务是一个不可分割的工作是一个不可分割的工作单单元元 。一致性一致性(Consistency)(Consistency):即数据不会应事务的执行即数据不会应事务的执行而遭受破坏而遭受破坏。隔离性隔离性(Isolation)(Isolation):在多个事务并发执行时,在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果系统应保证与这些事务先后单独执行时的结果一样一样。持久性持久性(Durability)(Durability):一个事务一旦完成全部一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映操作后,它对数据库的所有更新应永久地反映在数据库中。在数据库中。例子:事务及其性质例子:事务及其性质问题:问题:设银行数据库中有设银行数据库中有一转账事务一转账事务T T,从账号,从账号A A转一笔款子(转一笔款子($50$50)到账)到账号号B B。相应的事务:相应的事务:T T:readread(A A););A:=A50 A:=A50;write write(A A););read read(B B););B:=B+50 B:=B+50;write write(B B).原子性(原子性(A,B同时被修同时被修改或同时保持原值)改或同时保持原值)一致性(一致性(A+B的值不变)的值不变)隔离性隔离性持久性持久性例例 7.3 7.3 假设某公司在华东地区设立了一个配送假设某公司在华东地区设立了一个配送中心中心,负责向其在上海、杭州和南京的分公司输原料。负责向其在上海、杭州和南京的分公司输原料。现在要从配送中心发送数量为现在要从配送中心发送数量为 Quantity Quantity、编号为编号为 Gno1 Gno1 的商品到其在上海的分公司。设配送中心的商的商品到其在上海的分公司。设配送中心的商品库存信息存放在品库存信息存放在 CenterInventory(Gno,QTY,CenterInventory(Gno,QTY,)关系中关系中,而上海分公司的商品库存信息存放在而上海分公司的商品库存信息存放在 ShanghaiInventory(Gno,QTY,)ShanghaiInventory(Gno,QTY,)关系中关系中,其中其中 GnoGno和和 QTYQTY属性分别代表商品编号及其库存量。试编写一属性分别代表商品编号及其库存量。试编写一事务事务TlTl完成相关操作。完成相关操作。解:解:./*/*读出配送中心关于商品读出配送中心关于商品 Gno1 Gno1 的库存量的库存量 QTY*/QTY*/EXEC SQL SELECT QTYEXEC SQL SELECT QTYINTO:MQTYINTO:MQTYFROM CenterInventoryFROM CenterInventoryWHERE Gno=:Gno1WHERE Gno=:Gno1;/*/*从配送中心商品库存信息从配送中心商品库存信息 CenterInventory CenterInventory 表中表中减去减去 Gno1 Gno1 商品的库存量商品的库存量*/*/EXEC SQL UPDATE CenterInventoryEXEC SQL UPDATE CenterInventorySET QTY=QTY-:quantitySET QTY=QTY-:quantityWHERE Gno=:Gno1WHERE Gno=:Gno1;IF(MQTYquantity)IF(MQTYquantity)print(print(库存不足库存不足,不能配送不能配送!)!);ROLLBACK TRANSACTIONROLLBACK TRANSACTION;/*/*恢复事恢复事务务,撤消所有操作串撤消所有操作串*/*/ELSEELSE/*从上海商品库存信息从上海商品库存信息 ShanghaiInventory ShanghaiInventory 表表中增加中增加 Gno1 Gno1 商品的库存量商品的库存量*/*/EXEC SQL UPDATE ShanghaiInventoryEXEC SQL UPDATE ShanghaiInventorySET QTY=QTY+:quantitySET QTY=QTY+:quantityWHERE Gno=:Gno1WHERE Gno=:Gno1;COMMIT TRANSACTION:/*COMMIT TRANSACTION:/*提交事务提交事务*/*/7.3.2 7.3.2 并发操作与数据的不一致性并发操作与数据的不一致性并发操作可能带来的数据不一致性情况有三种并发操作可能带来的数据不一致性情况有三种:丢失修改、读过时数据和读丢失修改、读过时数据和读“脏脏”数据。数据。7.3.3 封锁封锁()排它锁和共享锁()排它锁和共享锁排它锁和共享锁是最基本的封锁方式如排它锁和共享锁是最基本的封锁方式如果事务果事务 T 对数据对象对数据对象 Y 加上了加上了排它锁排它锁(记为记为 X 锁锁),那么那么 T 既可以读取既可以读取 Y,也可以更新也可以更新 Y。如果事务。如果事务 T 对数据对象对数据对象 Y 加上了加上了共享锁共享锁(记为记为 S 锁锁),那么那么 T 可以读取可以读取 Y,但不能更新但不能更新 Y。封锁的粒度封锁的粒度封锁对象的大小称为封锁的粒度(封锁对象的大小称为封锁的粒度(granularitygranularity)封锁的对象封锁的对象 逻辑单元逻辑单元:属性属性值值、属性、属性值值集合、元集合、元组组、关系、索引、关系、索引项项、整个索引、整个数据整个索引、整个数据库库 物理单元物理单元:页(数据页或索引页)、块页(数据页或索引页)、块 封锁粒度与系统并发度和并发控制开销密切相关。封锁粒度与系统并发度和并发控制开销密切相关。粒度越大,系统中能被封锁的对象就越少,并发度粒度越大,系统中能被封锁的对象就越少,并发度就越小,但同时系统的开销也就越小;相反,粒度就越小,但同时系统的开销也就越小;相反,粒度越小,并发度越高,系统开销越大越小,并发度越高,系统开销越大()封锁协议封锁协议 所谓封锁协议就是在对数据对象加锁、持所谓封锁协议就是在对数据对象加锁、持锁和释放锁时所约定的一些规则。锁和释放锁时所约定的一些规则。一级封锁协议一级封锁协议一级封锁协议规定事务一级封锁协议规定事务 T 在更新数据对象在更新数据对象以前以前,必须对该数据对象加排它锁必须对该数据对象加排它锁,并且直到并且直到事务事务 T 结束时才可以释放该锁。利用一级封结束时才可以释放该锁。利用一级封锁协议可以防止丢失更新问题的发生锁协议可以防止丢失更新问题的发生 二级封锁协议二级封锁协议 二级封锁协议规定事务二级封锁协议规定事务 T T 在更新数据对象以前在更新数据对象以前必须对数据对象加必须对数据对象加 X X 锁锁,且直到事务且直到事务 T T 结束时才结束时才可以释放该锁可以释放该锁,还规定事务还规定事务 T T 在读取数据对象以前在读取数据对象以前必须先对其加必须先对其加 S S 锁锁,读完后即可释放读完后即可释放 S S 锁。可以防锁。可以防止丢失更新问题,还可以防止未提交依赖问题,但止丢失更新问题,还可以防止未提交依赖问题,但却不能防止不一致性分析问题。却不能防止不一致性分析问题。三级封锁协议三级封锁协议 三级封锁协议规定事务三级封锁协议规定事务 T T 在更新数据对象以在更新数据对象以前前,必须对数据对象加必须对数据对象加 X X 锁锁,且直到事务且直到事务 T T 结束结束时才可以释放该锁时才可以释放该锁,还规定事务还规定事务 T T 在读取数据对在读取数据对象以前必须先对其加象以前必须先对其加 S S 锁锁,该该 S S 锁也必须在事务锁也必须在事务 T T 结束时才可释放。可以防止丢失更新和未提交依结束时才可释放。可以防止丢失更新和未提交依赖问题赖问题,此外还可以防止不一致性分析问题的发生此外还可以防止不一致性分析问题的发生。封锁带来的问题封锁带来的问题1-1-(活锁)(活锁)T1XFIND AT2XFIND AT3XFIND AAA已被封锁,不成功,等待A刚被释放,成功A刚被T2释放,成功T1永远等待永远等待活锁!活锁!解决方法:先来先服务封锁带来的问题封锁带来的问题2-2-饿死饿死事务序列A1A2A3A4A5资源AT2T2永远不永远不能封锁能封锁解决方法,改变授权方式:当事务T2中请对数据项Q加S锁时,授权加锁的条件是:不存在在数据项Q上持有X锁的其他事务;不存在等待对数据项Q加锁且先于T2申请加锁的事务 每一个事务均请求A的S锁,成功后一段时间释放请求A的X锁封锁带来的问题封锁带来的问题3-3-死锁死锁时间事务T1事务T2t0XFINDAt1XFINDBt2XFINDBt3waitXFINDAt4waitwait死锁死锁若事务依赖图有环则可能死锁图7.20 事务的无环依赖图图7.21 事务的有环依赖图死锁预防死锁预防 数据库中预防死锁的方法有两种数据库中预防死锁的方法有两种:第一种方法是要求每个事务必须一次性地将第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预先所有要使用的数据加锁或必须按照一个预先约定的加锁顺序对使用到的数据加锁。约定的加锁顺序对使用到的数据加锁。第二种方法是每当处于等待状态的事务有可第二种方法是每当处于等待状态的事务有可能导致死锁时能导致死锁时,就不再等待下去就不再等待下去,强行回滚该强行回滚该事务。事务。死锁检测死锁检测 检测事务依赖图中有无回路就可以判断是否发生了死锁。7.3.4 7.3.4 基于时标的并发控制技术基于时标的并发控制技术 时标技术是用于并发控制的另一种技术。由于时标技术是用于并发控制的另一种技术。由于时标技术不采用封锁时标技术不采用封锁,因此不存在死锁问题。时标技因此不存在死锁问题。时标技术不同于加锁技术术不同于加锁技术,它是基于时标的大小来解决操它是基于时标的大小来解决操作冲突作冲突,保证冲突的操作按照时间顺序来执行。保证冲突的操作按照时间顺序来执行。在时标技术中在时标技术中,由于事务不进行加锁由于事务不进行加锁,不会因不会因为资源竞争而处于等待状态为资源竞争而处于等待状态,因此不会产生死锁因此不会产生死锁,但这是以重新启动为代价的但这是以重新启动为代价的,它是时标技术的一个它是时标技术的一个主要缺点。主要缺点。7.3.5 SQL Server 7.3.5 SQL Server 事务和事务和封锁机制封锁机制(1)事务事务 在在 Microsoft Microsoft SQL SQL Server Server 系系统统中中,可可以以把把事事务务分分成成两两种种类类型型。一一种种是是系系统统提提供供的的事事务务,另另一一种种是是用用户户定定义义的的事事务务。事事务务的的工工作作原原理理如图所示:如图所示:事务的工作原理 事务复原和检查点机制示意图事务复原和检查点机制示意图 (2)(2)封锁机制封锁机制 封锁类型封锁类型 共享锁,修改锁,独占锁和意向锁是SQL Server 中常见的几种封锁模式 锁冲突及其防止办法锁冲突及其防止办法 死锁优先级的设置语句为死锁优先级的设置语句为:SET DEADLOCK_PRIORITYLOW|NORMAL SET DEADLOCK_PRIORITYLOW|NORMAL 其中其中 LOW LOW 说明该进程会话的优先级较低说明该进程会话的优先级较低,在出现死在出现死 锁时锁时,可以首先中断该进程的事务。可以首先中断该进程的事务。另外另外,各进程中通过设置各进程中通过设置 LOCK TIMEOUT LOCK TIMEOUT 选项能够选项能够设置进程处于锁定请求状态的最长等待时间。该设设置进程处于锁定请求状态的最长等待时间。该设置的语句:置的语句:SET LOCK_TIMEOUTtimeout_period SET LOCK_TIMEOUTtimeout_period 其中其中,timeout_period,timeout_period以毫秒为单位。以毫秒为单位。在在 SQL 92 SQL 92中定义了四种隔离性级别中定义了四种隔离性级别:未提交读、提未提交读、提交读、可重复读和可串行。交读、可重复读和可串行。手工加锁手工加锁 SQL Server SQL Server 系统中建议让系统自动管理系统中建议让系统自动管理锁锁,但在但在 SQL Server SQL Server 中中,封锁操作可以通过封锁操作可以通过SELECTSELECT、INSERTINSERT、DELETE DELETE、UPDATE UPDATE支持显式支持显式加锁。加锁。SELECT SELECT 语句为例语句为例,给出语法格式给出语法格式:SELECT*FROM SELECT*FROM HOLDLOCKHOLDLOCK 其中其中 :HOLDLOCK:HOLDLOCK 说明封锁将保持到事务结束。说明封锁将保持到事务结束。7.47.4数据库恢复数据库恢复数据库恢复的原理及其实现技术数据库恢复的原理及其实现技术 恢复系统应该提供两种类型的功能:一恢复系统应该提供两种类型的功能:一种是生成冗余数据,即对可能发生的故障作种是生成冗余数据,即对可能发生的故障作某些准备某些准备.另一种是冗余重建,即利用这些冗另一种是冗余重建,即利用这些冗余数据恢复数据库。余数据恢复数据库。数据备份数据备份 后后备备副副本本(或或后后援援副副本本)是是指指在在故故障障发发生生前前某某一一时时刻刻数数据据库库的的副副本本,副副本本中中包包含含了了数数据据库库中中所所有有数数据据,包括系统数据和用户数据。包括系统数据和用户数据。制制做做后后备备副副本本的的过过程程称称为为转转储储,是是由由DBA定定期期将将数数据据库库复复制制到到磁磁带带或或另另一一个个磁磁盘盘上上,并并将将这这些些备备用用的的数据文本妥善地保存起来。数据文本妥善地保存起来。转储可以分为增量转储和海量转储。海量转储是指转储可以分为增量转储和海量转储。海量转储是指每次转储全部数据库,而增量转储是指每次转储上每次转储全部数据库,而增量转储是指每次转储上次转储后修改过的数据。次转储后修改过的数据。转转储储要要用用DBMS提提供供的的专专门门命命令令,而而不不能能简简单单采采用用复复制制数数据据库库文文件件的的方方法法。转转储储可可分分为为静静态态转转储储和和动动态转储。态转储。静静态态转转储储是是指指系系统统停停止止对对外外服服务务,不不允允许许用用户户运运行行事务,只进行转储操作。事务,只进行转储操作。动动态态转转储储是是指指转转储储期期间间允允许许用用户户对对数数据据库库进进行行存存取取操操作作,即即转转储储和和用用户户事事务务可可以以并并发发执执行。行。普普通通用用户户是是无无权权进进行行转转储储操操作作的的,转转储储操操作作必必须须由由DBA完完成成。当当然然DBA也也可可以以授授权权给给其其他用户,由他代为转储。他用户,由他代为转储。登记日志文件登记日志文件 日志文件是用来记录事务的每一次对数据库更日志文件是用来记录事务的每一次对数据库更新操作的文件,包括用户的更新操作以及由此引起新操作的文件,包括用户的更新操作以及由此引起的系统内部的更新操作。有了日志文件,的系统内部的更新操作。有了日志文件,DBMS就就可以根据日志文件进行事务故障恢复和系统故障恢可以根据日志文件进行事务故障恢复和系统故障恢复,并结合后援副本进行介质故障恢复了。复,并结合后援副本进行介质故障恢复了。1.日志文件的格式和内容日志文件的格式和内容 对对于于以以记记录录为为单单位位的的日日志志文文件件,日日志志文文件件中中需需要登记的主要内容包括:要登记的主要内容包括:各个事务的开始(各个事务的开始(BEGIN TRANSACTION)标记)标记 各个事务的结束(各个事务的结束(COMMIT或或ROLLBACK)标记)标记 各个事务的所有更新操作各个事务的所有更新操作每个日志记录的内容主要包括:每个日志记录的内容主要包括:事务标识(标明是哪个事务)事务标识(标明是哪个事务)操作的类型(插入、删除或修改)操作的类型(插入、删除或修改)操作对象(记录内部标识)操作对象(记录内部标识)更更新新前前数数据据的的旧旧值值(对对插插入入操操作作而而言言,此此项项为为空空值)值)更更新新后后数数据据的的新新值值(对对删删除除操操作作而而言言,此此项项为为空空值)值)2.登登记日志文件日志文件时必必须遵循两条原遵循两条原则:(1)登登记记的的次次序序严严格

    注意事项

    本文(【教学课件】第7章数据库安全与保护.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开