最新-数据库保护1-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《最新-数据库保护1-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 数据库 保护 课件
- 资源描述:
-
1、第六讲第六讲 数据库保护数据库保护 本讲将讨论数据库的安全性、完整性、并发控本讲将讨论数据库的安全性、完整性、并发控制及数据库的恢复问题。制及数据库的恢复问题。本讲的重点是介绍事务概念,并在此基础上讨本讲的重点是介绍事务概念,并在此基础上讨论并发控制和恢复问题。论并发控制和恢复问题。数据库的安全性数据库的安全性 数据库中的数据是重要的资源,它需要被共享,数据库中的数据是重要的资源,它需要被共享,但同时需要进行保护。但同时需要进行保护。数据库的安全性是指对数据库进行保护,防止数据库的安全性是指对数据库进行保护,防止非法用户的使用而造成的数据泄漏、更改或破非法用户的使用而造成的数据泄漏、更改或破坏
2、。坏。安全性控制的一般方法安全性控制的一般方法 用户标识和鉴定用户标识和鉴定 存取控制存取控制 密码存储密码存储安全性控制的一般方法安全性控制的一般方法 用户标识和鉴定用户标识和鉴定用户名:SA口令:*有各种口令确定方法有各种口令确定方法安全性控制的一般方法安全性控制的一般方法 存取控制存取控制 对用户授权对用户授权 存取权限的两个要存取权限的两个要素:数据对象,操素:数据对象,操作类型作类型关系系统中的存取权限关系系统中的存取权限数据对象数据对象操作类型操作类型模模式式模式模式外模式外模式内模式内模式建立、修改、检索建立、修改、检索建立、修改、检索建立、修改、检索建立、修改、检索建立、修改、
3、检索数数据据表表属性列属性列检索、插入、修改、删除检索、插入、修改、删除检索、插入、修改、删除检索、插入、修改、删除GRANT SELECT ON student TO huang安全性控制的一般方法(其他方法)安全性控制的一般方法(其他方法)密码存储密码存储 定义视图定义视图 审计审计ORACLE的安全性措施的安全性措施 系统权限系统权限 角色角色 CONNECT RESOURCE DBA 数据库对象权限数据库对象权限 表级表级 行级(通过视图实现)行级(通过视图实现)列级(通过视图实现)列级(通过视图实现)审计审计 其他其他 触发器触发器数据库的完整性数据库的完整性 数据库的完整性是指数据
4、的正确性和相容性。数据库的完整性是指数据的正确性和相容性。用于防止合法用户向数据库中加入不合语义的用于防止合法用户向数据库中加入不合语义的数据。数据。通过在数据库的数据上规定完整性约束条件来通过在数据库的数据上规定完整性约束条件来实现实现完整性约束条件的分类完整性约束条件的分类 按作用的对象分按作用的对象分 列级列级 元组级元组级 关系级关系级 按发挥作用的时机分按发挥作用的时机分 静态静态 动态动态 组合起来共有六类组合起来共有六类完整性约束条件的分类(含义)完整性约束条件的分类(含义)静态列级约束静态列级约束 列的定义(类型、格式、值域、空值)列的定义(类型、格式、值域、空值)静态元组级约
5、束静态元组级约束 元组各个列值之间应该满足的条件(如:发货量不得高于订货量)元组各个列值之间应该满足的条件(如:发货量不得高于订货量)静态关系级约束静态关系级约束 实体完整性约束、参照完整性约束、函数依赖约束、统计约束(如:实体完整性约束、参照完整性约束、函数依赖约束、统计约束(如:经理的工资不得高于职工平均工资的经理的工资不得高于职工平均工资的5倍)倍)动态列级约束动态列级约束 修改列定义时的约束(原来允许空值、想改成不允许空值,但修改列定义时的约束(原来允许空值、想改成不允许空值,但),),修改列值时的约束(如:只许比原来高,不许比原来低)修改列值时的约束(如:只许比原来高,不许比原来低)
6、动态元组级约束动态元组级约束 元组新旧值之间应满足的约束条件(新工资元组新旧值之间应满足的约束条件(新工资=原工资原工资+1.5*工龄)工龄)动态关系级约束动态关系级约束 关系变化前后应满足的约束条件,如事务一致性、原子性关系变化前后应满足的约束条件,如事务一致性、原子性数据库完整性控制机制数据库完整性控制机制 提供定义功能提供定义功能 如:提供定义关系主码的功能如:提供定义关系主码的功能 提供自动检查功能提供自动检查功能 如:插入、修改时,如:插入、修改时,DBMS自动对主码的值进行检查自动对主码的值进行检查 提供保证措施提供保证措施 如:拒绝插入主码属性为空的元组如:拒绝插入主码属性为空的
7、元组SQL Server中的完整性控制机制中的完整性控制机制 上机查看上机查看HELP事务事务(Transaction)事务是为完成一次任务所执行的一个操作序列。事务是为完成一次任务所执行的一个操作序列。事务通常从事务通常从BEGIN TRANSACTION开始,以开始,以COMMIT或或ROLLBACK终止。终止。以以COMMIT结束:事务执行成功(又称事务提交或事务交结束:事务执行成功(又称事务提交或事务交托),它对数据库的所有改变从此永远存在,并对所有用户托),它对数据库的所有改变从此永远存在,并对所有用户来说也都是可见;来说也都是可见;以以ROLLBACK结束:事务执行不成功,在这种情
8、况下,事务结束:事务执行不成功,在这种情况下,事务中所执行过的那些操作都被撤销,数据库恢复到事务开始执中所执行过的那些操作都被撤销,数据库恢复到事务开始执行之前的状态。行之前的状态。事务是执行并发控制的基本单位。事务是执行并发控制的基本单位。事务的特点(事务的事务的特点(事务的ACID性质)性质)原子性(原子性(Atomicity):原子性要求事务的所有操作要):原子性要求事务的所有操作要么都被执行,要么都不执行;么都被执行,要么都不执行;一致性(一致性(Consistency):事务将数据库由一个一致):事务将数据库由一个一致状态变为另一个一致状态。一致性允许数据库在执行状态变为另一个一致状
9、态。一致性允许数据库在执行一个事务的期间存在不一致状态,但必须保证在事务一个事务的期间存在不一致状态,但必须保证在事务结束时是一致的;结束时是一致的;隔离性(隔离性(Isolation):并发事务要求相互隔离。即当):并发事务要求相互隔离。即当不同事务并发访问数据库时,不应产生相互影响;不同事务并发访问数据库时,不应产生相互影响;持久性(持久性(Duralility):成功执行的事务结果要被永久):成功执行的事务结果要被永久保留,即使是在数据库系统遇到各种硬件错误(如磁保留,即使是在数据库系统遇到各种硬件错误(如磁头损坏)的情形下也要如此。头损坏)的情形下也要如此。事务的原子性事务的原子性 考
10、查转账事务:首先要执行资金提取操作,然后则是考查转账事务:首先要执行资金提取操作,然后则是资金存入操作,这样才能将钱从一个账户转移到另一资金存入操作,这样才能将钱从一个账户转移到另一个账户。如果只有资金提取操作而没有资金存入操作,个账户。如果只有资金提取操作而没有资金存入操作,那就会破坏一致性:因为所有账户下的资金总数被改那就会破坏一致性:因为所有账户下的资金总数被改变了(即钱丢失了)。为了避免这种事情发生,事务变了(即钱丢失了)。为了避免这种事情发生,事务处理要求提取操作和存入操作要么都执行,要么都不处理要求提取操作和存入操作要么都执行,要么都不执行。这个属性称为原子性。执行。这个属性称为原
11、子性。另外,某些更新操作也可能会破坏数据库一致性。如另外,某些更新操作也可能会破坏数据库一致性。如机票订购系统中,如果在某次航班已经没有空位的情机票订购系统中,如果在某次航班已经没有空位的情况下执行定票操作,就将导致数据库状态的不一致性。况下执行定票操作,就将导致数据库状态的不一致性。这种对数据库的更新操作必须能使数据库从一个一致这种对数据库的更新操作必须能使数据库从一个一致性状态转换到另一个一致性状态的性质被称为一致性性状态转换到另一个一致性状态的性质被称为一致性保护。保护。并发事务引起的不一致性并发事务引起的不一致性 更新丢失更新丢失:两个事务两个事务T1和和T2,读入同一数据进行,读入同
12、一数据进行修改,一个事务的修改结果破坏了另一个事务修改,一个事务的修改结果破坏了另一个事务的修改结果。(订票)的修改结果。(订票)执行次序执行次序T1T21temp:=空位数空位数;2temp:=空位数空位数;3temp:=temp-14temp:=temp-15空位数空位数:=temp6空位数空位数:=temp并发事务引起的不一致性并发事务引起的不一致性 脏读脏读:事务事务T1修改某一数据,事务修改某一数据,事务T2读取该数据,读取该数据,由于事务由于事务T1的撤销使得事务的撤销使得事务T2读到的数据是错读到的数据是错误的数据。误的数据。执行次序执行次序T1T21temp1:=x;2temp
13、1:=temp1+503x:=temp14temp:=x5rollback;设x(库存量)初值为100,T2读到的X=?并发事务引起的不一致性并发事务引起的不一致性 不能重复读不能重复读:事务事务T1读取某一数据,由于事务读取某一数据,由于事务T2,对该数据进行了修改,导致事务对该数据进行了修改,导致事务T1第二次读该第二次读该数据时与第一次读出的结果不一致。数据时与第一次读出的结果不一致。执行次序执行次序T1T21temp:=x;2temp:=x;3temp:=temp+14x:=temp5temp:=x;设x初值为100,T1第二次读时,X=?并发事务引起的不一致性并发事务引起的不一致性
14、不能重复读不能重复读:事务事务T1按一定条件读取某些数据记录后,由于事按一定条件读取某些数据记录后,由于事务务T2插入或删除了一些记录,导致事务插入或删除了一些记录,导致事务T1再按同样的条件读取数再按同样的条件读取数据时,发现多了一些纪录或者原来的某些记录神秘消失。这种现据时,发现多了一些纪录或者原来的某些记录神秘消失。这种现象也称为幻行(象也称为幻行(phantom row)。执行次序执行次序T1T21Select*from s2Insert into s34Or Delete from s5Select*from s开始时查出10条记录,再查一次变成了11条记录一致性的三个级别一致性的三
15、个级别 一级一致性:保证不会发生更新丢失。一级一致性:保证不会发生更新丢失。(更新丢失是严重错误)(更新丢失是严重错误)二级一致性:保证不会发生脏读。二级一致性:保证不会发生脏读。三级一致性:保证可重复读。三级一致性:保证可重复读。并发控制并发控制 封锁机制封锁机制并发控制的主要方法是采用封锁机制。封锁机制是指并发控制的主要方法是采用封锁机制。封锁机制是指1、任何想访问某数据库对象的事务(无论这种访问是读还是、任何想访问某数据库对象的事务(无论这种访问是读还是写),都必须向系统申请一个锁。只有当获得锁后,才能访写),都必须向系统申请一个锁。只有当获得锁后,才能访问这个对象。在此其间,其它想访问
16、该对象的事务必须等到问这个对象。在此其间,其它想访问该对象的事务必须等到持有锁的事务终止之后,才能获得该对象的锁。持有锁的事务终止之后,才能获得该对象的锁。2、一个事务结束时,才释放它的锁、一个事务结束时,才释放它的锁锁模式锁模式 锁的两种基本类型锁的两种基本类型 排它锁(排它锁(Exclusive lock):事务事务T对数据加排它锁后,其他事务不能对数据加排它锁后,其他事务不能再对该数据加任何锁。一般对数据更新时采用排它锁。再对该数据加任何锁。一般对数据更新时采用排它锁。共享锁(共享锁(Share lock):事务):事务T对数据加共享锁后,其他事务仍可以对数据加共享锁后,其他事务仍可以再
17、对该数据加共享锁。如果仅仅是读取数据,则采用共享锁。再对该数据加共享锁。如果仅仅是读取数据,则采用共享锁。锁的相容性锁的相容性 事务事务2事务事务1XS没加锁没加锁X S 没加锁没加锁 运用三级封锁协议实现三各级别的一致性运用三级封锁协议实现三各级别的一致性封锁封锁协议协议X锁锁S锁锁一致性保证一致性保证立即立即结束结束立即立即结结束束一级一级二级二级三级三级123*立即是指操作后立即释放锁,结束指事务结束后才释放锁封锁协议举例封锁协议举例 一级封锁协议保证一级一致性(防止更新丢失)一级封锁协议保证一级一致性(防止更新丢失)执行次序执行次序T1T21请求排它锁请求排它锁2temp:=x;3请求
18、排它锁请求排它锁4temp:=temp+1等待等待5X:=temp等待等待6commit等待等待7释放锁释放锁等待等待8获得锁获得锁9temp:=x;10temp:=temp+111X:=temp12commit设x(库存量)初值为100,T1,T2结束后,X=?封锁协议举例封锁协议举例 二级封锁协议保证二级一致性(防止脏读)二级封锁协议保证二级一致性(防止脏读)执行次序执行次序T1T21请求排它锁请求排它锁2temp:=x;3请求共享锁请求共享锁4temp:=temp+50等待等待5。等待等待6rollback等待等待7释放锁释放锁等待等待8获得共享锁获得共享锁9temp:=x;10。11。
展开阅读全文