第7章数据库的安全保护.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 数据库的安全保护 7.1 数据库的安全性及SQL Server的安全保护技术 1. 用户标识与鉴别 2. 存取控制 3. 视图 7.1.2 SQL Server的安全体系结构和安全认证模式 2. SQL Server的安全认证模式 2. 数据库用户的管理 7.2.1 完整性约束条件及完整性控制 7.2.2 DBMS的完整性控制功能 7.2.3 SQL Server数据完整性实现方法 2. SQL Server实现数据完整性的两种方式 7.3 数据库的并发控制 事务的特性 2. 事务并发操作可能产生的数据不一致性 7.3.2 封锁及封锁协议 1. 锁的类型 2. 封锁协议 事务并发操作可能产生的数据不一致问题 用封锁机制解决三种数据不一致性的例子 7.3.3 封锁出现的问题及解决方法 7.4 数据库恢复技术 7.4.1 故障的种类 7.4.2 数据库恢复策略 7.4.3 数据恢复的实现技术 7.4.3 SQL Server 的数据备份和恢复机制 2. SQL Server的数据备份或恢复策略 T1 T2 T1 T2 T1 T2 1) 读A=20 ? ? ? 1) 读A=50 读B=100 求和=150 ? ? ? 1) 读C=100 C←C*2 写回C ? ? ? 2) 读A=20 3) A←A-1 写回A=19 ? ? ? 2) ? ? 读B=100 B←B*2 写回B=200 2) ? ? 读C=200 4) A←A-1 写回A=19 (A少减一次) 3) 读A=50 读B=200 和=250 (验算不对) ? 3) ROLLBACK C恢复为100 (错误的C值已读出) (a)丢失数据 (b)不可重复读 (c)读“脏”数据 T1 T2 T1 T2 T1 T2 1) Xlock A 获得 ? ? 1) Slock A Slock B 读A=50 读B=100 A+B=150 ? ? ? ? ? 1) Xlock C 读C=100 C←C*2 写回C=200 ? ? ? ? ? ? 2) 读A=20 ? ? ? Xlock A 等待 3) A←A-1 写回A=19 Commit Unlock A 等待 等待 等待 ? 2) ? ? Xlock B 等待 等待 2) ? ? Slock C 等待 等待 3)读A=50 读B=100 A+B=150 Commit Unlock A Unlock B 等待 ? ? ? ? ? ? ? ? 3) ROLLBACK (C恢复为100) Unlock C ? 等待 等待 ? ? ? ? ? 4) ? ? ? 获得Xlock A 读A=19 A←A-1 写回A=18 Commit Unlock ? ? 4) ? ? ? 获得Xlock 读B=100 B←B*2 写回B=200 Commit Unlock B 4) ? 获得Slock C 读C=100 Commit C Unlock C (a) 没有丢失修改 (b) 可重复读 (c) 不读“脏”数据 ? X锁 S锁 一致性保证 ? 操作结束释放 事务结束 释放 操作结束释放 事务结束释放 不丢失 修改 不读“脏” 数据 可重复读 一级协议 ? √ ? ? √ ? ? 二级协议 ? √ √ ? √ √ ? 三级协议 ? √ ? √ √ √ √ 活锁和死锁 活锁。  如:事务T1封锁了数据R,T2事务又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的锁后,系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的锁后,系统又批准了T4的请求…, T2可能永远等待。     在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁。 解决方法:采用先来先服务的方法,即对要求封锁数据的事务排队,使前面的事务先获得数据的封锁权。 (2) 死锁   如果事务T1和T2都需要数据R1和R2, T1封锁了数据R1,T2封锁了数据R2;然后T1又请求封锁R2, T2请求封锁R1,事务T1、T2都等待对方释放R1或R

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档