数据库原理06 数据库保护_第1页
数据库原理06 数据库保护_第2页
数据库原理06 数据库保护_第3页
数据库原理06 数据库保护_第4页
数据库原理06 数据库保护_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6 数据库保护 n数据库恢复数据库恢复 n并发控制并发控制 n数据库安全性数据库安全性 n数据库完整性数据库完整性 n事务:是一个不可分割的操作序列,事务:是一个不可分割的操作序列, 该操作序列要么全做,要么全不做。该操作序列要么全做,要么全不做。 n强调:事务和程序是两个概念。强调:事务和程序是两个概念。 一个一个 程序中可以包含多个事务。程序中可以包含多个事务。 n事务是恢复和并发控制的基本单位事务是恢复和并发控制的基本单位 隐式控制:隐式控制:由由DBMS按缺省规定自动划分。按缺省规定自动划分。 显式控制:显式控制: BEGIN TRANSACTION 事务开始事务开始 COMMIT 事

2、务提交,重新改写数据库事务提交,重新改写数据库 ROLLBACK 事务提交,发生错误撤消事务提交,发生错误撤消 BEGIN TRANSACTION INSERT INTO S(S#, Sname, Sage, Sdept) VALUES(10002, 李娜李娜, 18,计算计算 机机) COMMIT BEGIN TRANSACTION DELETE FROM S WHERE S#=10002 DELETE FROM SC WHERE S#=10002 ROLLBACK 1、原子性(、原子性(Atomicity) 事务是不可分割的工作单位事务是不可分割的工作单位 2、一致性(、一致性(Consi

3、stency) 事务提交后,数据库从一个一致事务提交后,数据库从一个一致 性状态变到另一个一致性状态。性状态变到另一个一致性状态。 例:现假设一个公司数据库 中有两个账户S,C,分别有 存款30万元和20万元,现从S 账户上的取出10 万元放入到 C账户上。 S:200000 C:200000 中间状态中间状态 一一 致致 状状 态态 一一 致致 状状 态态 Read(S) S=300000 S=S-100000 S=200000 Write(S) Read(C) C=200000 C=C+100000 C=300000 Write(C) S:300000 C:200000 S:200000

4、C:300000 3 3、隔离性(、隔离性(IsolationIsolation) 在事务完成之前,它对数据库产在事务完成之前,它对数据库产 生的结果不能被其它事务引用。生的结果不能被其它事务引用。 4 4、持续性(、持续性(DurabilityDurability) 一旦事务执行成功一旦事务执行成功( (提交提交) ),其对,其对 数据库产生的效果永久有效。数据库产生的效果永久有效。 数据库的恢复:数据库的恢复: 把数据库从错误把数据库从错误 状态恢复到某一状态恢复到某一 已知的正确状态。已知的正确状态。 一、故障的类型一、故障的类型 1 1事务故障事务故障 2 2系统故障系统故障 3 3介

5、质故障介质故障 4 4计算机病毒计算机病毒 1 1事务故障事务故障 是事务内部的故障。是事务内部的故障。 预期故障:预期故障: 通过在程序中加判断条件来实现通过在程序中加判断条件来实现 非预期的故障:非预期的故障: 如由于死锁而被迫撤销的事务等如由于死锁而被迫撤销的事务等 2 2系统故障系统故障 (需要系统重新启动)(需要系统重新启动) 原因:原因:硬件错误、操作系统故障、硬件错误、操作系统故障、DBMSDBMS代码错误、代码错误、 突然停电等。突然停电等。 特点:特点:故障影响正在运行的所有事务,但不破坏故障影响正在运行的所有事务,但不破坏 数据库。可能会造成数据库中数据的不一致性。数据库。

6、可能会造成数据库中数据的不一致性。 其原因:其原因: n故障发生时,尚未完成的事务的结果可能已送故障发生时,尚未完成的事务的结果可能已送 入到物理数据库。入到物理数据库。 n故障发生时,有些已完成的事务所做的数据更故障发生时,有些已完成的事务所做的数据更 改还在缓冲区中,尚未写到物理数据库中。改还在缓冲区中,尚未写到物理数据库中。 3 3介质故障介质故障 是指存储数据库的磁盘发生故障。是指存储数据库的磁盘发生故障。 原因:可能是磁盘损坏、磁头碰撞、瞬时强原因:可能是磁盘损坏、磁头碰撞、瞬时强 磁场干扰等。磁场干扰等。 特点:使数据库受到破环。虽然可能性小,特点:使数据库受到破环。虽然可能性小,

7、 但破坏性最大。但破坏性最大。 系统故障称为软故障 介质故障称为硬故障 4 4计算机病毒计算机病毒 人为的故障或破人为的故障或破 坏,是一些恶作坏,是一些恶作 剧者研制的一种剧者研制的一种 计算机程序。计算机程序。 两个关键问题:两个关键问题: 1 1 如何建立冗余数据如何建立冗余数据 2 2 如何利用这些冗余数据实施数据库恢复如何利用这些冗余数据实施数据库恢复 1 1、数据转储、数据转储 转储:定期将转储:定期将DBDB复制到其它外存保存(副本)复制到其它外存保存(副本) 1 1、转储类型、转储类型 n静态转储:在系统空闲的时候进行,转储期间静态转储:在系统空闲的时候进行,转储期间 不允许对

8、数据库进行操作。不允许对数据库进行操作。 优点:简单、保证副本和数据库数据的一致性。优点:简单、保证副本和数据库数据的一致性。 缺点:需等待。缺点:需等待。 n动态转储:转储期间允许对数据库进行操作。动态转储:转储期间允许对数据库进行操作。 优点:效率高。优点:效率高。 缺点:不能保证副本和数据库数据的一致性。缺点:不能保证副本和数据库数据的一致性。 建立冗余常用技术 2 2、转储方式、转储方式 海量转储:每次转储数据库中的全部数据海量转储:每次转储数据库中的全部数据 增量转储:每次转储上一次转储后更新过的数据增量转储:每次转储上一次转储后更新过的数据 转储状态转储状态 动态转储动态转储静态转

9、储静态转储 转储转储 方式方式 海量转储海量转储动态海量转储动态海量转储静态海量转储静态海量转储 增量转储增量转储动态增量转储动态增量转储静态增量转储静态增量转储 建立冗余常用技术 3、数据库镜像:自动将数据库中的全部数据、数据库镜像:自动将数据库中的全部数据 或关键数据复制到另外一张盘上。或关键数据复制到另外一张盘上。 应用应用1 应用应用2 应用应用3 应用应用4 update 复制复制 read read read 应用应用1 应用应用2 应用应用3 应用应用4 update 恢复恢复 read read (a) (b) read 镜像镜像 镜像镜像 缺点:降低系统效率缺点:降低系统效率

10、 建立冗余常用技术 2 2、日志文件、日志文件 1 1、内容、内容 n事务标识(标明是哪个事务)事务标识(标明是哪个事务) n操作类型及对象操作类型及对象(插入、删除、修改,记录内部标识)(插入、删除、修改,记录内部标识) n更新前后的值更新前后的值 2 2、作用:、作用: 用于数据库恢复用于数据库恢复 3 3、登记要求、登记要求 n按时间次序按时间次序 n先写日志文件,后写数据库。先写日志文件,后写数据库。 建立冗余常用技术 1 1、事务故障的恢复、事务故障的恢复 恢复策略:恢复策略:反向扫描日志文件,将反向扫描日志文件,将 日志中更新前的数据写回到数据日志中更新前的数据写回到数据 库中,直

11、至事务的开始标志。库中,直至事务的开始标志。 2 2、系统故障、系统故障的恢复的恢复 恢复策略:恢复策略:撤销故障发生时未完成的事撤销故障发生时未完成的事 务,重做已完成的事务。务,重做已完成的事务。 方法:扫描日志文件;找出故障发生前方法:扫描日志文件;找出故障发生前 提交的事务,让该事务重做(提交的事务,让该事务重做(REDOREDO);); 找出故障发生前未提交的事务,让其找出故障发生前未提交的事务,让其 撤销(撤销(UNDOUNDO)。)。 3 3、介质故障的恢复、介质故障的恢复 恢复策略:恢复策略:利用数据库副本和日志文件利用数据库副本和日志文件 副本进行恢复。(需要副本进行恢复。(

12、需要DBADBA介入)介入) 例:银行中,C账户上原有存款500元,现 有两位顾客同时给此账户存款,分别 运行下面两个事务: T1:READ(C), C=C+100,WRITE(C); T2:READ(C), C=C+200,WRITE(C); 运行过程可能如下: (1)先执行事务T1,然后执行事务T2 (2)先执行事务T2,然后执行事务T1 (3)事务T1和事务T2并发执行 读出读出C,C=500读出读出C,C=500 C=C+100,C=600 把把C写到数据库写到数据库 C=C+200,C=700 把把C写到数据库写到数据库 C:600 C:700 C:500 T1的运行的运行T2的运行

13、的运行 事务事务T1事务事务T2 读出读出C,C=500 C=C+100 C=600 读出读出C,C=500 C=C+200 C=700 事务事务T1事务事务T2 读出读出A=50 读出读出B=100 求和求和=150 读出读出B=100 B=B*2 WRITE(B) 读出读出A=50 读出读出B=200 求和求和=250 (验算不对)(验算不对) 事务事务T1事务事务T2 读出读出 C=100 C=C*2 WRITE(C) 读出读出 C=200 ROLLBACK C恢复为恢复为100 n封锁封锁 *排它锁(写锁,简称排它锁(写锁,简称X锁)锁) *共享锁(读锁,简称共享锁(读锁,简称S锁)锁

14、) n封锁协议封锁协议 1、封锁封锁: 就是事务就是事务T在对数据进行操作之前,先向系统申在对数据进行操作之前,先向系统申 请对其进行加锁,此时不允许其它事务更新该数据,请对其进行加锁,此时不允许其它事务更新该数据, 直到事务直到事务T释放该数据上的锁。释放该数据上的锁。 2、封锁的类型封锁的类型 n排它锁排它锁(又称写锁,简称(又称写锁,简称X锁)锁) 若事务若事务T对数据对象对数据对象A加上加上X锁,则其它事务不能锁,则其它事务不能 在在A上加任何类型的锁,此时,只允许事务上加任何类型的锁,此时,只允许事务T读取读取 和修改和修改A,直到直到T释放释放A上的锁。上的锁。 n共享锁共享锁(又

15、称读锁,简称(又称读锁,简称S锁)锁) 若事务若事务T对数据对象对数据对象A加上加上S锁,则其它事务也可锁,则其它事务也可 在在A上加上加S锁,但不能加锁,但不能加X锁,事务锁,事务T和其它事务只和其它事务只 能读取能读取A,但不能修改但不能修改A。 3、封锁协议、封锁协议 1)一级封锁协议一级封锁协议 事务事务T在修改数据在修改数据A之前必须先对之前必须先对 其加其加X锁,直到事务结束才释放。锁,直到事务结束才释放。 一级封锁协议可防止丢失修改,一级封锁协议可防止丢失修改, 并可保证事务并可保证事务T是可恢复的,但不能是可恢复的,但不能 保证可重复读和不读保证可重复读和不读“脏脏”数据数据。

16、 一级封锁协议例一级封锁协议例 Xlock A Read (A) A=10 A=A-5 Write(A) Commit Unlock A Xlock A Read (A) A=5 A=A-5 Write(A) Commit Unlock A 等待等待 等待等待 等待等待 等待等待 获得获得 Xlock A 事务事务T1事务事务T2 没有丢失修改没有丢失修改 READ(C,D) M=C+D READ(C,D) M=C+D READ(C,D) C=C+10 D=D+10 事务事务T1事务事务T2 不可重复读不可重复读 Write (D) Write (C) Xlock C Xlock D Unlo

17、ck C Unlock D 1级封锁协议 读读A=15 Xlock A 获得获得 读读A=16 AA-1 写回写回 A=15 Rollback Unlock A T2T1 读读“脏脏”数据数据 2)二级封锁协议)二级封锁协议 一级封锁协议加上事务一级封锁协议加上事务T在读在读 取数据取数据A之前必须对其加之前必须对其加S锁,读锁,读 完后即可释放完后即可释放S锁。锁。 二级封锁协议可防止修改丢失,二级封锁协议可防止修改丢失, 还可防止读还可防止读“脏脏”数据,但不能保数据,但不能保 证可重复读。证可重复读。 二级封锁协议例二级封锁协议例 READ(C,D) M=C+D READ(C,D) C=

18、C+10 D=D+10 事务事务T1事务事务T2 防止读防止读“脏脏”数据数据 Write (D) Write (C) Xlock C Xlock D Unlock C Unlock D RollBack Slock C Slock D 等待等待 等待等待 等待等待 获得获得Slock C 获得获得Slock D Unlock C Unlock D READ(C,D) M=C+D READ(C,D) C=C+10 D=D+10 事务事务T1事务事务T2 不可重复读不可重复读 Write (D) Write (C) Xlock C Xlock D Unlock C Unlock D Slock

19、C Slock D Unlock C Unlock D 等待等待 获得获得Xlock C 获得获得Xlock D READ(C,D) M=C+D Slock C Slock D Unlock C Unlock D 等待等待 获得获得Slock C 获得获得Slock D Commit Commit Commit 3)三级封锁协议)三级封锁协议 一级封锁协议加上事务一级封锁协议加上事务T在读在读 取数据取数据A之前必须对其加之前必须对其加S锁,锁, 直到事务结束才释放。直到事务结束才释放。 三级封锁协议可防止修改丢三级封锁协议可防止修改丢 失,还可防止读失,还可防止读“脏脏”数据和数据和 保证可

20、重复读。保证可重复读。 三级封锁协议例 READ(C,D) M=C+D READ(C,D) C=C+10 D=D+10 事务事务T1事务事务T2 可重复读可重复读 Write (D) Write (C) Xlock C Xlock D Unlock C Unlock D READ(C,D) M=C+D Slock C Slock D Unlock C Unlock D 等待等待 获得获得Xlock C 获得获得Xlock D 等待等待Commit Commit 不同级别的封锁协议 X锁S锁一致性保证 操作结 束释放 事务结 束释放 操作结 束释放 事务结 束释放 不丢失 修改 不读脏 数据 可

21、重复 读 一级 二级 三级 4、活锁活锁:事务事务T1,T2申请数据对象申请数据对象A, T1先给先给A加锁,加锁,T1释放释放A上的锁后,事上的锁后,事 务务T3又给又给A加锁,加锁,T2等待,这样,等待,这样,A始始 终被其他事务封锁,事务终被其他事务封锁,事务T2可能长时可能长时 间得不到间得不到A,这种情况称为活锁。这种情况称为活锁。 避免活锁的方法:避免活锁的方法: 采用先来先服务的原则。采用先来先服务的原则。 5、死锁、死锁 事务事务T1已经封锁已经封锁A,而又想申请封锁而又想申请封锁B, 而此时事务而此时事务T2已经封锁已经封锁B,而又想申请封而又想申请封 锁锁A,这样,这样,T

22、1等待等待T2释放释放B,而而T2等待等待 T1释放释放A,使得使得T1、T2均无法继续执行均无法继续执行 下去,这种情况称为死锁。下去,这种情况称为死锁。 LOCK B LOCK B LOCK A LOCK A 6、解决死锁的方法、解决死锁的方法 n预防死锁预防死锁 * 一次封锁法:要求每个事务必须一次封锁法:要求每个事务必须 一次将所有要使用的数据全部封锁,一次将所有要使用的数据全部封锁, 否则,不能执行。否则,不能执行。 缺点:降低了系统的并发度。缺点:降低了系统的并发度。 * 顺序封锁法:预先对数据对象规顺序封锁法:预先对数据对象规 定一个封锁次序,所有事务都按这定一个封锁次序,所有事

23、务都按这 个次序实行封锁。个次序实行封锁。 缺点:排列封锁次序困难。缺点:排列封锁次序困难。 n判断并解除死锁判断并解除死锁 * 超时法:事务的等待超过了规定的时限超时法:事务的等待超过了规定的时限 * 等待图法:检测等待图中是否有回路存在。等待图法:检测等待图中是否有回路存在。 1 1、事务的表示方法:、事务的表示方法: R Ri i(X)(X)表示事务表示事务T Ti i的读的读X X操作;操作; W Wi i(X)(X)表示事务表示事务T Ti i的写的写X X操作。操作。 例:事务例:事务T1(Read(B)T1(Read(B);A=B+1A=B+1;write(A)write(A),

24、 事务事务T2(Read(A)T2(Read(A);B=A+1B=A+1;write(B)write(B) 可以表示成:可以表示成: T T1 1:R R1 1(B)W(B)W1 1(A) T(A) T2 2:R R2 2(A)W(A)W2 2(B)(B) 例例: 事务事务 T1:R1(X)R1(Y)W1(Y) 的执行顺序可表示的执行顺序可表示 为为 R1(X) R1(Y) W1(Y) 符号符号表示先于(表示先于(),即,即R1(X)先于先于 W1(Y)执行,执行, R1(Y)先于先于W1(Y)执行,而执行,而 R1(X)和和R1(Y)的先后次序无关紧要。的先后次序无关紧要。 2 2、冲突操作

25、、冲突操作 定义定义:如果两个操作来自不同的事务,它:如果两个操作来自不同的事务,它 们对同一数据单位进行操作,并且其中们对同一数据单位进行操作,并且其中 至少有一个是写操作,则称这两个操作至少有一个是写操作,则称这两个操作 是相互冲突的或冲突操作。是相互冲突的或冲突操作。 例:事务例:事务T T0 0:W W0 0(X)W(X)W0 0(Y)W(Y)W0 0(Z)(Z) 事务事务T T1 1:R R1 1(X)R(X)R1 1(Z)W(Z)W1 1(X)(X) 则在这两个事务中有冲突操作:则在这两个事务中有冲突操作: R R1 1(X)(X)与与W W0 0(X)(X) W W1 1(X)(

26、X)与与W W0 0(X)(X) R R1 1(Z)(Z)与与W W0 0(Z)(Z) 对于冲突操作不能同时执行,哪个先执对于冲突操作不能同时执行,哪个先执 行,哪个后执行由调度决定。行,哪个后执行由调度决定。 3、调度、调度 设设=T1,T2, T n是一事务集,是一事务集, 的一个调度的一个调度S是一拟序集(是一拟序集( ,s) 其中其中: 1) 说明说明S执行的操作正是执行的操作正是T1, T2, T n 的操作。的操作。 2) s 说明调度说明调度S遵守每个事务的操作遵守每个事务的操作 的的 内部执行次序内部执行次序 3) 每对冲突操作的执行次序由每对冲突操作的执行次序由S决定。决定。

27、 例如:考虑下列两个事务T0, T1 T0= W0(X) W0(Y) W0(Z) T1= R1(X) R1(Z) W1(X) T0, , T1的拟序集表示为: 的拟序集表示为: T0=(W0(X),W0(Y),W0(Z),) T1 =(R1(X),R1(Z),W1(X),R1(X) W1(X), R1(Z) W1(X) R1(X) R1(Z) W1(X) S1= W0(X) W0(Y) W0(Z) S1=(W0(X),W0(Y) ,W0(Z) ,R1(X),R1(Z) ,W1(X) , W0(X) R1(X), W0(Z) R1(Z), R1(X) R1(Z) , R1(X) W1(X), R

28、1(Z) W1(X) 两个事务两个事务T0,T1的调度可以表示为:的调度可以表示为: S2=( W0(X),W0(Y) ,W0(Z) , R1(X), R1(Z) , W1(X) ,W0(X) R1(X), W0(Z) R1(Z), R1(Z) R1(X) ,R1(X) W1(X), R1(Z) W1(X)) R1(X) R1(Z) W1(X) S2= W0(X) W0(Y) W0(Z) 两个事务两个事务T0,T1的调度可以表示为:的调度可以表示为: 4 4、串行调度、串行调度 如果在一个调度中,各个事务不交叉执如果在一个调度中,各个事务不交叉执 行,而顺序地串行执行,这个调度被称行,而顺序地

29、串行执行,这个调度被称 为串行调度。为串行调度。 定义:定义:如果调度如果调度S S中的任意两个事务中的任意两个事务TiTi和和TjTj,如如 果果TiTi的所有操作都先于的所有操作都先于TjTj的所有操作,或者相反,的所有操作,或者相反, 则称则称S S为为串行调度串行调度。 注意:注意: 在串行调度中每一个事务都是在下一个事务在串行调度中每一个事务都是在下一个事务 开始执行之前提交。因此,开始执行之前提交。因此,串行调度没有并发串行调度没有并发 性性,故每一个串行调度都是一个正确的执行,故每一个串行调度都是一个正确的执行。 5 5、并发调度、并发调度 如果在一个调度中,各个事务交叉地执如果

30、在一个调度中,各个事务交叉地执 行,这个调度称为并发调度。行,这个调度称为并发调度。 定义:定义:多个事务的并发执行是正确的,当多个事务的并发执行是正确的,当 且仅当其结果与按某一次序串行地执行且仅当其结果与按某一次序串行地执行 它们时的结果相同,称这种调度策略为它们时的结果相同,称这种调度策略为 可串行化的调度可串行化的调度。 6 6、可串行化的调度、可串行化的调度 如果一个事务集的并发调度与某一串行如果一个事务集的并发调度与某一串行 调度是等价的,则称该并发调度是可串调度是等价的,则称该并发调度是可串 行化的行化的 。 7、串行化定理 定理:定理:一个调度S是可串行化的,当且仅 当它的串行

31、图是无环的。无环的。 串行图:串行图: 设S是若干事务T1,T2,Tn的一个调度, S的串行图SG(S)是一个有向图,其构成 规则如下: 1)图中的结点表示事务 2)如果Oi和Oj是冲突操作,且Oi先于Oj 执行,则在图中有一条边TiTj。 R1(X)W1(X) R3(X)W3(Z) R2(X)W2(Y) W1(Y) T2T1 T3 R1(X)W1(X) R3(X)W3(X) R2(X)W2(Y) W1(Y) T2T1 T3 8、等价的串行调度:、等价的串行调度:如果如果SG(S)是无环是无环 的,则的,则S等价于等价于SG(S)的任一拓扑排序。的任一拓扑排序。 T2 T1 T3 拓扑排序为:

32、 T2,T1,T3 T1 T2 T3 拓扑排序为:T1,T3,T2 或为:T1,T2,T3 1)某一事务在对数据进行读、写之前,)某一事务在对数据进行读、写之前, 先要申请并获得对该数据的封锁。先要申请并获得对该数据的封锁。 2)在释放一个封锁之后,事务不再申请)在释放一个封锁之后,事务不再申请 和获得任何其它封锁。和获得任何其它封锁。 说明:说明:规则规则1避免了两个冲突操作同时存避免了两个冲突操作同时存 取同一数据。取同一数据。 规则规则2把每个事务分为两个把每个事务分为两个 阶段:上升段和下降段。阶段:上升段和下降段。 上升下降 每一事务只有得到全每一事务只有得到全 部锁以后才放锁。部锁

33、以后才放锁。 例:对事务T1和T2用两段锁协议加锁的过程 T1:R1(X)W1(Y) T2:W2(X)W2(Y) Slock X Xlock Y Unlock X Unlock Y Xlock X Xlock Y Unlock X Unlock Y 2PL调度优点:简单调度优点:简单 缺点:易死锁缺点:易死锁 例如:对于如下两个事务采用两段锁协议例如:对于如下两个事务采用两段锁协议 T1:R1(X) W1(Y) T2:W2(Y)W2(X) T1与与T2的一个调度过程:的一个调度过程: 1 初始时,没有事务占有锁初始时,没有事务占有锁 2 调度器接到调度器接到R1(X) , 对对X加读锁,执行加

34、读锁,执行R1(X) 。 3 调度器接到调度器接到W2(Y) ,对对Y加写锁,执行加写锁,执行W2(Y) 4 调度器接到调度器接到W2(X) ,T2等待等待 5调度器接到调度器接到W1(Y) , T1等待等待 这样就造成了死锁。这样就造成了死锁。 定理:任何一个遵从2PL协议的调度 都是可串行化的。 说明:事务遵守2PL协议是可串行化 调度的充分条件,而不是必要条件。 即若并发事务都遵守2PL协议,则对 这些事务的任何并发调度策略都是 可串行化的;若对并发事务的一个 调度是可串行化的,不一定所有事 务都符合2PL协议。 注:三级封锁协议是符合注:三级封锁协议是符合2PL协议的协议的 数据库的安

35、全性数据库的安全性 就是防止非法用户使用数据库造就是防止非法用户使用数据库造 成数据泄露、更改或破坏,以达成数据泄露、更改或破坏,以达 到保护数据库的目的。到保护数据库的目的。 保护数据库以防止不合法使用 n用户标识与鉴别用户标识与鉴别 n存取控制存取控制 n视图机制视图机制 n审计审计 n数据加密数据加密 用户用户DBMS DB OS 用户标识用户标识 和鉴定和鉴定 存取控制存取控制操作系统操作系统 安全保护安全保护 密码存取密码存取 * 一、用户标识与鉴别一、用户标识与鉴别 利用用户名及口令的方法来 实现最外层的安全保护措施。 特点:简单、易行 易被窃取 二、存取控制二、存取控制: 是对用

36、户存取数据库的权力的控制。是对用户存取数据库的权力的控制。 定义用户权限: 1一般数据库用户一般数据库用户 2数据库的拥有者数据库的拥有者 3有有DBA特权的用户特权的用户 合法权限检查 1授予权限语句 该语句基本形式为: GRANT 权限ON 数据对象TO 授权者WITH GRANT OPTION :=| := PUBLIC| 其中PUBLIC是所有数据库用户的总称, 若有WITH GRANT OPTION,则授权者可 将此特权转授给其它。 例如,下列语句: (1)GRANT SELECT ON TABLE Table_1 TO PUBLIC; 将对表Table_1的SELECT特权授予所有

37、的 用户。 (2)GRANT INSERT(Col_1,Col_5) ON Table_1 TO sam; 将对表Table_1中Col_1和Col_5列的 INSERT特权授予sam。 (3)GRANT ALL PRIVILEGES ON TABLE Table_1 TO bob,sam; 将对表Table_1的所有操作特权授予bob 和sam。 (4)GRANT UPDATE(Col_2,Col_4) ON Table_1 TO wang WITH GRANT OPTION; 将对表Table_1中Col_2和Col_4列的 UPDATE特权授予wang,并允许他将此 特权转授给其它用户。

38、 2收回权限语句 REVOKE 权限ON 数据对象 FROM 受权者,受权者 三、视图机制三、视图机制 为不同的用户定义不同的视图。为不同的用户定义不同的视图。 四、数据加密四、数据加密 五、审计五、审计 把用户对数据库的所有操作自动记录把用户对数据库的所有操作自动记录 下来放入审计日志中下来放入审计日志中 数据库完整性:数据库完整性:数据的正确性和相容性。数据的正确性和相容性。 完整性完整性 安全性安全性 数据库数据库 完整性和安全性的区别: 完整性防止错误信息的输入 与输出 安全性是保护数据库防止恶 意的破坏和非法的存取 作用对象作用对象:关系、元组、列关系、元组、列 状态状态:静态、动态

39、静态、动态 静态约束静态约束:数据库每一确定状态时的数据对象数据库每一确定状态时的数据对象 所应满足的约束条件。所应满足的约束条件。 动态约束动态约束:数据库从一种状态转变为另一种状数据库从一种状态转变为另一种状 态时,新、旧值之间所应满足的约束条件。态时,新、旧值之间所应满足的约束条件。 完整性约束条件:完整性约束条件: 加在数据库数据之上的语义加在数据库数据之上的语义约束条件。约束条件。 1 1 静态约束静态约束 1)静态列约束静态列约束:是对一个列的取值是对一个列的取值 域等的限制。域等的限制。 对数据类型的约束对数据类型的约束 ; 对数据格式的约束对数据格式的约束 ; 对取值范围或取值集合的约束;对取值范围或取值集合的约束; 对空值的约束对空值的约束 ; 其它约束其它约束 ; 2 2)静态元组约束:)静态元组约束:规定组成一个元组的规定组成一个元组的 各个列之间的约束关系。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论