数据库的安全与保护.ppt

上传人:za****8 文档编号:15636046 上传时间:2020-08-27 格式:PPT 页数:61 大小:666KB
返回 下载 相关 举报
数据库的安全与保护.ppt_第1页
第1页 / 共61页
数据库的安全与保护.ppt_第2页
第2页 / 共61页
数据库的安全与保护.ppt_第3页
第3页 / 共61页
点击查看更多>>
资源描述
第六章 数据库安全与保护,数据库安全与保护,数据的安全性控制 数据的完整性控制 数据库的并发控制 数据库的恢复,6.1 数据库的安全性,6.1.1 数据库安全性的含义 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。,方法:,用户标识 和鉴定,存取控制 审计 视图,操作系统 安全保护,密码存储,6.1.2 数据库安全性控制,数据库安全性控制的常用方法 用户标识和鉴定 存取控制 视图 审计 密码存储,1.用户标识与鉴别,用户标识与鉴别(Identification & Authentication) 系统提供的最外层安全保护措施,用户标识与鉴别,基本方法 系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户提供的身份标识; 通过鉴定后才提供机器使用权。 用户标识和鉴定可以重复多次,用户标识自己的名字或身份,用户名/口令 简单易行,容易被人窃取 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行计算 系统根据用户计算结果是否正确鉴定用户身份,2. 存取控制,存取控制机制的组成 定义存取权限 检查存取权限,常用存取控制方法 自主存取控制(Discretionary Access Control ,简称DAC) 强制存取控制(Mandatory Access Control,简称 MAC),自主存取控制方法,同一用户对于不同的数据对象有不同的存取权限 不同的用户对同一对象也有不同的权限 用户还可将其拥有的存取权限转授给其他用户,强制存取控制方法,每一个数据对象被标以一定的密级 每一个用户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可以存取,3 自主存取控制方法,定义存取权限 定义方法 GRANT/REVOKE,检查存取权限 对于获得上机权后又进一步发出存取数据库操作的用户 DBMS查找数据字典,根据其存取权限对操作的合法性进行检查 若用户的操作请求超出了定义的权限,系统将拒绝执行此操作,授权粒度 授权粒度是指可以定义的数据对象的范围 它是衡量授权机制是否灵活的一个重要指标。 授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活。,关系数据库中授权的数据对象粒度 数据库 表 属性列 行,自主存取控制方法,优点 能够通过授权机制有效地控制其他用户对敏感数据的存取,自主存取控制方法,缺点 可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。 解决:对系统控制下的所有主客体实施强制存取控制策略,4.强制存取控制方法,特点 MAC是对数据本身进行密级标记 无论数据如何复制,标记与数据是一个不可分的整体 只有符合密级标记要求的用户才可以操纵数据,5. 视图机制,视图机制把要保密的数据对无权存取这些数据的用户隐藏起来, 视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。,视图机制与授权机制配合使用: 首先用视图机制屏蔽掉一部分保密数据 视图上面再进一步定义存取权限 间接实现了支持存取谓词的用户权限定义,6. 审计,什么是审计 启用一个专用的审计日志(Audit Log) 将用户对数据库的所有操作记录在上面 DBA可以利用审计日志中的追踪信息 找出非法存取数据的人,7. 数据加密,数据加密 防止数据库中数据在存储和传输中失密的有效手段 加密的基本思想 根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text) 不知道解密算法的人无法获知数据的内容,加密方法 替换方法 使用密钥(Encryption Key)将明文中的每一个字符转换为密文中的一个字符 置换方法 将明文的字符按不同的顺序重新排列 混合方法 美国1977年制定的官方加密标准:数据加密标准(Data Encryption Standard,简称DES),6.2 数据库的完整性,6.2.1数据库完整性的含义 数据库的完整性是指数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。,数据的完整性与安全性是数据库保护的两个不同方面。 安全性是防止用户非法使用数据库,包括恶意破坏数据和越权存取数据。 完整性则是防止合法用户使用数据库时向数据库中加入不合语义的数据。 安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。,6.2.2 完整性实现的机制 (1)完整性约束定义机制 (2)完整性检查机制 (3)违背完整性约束条件时DBMS应采取的动作,6.2.3 完整性约束条件的分类 完整性约束从约束条件使用的对象分为值的约束和结构的约束。值的约束即对数据类型、数据格式、取值范围和空值等进行规定。 完整性约束从约束对象的状态分为静态约束和动态约束。,完整性约束条件小结,6.3并发控制与封锁,6.3.1 事务 定义 事务(transaction)是构成单一逻辑工作单元 的操作集合 。 性质 原子性(Atomicity):事务是一个不可分割的工作单元 。 一致性(Consistency) :即数据不会因事务的执行而遭受破坏 。,隔离性(Isolation) :在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样 。 持久性(Durability) :一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。,例子:事务及其性质,问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。 相应的事务: T:read(A); A:=A50; write(A); read(B); B:=B + 50; write(B).,原子性(A,B同时被修改或同时保持原值) 一致性(A+B的值不变) 隔离性 持久性,6.3.2 并发操作与数据的不一致性 并发操作可能带来的数据不一致性情况有三种 : 丢失修改、读过时数据和读“脏”数据。,6.3.3 封锁 ()排它锁和共享锁 排它锁和共享锁是最基本的封锁方式如果事务 T 对数据对象 Y 加上了排它锁(记为 X 锁),那么 T 既可以读取 Y ,也可以更新 Y 。如果事务 T 对数据对象 Y 加上了共享锁 ( 记为 S 锁 ),那么 T 可以读取 Y,但不能更新 Y。,封锁的粒度,封锁对象的大小称为封锁的粒度(granularity) 封锁的对象 逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库 物理单元 :页(数据页或索引页)、块 封锁粒度与系统并发度和并发控制开销密切相关。粒度越大,系统中能被封锁的对象就越少,并发度就越小,但同时系统的开销也就越小;相反,粒度越小,并发度越高,系统开销越大,()封锁协议 在对数据对象加锁、持锁和释放锁时所约定的一些规则。 一级封锁协议 一级封锁协议规定事务 T 在更新数据对象以前,必须对该数据对象加排它锁(X锁),并且直到事务 T 结束时才可以释放该锁。利用一级封锁协议可以防止丢失更新问题的发生,二级封锁协议 二级封锁协议规定事务 T 在更新数据对象以前必须对数据对象加 X 锁 ,且直到事务 T 结束时才可以释放该锁,还规定事务 T 在读取数据对象以前必须先对其加 S 锁,读完后即可释放 S 锁。可以防止丢失更新问题,还可以防止未提交依赖问题,但却不能防止不一致性分析问题。,三级封锁协议 三级封锁协议规定事务 T 在更新数据对象以前,必须对数据对象加 X 锁,且直到事务 T 结束时才可以释放该锁,还规定事务 T 在读取数据对象以前必须先对其加 S 锁,该 S 锁也必须在事务 T 结束时才可释放。可以防止丢失更新和未提交依赖问题,此外还可以防止不一致性分析问题的发生。,封锁带来的问题1-(活锁),封锁带来的问题2-死锁,死锁预防,数据库中预防死锁的方法有两种: 第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预先约定的加锁顺序对使用到的数据加锁。 第二种方法是每当处于等待状态的事务有可能导致死锁时,就不再等待下去,强行回滚该事务。,6.4数据库恢复,6.4.1数据库恢复的原理及其实现技术 恢复系统应该提供两种类型的功能:一种是生成冗余数据,即对可能发生的故障作某些准备.另一种是冗余重建,即利用这些冗余数据恢复数据库。,数据备份,后备副本(或后援副本)是指在故障发生前某一时刻数据库的副本,副本中包含了数据库中所有数据,包括系统数据和用户数据。 制做后备副本的过程称为转储,是由DBA定期将数据库复制到磁带或另一个磁盘上,并将这些备用的数据文本妥善地保存起来。,转储可以分为增量转储和海量转储。 海量转储是指每次转储全部数据库。 增量转储是指每次转储上次转储后修改过的数据。,转储可分为静态转储和动态转储 静态转储是指系统停止对外服务,不允许用户运行事务,只进行转储操作。 动态转储是指转储期间允许用户对数据库进行存取操作,即转储和用户事务可以并发执行。,普通用户是无权进行转储操作的,转储操作必须由DBA完成。当然DBA也可以授权给其他用户,由他代为转储。,登记日志文件,日志文件是用来记录事务的每一次对数据库更新操作的文件,包括用户的更新操作以及由此引起的系统内部的更新操作。有了日志文件,DBMS就可以根据日志文件进行事务故障恢复和系统故障恢复,并结合后援副本进行介质故障恢复了。,1.日志文件的格式和内容 对于以记录为单位的日志文件,日志文件中需要登记的主要内容包括: 各个事务的开始(BEGIN TRANSACTION)标记 各个事务的结束(COMMIT或ROLLBACK)标记 各个事务的所有更新操作,每个日志记录的内容主要包括: 事务标识(标明是哪个事务) 操作的类型(插入、删除或修改) 操作对象(记录内部标识) 更新前数据的旧值(对插入操作而言,此项为空值) 更新后数据的新值(对删除操作而言,此项为空值),2. 登记日志文件时必须遵循两条原则: (1)登记的次序严格按并发事务执行的时间次序。 (2)必须先写日志文件,后写数据库。,6.4.2数据库的故障和恢复策略,1.事务故障(Transaction Failure)及其恢复 事务故障是指事务未运行至正常终止 点前被撤消,这时恢复子系统应对此事务做 UNDO处理。,具体的恢复方法是:,反向阅读日志文件,找出该事务的所有更新操作,对每一个更新操作做它的逆操作。即若记录中是插入操作,则做删除操作。若记录中是删除操作,则做插入操作,若是修改操作,则用修改前的值代替修改后的值。如此处理直至读到此事务的开始标记,事务故障恢复完成。,2. 系统故障(System Failure)及其恢复 系统故障发生时,造成数据库不一致状态的原因有两个: 1.由于一些未完成事务对数据库的更新已写入数据库, 2.由于一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库。,系统的恢复方法分为三步: (1)根据日志文件建立重作队列和撤消队列 (2)对撤消队列中事务进行UNDO处理。 (3)对重做队列中的各个事务进行重做(REDO)处理。,3. 介质故障(Media Failure)及其恢复 使存储在外存上的数据部分损失或全部损失,称为介质故障。,恢复方法: (1)重装转储的后援副本,使数据库恢复到转储时的一致状态。 (2)装入转储后备份的第一个日志文件。 (3)装入下一个日志文件重复第(2)步,直至处理完所有的日志文件,这时数据库恢复至故障前某一时刻的一致状态。,小结,本章详细介绍了数据库的安全性、完整性、并发控制和数据库恢复技术。 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。实现数据库系统安全性的方法有用户标识和鉴定、存取控制、视图机制、审计和数据加密等。,小结,数据库的完整性是指数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。 完整性与安全性不同,它是防止合法用户使用数据库时向数据库中加入不合语义的数据。触发器是在关系数据库管理系统中应用得比较多的一种完整性保护措施。,小结,并发控制是为了防止多个用户同时存取同一数据,造成数据库的不一致性。 事务是数据库进行并发控制的基本单位,多个事务的并发调度会带来一些问题,如丢失更新、不一致性分析和未提交依赖等问题。,小结,实现并发操作的方法主要是封锁技术,基本的封锁类型有排它锁和共享锁两种,三个级别的封锁协议可以有效解决并发操作的一致性问题。 在封锁过程中还会发生活锁和死锁现象,死锁一旦发生,可以选择一个处理死锁代价最小的事务将其撤消。,小结,数据库的恢复是指系统发生故障后,把数据从错误状态中恢复到某一正确状态的功能。常见的故障类型有事务故障、系统故障和介质故障。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!