1 / 46

第 6 章 数据库保护与事务管理

第 6 章 数据库保护与事务管理. 6.1 数据库的安全性. 6.2 数据库的完整性. 6.3 事务管理与数据库恢复. 6.4 事务的并发控制. 本章小结. 计算机系统的安全模型 :. 6.1 数据库的安全性. 网络控制. 用户标识 和鉴别. 数据库的安全性: 指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 安全数据库 ( 可信 DB) : 适应网络环境下安全要求级别的数据库。 可信计算基: 是指为实现数据库安全的所有实施策略和机制的集合。. DB 数据密 码存储. OS 安全保护. DBMS 存取控制.

hakan
Download Presentation

第 6 章 数据库保护与事务管理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 数据库保护与事务管理 6.1 数据库的安全性 6.2 数据库的完整性 6.3 事务管理与数据库恢复 6.4 事务的并发控制 本章小结

  2. 计算机系统的安全模型: 6.1数据库的安全性 网络控制 用户标识 和鉴别 • 数据库的安全性:指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 • 安全数据库(可信DB):适应网络环境下安全要求级别的数据库。 • 可信计算基: 是指为实现数据库安全的所有实施策略和机制的集合。 DB 数据密 码存储 OS 安全保护 DBMS 存取控制

  3. 6.1数据库的安全性 一、用户标识与鉴别 1. 利用用户自身具备的各种自然特征标识自己和提供鉴别的依据。 2. 利用用户持有的证件。 3. 利用口令。 口令保密可采用的一些方法: (1)扩大口令集和口令长度。 (2)规定口令的生效时间,定期或不定期地更换口令 (3)设置多层口令系统。 (4)设置动态口令。

  4. 6.1数据库的安全性 二 、 存取控制 1. 存取控制方法 • DBMS的安全子系统主要包括两部分: • 定义用户权限,并将用户权限登记到数据字典中。 • 合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 • 用户权限组成:数据对象和操作类型。 • 在数据库系统中,定义存取权限称为授权。 (1) 自主存取控制(DAC) 用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。

  5. (2)强制存取控制(MAC) 在强制存取控制(MAC)方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。 对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。 MAC适用于对数据有严格而固定密级分类的部门。 主体: 是指数据库中数据访问者、(用户、DBA)进程、线程等,是系统中的活动实体。 客体: 是指数据库中数据及其载体(表、视图、索引、存储过程等),是系统中的被动实体。 6.1数据库的安全性

  6. 对于主体和客体,DBMS为它们每个实例(值)指派一 个敏感度标记(Label)。 敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。 主体的敏感度标记称为许可证级别。 客体的敏感度标记称为密级。 6.1数据库的安全性 访 问 主体子集 客体子集

  7. MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。 当某一主体以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则: ① 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; ② 仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体 这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。 6.1数据库的安全性

  8. 2.如何实现存取控制? • (1) 用户分类分类与权限 • 一般分为四类: • 系统用户(或DBA) • 数据对象的属主 • 一般用户 • 公共用户 SQL Server 系统管理员 DBA 数据库对象用户 数据库访问用户 • (2)常有的几种权限 • ① 数据访问权限 读、插入、修改、删除权限 • ② 数据库模式修改权限(数据库管理权限): 索引权限、资源权限、修改权限、撤销权限(drop)

  9. 6.1数据库的安全性 (3) 授权 GRANT语句向用户授予操作权限 一般格式为: GRANT<权限>[,<权限>]… [ON<对象类型><对象名>] TO<用户>[,<用户>]... [WITH GRANT OPTION] • 语义为: 将对指定操作对象的指定操作权限授予指定的用户。 可将此权限转授 • 对不同类型的操作对象有不同的操作权限:

  10. 例:把查询表SC和修改其学号的权限授给用户 U2和U4 (或全体)。 GRANT SELECT , UPDATE(Sno) ON TABLE SC TO U2,U4; 例:把对表SC的INSERT权限授给用户U5,并允许将此权限再授予其他用户。 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION; U5还可以将此权限授予U6: GRANT INSERT ON TABLE SC TO U6; 6.1数据库的安全性 或 :PUBLIC; U6能不能再 传播此权限?

  11. 例:DBA把在数据库 DB1中建立表的权限授予用户U1。 GRANT CREATETAB ON DATABASE DB1 TO U1; GRANT语句可以: 一次向一个用户授权; 一次向多个用户授权; 一次传播多个同类对象的权限; 一次可以完成对基本表、视图和属性列这些不同对象的授权。 收回权限: 级联: (但系统只收回直接或间接从某处获得的权限) 6.1数据库的安全性 改 查 改 改 U1 U2 U3 UA回收 UA UB

  12. 三、视图机制 通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护 四.数据加密 以密码形式存储和传输数据。 五、审计 审计:是对选定的用户动作的监控和记录,以监测可能的不合法行为。 审计常用于: (1)审查可疑的活动。 (2)监视和收集关于数据库活动的数据。 6.1数据库的安全性

  13. 一、数据库的完整性 数据库的完整性: 是指数据的正确性、有效性和相容性。 说明: 完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。 数据库完整性约束条件: 加在数据库数据之上的语义约束条件。 完整性检查: 而DBMS中检查数据是否满足完整性条件的机制。 6.2数据库的完整性

  14. 6.2数据库的完整性 • DBMS的完整性控制机制应具有三个方面的功能: (1)定义功能: 提供定义完整性约束条件的机制。 (2)检查功能: 检查用户发出的操作请求是否违背完整性约束条件 (3)防范功能: 如果发现用户的操作请求使数据违背了完整性约束条件, 采取一定的动作来保证数据的完整性。

  15. 6.2数据库的完整性 二、完整性约束的设计 1.基本表的约束 (1)主码约束 PRIMARY KEY (<列名表>) (2)外码约束 FOREIGN KEY (<列名表>) REFERENCE <目标表>[(<列名表>)] [ON DELETE <参照动作>] [ON UPDATE <参照动作>] <参照动作>: NO ACTION、CASCADE、RESTRICT、SET NULL、SET DEFAULT (3)检查约束 CHECK (<条件表达式>) 【例5.14】 ~【例5.17】

  16. 二、完整性约束的设计 2、域约束 CREATE DOMAIN <域名> <域类型> CHECK (<条件>) 【例5.18】 3、断言 注意:CHECK子句只对定义它的表起作用,对其它表不起作用 当约束条件涉及多个表、使用聚集操作时应使用断言。 CREATE ASSERTION <断言名> CHECK (<条件>) • 【例5.19】每门课程只允许100个学生选修。 • CREATE ASSERTION asser1 • CHECK (100>=ALL(SELECT COUNT(sno) • FROM s_c • GROUP BY cno)) ;

  17. 三、数据库触发器设计 • 触发器:当对相关表执行INSERT、UPDATE、DELETE语句时被隐式执行的过程。 • 触发器与存储过程的区别: • 存储过程由用户或应用显示执行;触发器是为一激发语句发出时由DBMS隐式地触发。 • 触发器的组成: • (1)触发事件 • (2)触发条件 • (3)触发器动作 • 触发器的作用:强制实现更复杂的完整性约束。 • 触发器的类型: • (1) AFTER • (2) BEFORE • 例:--

  18. 三、数据库触发器设计 • 例:规定修改SC表的grade值时,修改后的值不能低于修改前的值。 CREATE TRIGGER Trig_grade AFTER UPDATE OF grade ON SC REFERENCING OLD AS oldg,NEW AS newg FOR EACH ROW WHEN (oldg.grade>newg.grade) UPDATE SC SET grade=oldg.grade WHERE cno=newg.cno; 触发事件 触发条件 触发器动作

  19. 6.3 事务管理与数据库恢复 一. 事务的基本概念 1.事务(Transaction): 是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 • 事务和程序关系: 1)程序是静止的,事务是动态的。事务是程序的执行而不是程序本身。 2)一个程序中可包含多个事务 • 事务生成: • 用户显式地定义事务 • 由DBMS按缺省自动划分事务 • 在SQL语言中,定义事务的语句有三条: BEGIN TRANSACTION 事务开始 COMMIT -----事务提交 ROLLBACK -----事务回滚

  20. 一. 事务的基本概念 最后一条语 句被执行后 成功完成,永 久写入数据库 BEGIN TRANSACTION COMMIT 活动 提交 局部提交 状态 状态 状态 执行事务 ROLLBACK 失败 中止 状态 状态 事务无法继 续正常执行 事务回滚,数据库恢 复到事务开始前状态 事务定义语句与状态的关系 2.事务的状态

  21. 一. 事务的基本概念 3.事务的特性(ACID) • 原子性 • 一致性 • 隔离性 • 持续性 • ACID特性遭到破坏的因素有: (1)多个事务并发运行时,不同事务的操作交叉执行 (2)事务在运行过程中被强行停止。 更新事务的执行要求: 更新事务在活动状态下对数据库的任何修改都不能直接 在磁盘中进行,而只能在内存缓冲区中进行。

  22. 二、数据库恢复技术 • 数据库的恢复: 指DBMS必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能。 • 数据库恢复的基本单位是事务。 • 数据库恢复机制包括一个数据库恢复子系统和一套特定的数据结构。 • 实现恢复的基本原理是重复存储数据,即数据冗余。 建立冗余数据常用技术: • 数据转储 • 登记日志文件

  23. 二、数据库恢复技术 故障 发生点 正常运行 Ta Tb Tf 装副本 重新运行事务 恢复 1. 数据转储 转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。 数据转储与恢复[例] 得到 副本 转储 运行事务

  24. 静态转储和动态转储 (1)静态转储: 是在系统中无运行事务时进行的转储操作。 静态转储得到的一定是一个数据一致性的副本。 (2)动态转储:是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。 海量转储和增量转储 (1)海量转储:每次转储全部数据库。 (2)增量转储: 每次只转储上一次转储后更新过的数据。 二、数据库恢复技术

  25. 2.登记日志文件 日志文件—用来记录事务对数据库的更新操作的文件。 日志文件主要有两种格式: 以记录为单位 以数据块为单位 登记日志文件应遵循两条原则: (1)登记的次序严格按并发事务执行的时间次序。 (2)必须先写日志文件,后写数据库。 二、数据库恢复技术 登记日志文件 故障 发生点 正常运行 Ta Tb Tf 利用日志文件 恢复事务 装副本 恢复 继续运行 静态转储 运行事务 登记日志文件

  26. 二、数据库恢复技术 3. 检查点恢复技术 • 利用日志文件进行数据库恢复时存在的问题: (1)搜索整个日志文件将耗费大量的时间。 (2)很多需要重做(REDO)处理的事务实际上已经将它们的 更新操作结果写到数据库中了,然而恢复子系统又重新执 行了这些操作,浪费了大量时间。 • 解决:使用检查点方法。 • 检查点(check point)也称安全点、恢复点。 • 当事务正常运行时,数据库系统按一定的时间间隔设检查点。一旦系统需要恢复数据库状态,就可以从最新检查点开始执行,而不必从头开始执行那些被中断的事务。

  27. 增加:①日志文件中的检查点记录 ②一个重新开始文件 并让恢复子系统在登录日志文件期间动态地维护日志。 检查点记录的内容包括: ①建立检查点时刻所有正在执行的事务清单(Ti)。 ②各事务最近一个日志记录的地址(Di)。 3. 检查点恢复技术 重新开始文件 日志文件 Ci的记录地址 Cj的记录地址 T1 D1 T2 D2 … 日志文件 检查点Ci的重新开始记录 检查点记录

  28. 3. 检查点恢复技术 检查点Tc 系统故障Ti 时间 T1 重做 T4 T2 T3 撤销 T5 • 动态维护日志文件的方法是周期性地执行: 建立检查点,保存数据库状态。具体步骤是: ①将当前所有日志记录写入磁盘日志文件上; ②在日志文件中写入一个检查点记录; ③将当前所有数据记录写入磁盘的数据库中; ④把检查点记录在日志文件中的地址写入重新开始文件。 恢复系统将根据事务的不同状态采取不同的恢复策略: 在检查点前开始,在 其后且故障点前提交 不重做

  29. 根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。DBMS自动保证镜像数据与主数据的一致性。根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。DBMS自动保证镜像数据与主数据的一致性。 作用: 一旦出现介质故障,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。 在没有出现故障时,数据库镜像还可以用于并发操作,即当一个用户对数据加排它锁修改数据时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。 4.数据库镜像

  30. 4.数据库镜像 应用2 read update 复制 应用3 应用1 恢复 应用4 update DB 镜像

  31. 远程备份: 主站点A执行事务处理,远程备份站B点应付突然事件。随着更新在A站点的执行,B站点需保持同步。 同步方法: 发送所有站点A的日志记录到站点B,B站点根据日志记录执行同样操作以达到同步。 注意:不是传送更新的数据本身! 5.远程备份 主站点A 备份站点B 网络 DB 日志记录 DB 日志记录

  32. 1)事务故障及恢复 事务故障:指事务在运行至正常结束点前被终止。 策略:利用日志文件撤销(UNDO)事务对DB的修改。 2)系统故障及恢复 系统故障: 指造成系统停机,使系统要重启动的任何事件。 策略: 撤销未完成的事务 重做(REDO)已完成事务 说明:系统重启动时自动恢复 3)介质故障及恢复 介质故障:指外存故障,使物理数据和日志文件被破坏。 策略:用后备及日志文件副本,重装数据库,再重做已完成的事务。 说明:需DBA介入。 三、故障种类与恢复策略 计算机病毒?

  33. 6.4 事务的并发控制 ③A—1写回 ①读出A=16 ②读出A=16 ④A—1 写回 • 1.并发控制的概念 并发操作—在多用户共享系统中,多个用户同时存取同一数据的情形称为并发操作。 • 并发操作可能带来的问题: (1)破坏数据库的一致性 (2)破坏事务的隔离性 甲事务 A=16 • 并发操作带来的三类数据不一致性: • 1)丢失修改 • T1、T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果。 A=15 乙事务

  34. 1.并发控制的概念 ①读出B=100 ③读不出B ②删除B 2)不可重复读 T1读数据后,T2执行更新操作,使T1无法再现前一次读取结果。 B=100 甲事务 • 不可重复读包括三种情况: • (1) 某事务两次读同一数据时,得到的值不同。 • (2)某事务再次按相同条件读取数据时,发现记录丢失。 • (3)某事务再次按相同条件读取数据时,发现多了记录。 乙事务

  35. 3)脏读 T1修改数据并写回磁盘,T2读取同一数据后,T1被撤销即数据恢复原值,T2读的数据与DB中的不一致,称“脏”数据。 并发控制方法:封锁 1.并发控制的概念 ①读出C C*2写回 ③撤销 ②读出 C=200 C=100 甲事务 C=200 “脏”数据 乙事务

  36. 封锁:指事务T在对某个数据对象操作之前,对其加锁。在T未释放锁之前,其他的事务不能更新此数据对象。封锁:指事务T在对某个数据对象操作之前,对其加锁。在T未释放锁之前,其他的事务不能更新此数据对象。 基本的封锁类型有两种: 排它锁(X锁或写锁): 保证其他事务在T释放A上的锁之前,不能再读取和修改A。 共享锁(S锁或读锁): 保证其他事务可以读A,但在T释放A上的S锁之前,不能对A做任何修改。 2.封锁与封锁协议 X锁 S锁 事务Ti 禁止加锁 可加S锁 禁止加X锁 事务Ti 事务T 数据 对象A T可读、修改A 事务T 数据 对象A T可读、不可改A

  37. 三级封锁协议: 1)一级封锁协议 是事务T在修改数据R之前必须先对其加X锁,直到事务T结束(COMMIT和ROLLBACK)才释放。 作用:可防止丢失修改,并保证事务T是可恢复的。 2)二级封锁协议 是一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。 作用:防止丢失修改,还可进一步防止读“脏”数据。 3)三级封锁协议 是一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。 作用:除防止丢失修改和读“脏”数据外,还可防止不可重复读。 2.封锁与封锁协议

  38. 3.活锁与死锁 事务T1 锁 请求加锁 事务T2 事务T3 事务T4 事务T1 事务T2 • 活锁:使某个事务永远处于等待状态,而得不到执行的现象称为活锁。 避免活锁的方法: 先来先服务。 等待 数据 R • 死锁 数据 R1 请求加锁 数据 R2

  39. 调度:事务的执行次序。 (1) 并发调度的可串行性 在多个应用、多个事务中有如下几种执行方式: ①串行执行:以事务为单位,多个事务依次顺序执行,此种执行称为串行执行,串行执行能保证事务的正确执行。 ②并发执行:以事务为单位,多个事务按一定调度策略同时执行,此种执行称为并发执行。 ③并发执行的可串行化:事务的并发执行并不能保证事务正确性,因此需要采用一定的技术,使得在并发执行时像串行执行时一样,此种执行称为并发事务的可串行化。而所采用的技术则称为并发控制技术。 可串行化调度 :如果一个并发调度执行的结果等价于某一个串行调度的结果,称这种调度策略为可串行化的调度。 4.并发调度的可串行性

  40. 两段锁协议: 指所有事务必须分两个阶段对数据项加锁和解锁。 获得封锁:对任何数据进行读、写操作之前,要申请并获得对该数据的封锁; 释放封锁: 释放一个封锁后,事务不再申请和获得任何其他封锁。 例如:事务T遵守两段锁协议,其封锁序列是; Slock A Slock B Xlock C Unlock B Unlock A Unlock C |<——----- 扩展阶段—-->|<———-- 收缩阶段----——>| 结论:若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。 说明:事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。 4.并发调度的可串行性

  41. 5.封锁的粒度 • 封锁粒度:封锁对象的大小。 • 封锁对象:属性、元组、关系、数据库 • 封锁粒度与系统的并发度和并发控制的开销密切相关: • 封锁的粒度越大,并发度越小,系统开销越小; • 封锁的粒度越小,并发度越高,系统开销越大。 • 多粒度封锁:一个系统中同时支持多种封锁粒度供不同事务选择的封锁方法。 • 封锁粒度选择原则: (1)需处理大量元组的事务以关系为封锁粒度。 (2)需处理多个关系的大量元组的事务以数据库为封锁粒度。 (3)处理少量元组的事务以元组为封锁粒度。

  42. 1)多粒度封锁 多粒度树 四级粒度树 5.封锁的粒度 数据库 关系R1 … 关系Rn 元组 元组 元组 … 元组 列 … 列 列 … 列 ……

  43. 2)多粒度树封锁协议 可对多粒度树中的每个结点独立加锁。 注意:自动对其所有后裔结点加同类型的锁。 多粒度封锁方式:显式封锁和隐式封锁。 显式封锁是应事务的要求直接加到数据对象上的封锁; 隐式封锁是该数据对象没有独立加锁,是由于其上级结点加锁而使该数据对象加上了锁。 5.封锁的粒度 事务T1 数据库 关系R1 … 关系Rn 元组 … 元组 元组 … 元组 列 … 列 列 … 列 ……

  44. 3)意向锁 意向锁加锁原则:如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。 例如:对任一元组加锁时,必须先对它所在的关系加意向锁。 三种常用的意向锁: a.意向共享锁(IS锁) 若对一个数据对象加IS锁,表示它的后裔结点拟加S锁。 例如:要对某个元组加S锁,则要先对关系和数据库加IS锁。 b.意向排它锁(IX锁) 若对一个数据对象加Ⅸ锁,表示它的后裔结点拟加X锁 c.共享意向排它锁(SIX锁) 若对一个数据对象加SIX锁,表示对它加S锁,再加IX锁,即SIX=S+IX 5.封锁的粒度

  45. 要点: 1. DBMS的特点及功能 2. 关系DBS的查询优化策略 3. 数据库安全控制技术 用户标识与鉴别、存取控制、审计、视图、密码存储 4.完整性控制技术: 利用主码实现实体完整性 利用外码实现参照完整性 利用一般约束,SQL断言等实现用户定义完整性 (用触发器实现特殊要求的完整性) 第6章 数据库保护与事务管理

  46. 5. 事务管理技术 事务的基本概念及ACID特性 恢复的实现技术 数据转储、志文件、具有检查点的恢复技术、数据库镜像、远程备份 恢复策略 事务故障的恢复 系统故障的恢复 介质故障的恢复(计算机病毒) 并发控制:封锁的类型(X锁和S锁)及三级封锁协议 两段锁协议、封锁粒度 第5章 数据库保护与事务管理 本章练习:

More Related