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