数据库的安全与保护.ppt_第1页
数据库的安全与保护.ppt_第2页
数据库的安全与保护.ppt_第3页
数据库的安全与保护.ppt_第4页
数据库的安全与保护.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

第六章数据库安全与保护 数据库安全与保护 数据的安全性控制数据的完整性控制数据库的并发控制数据库的恢复 6 1数据库的安全性 6 1 1数据库安全性的含义数据库的安全性是指保护数据库 防止因用户非法使用数据库造成数据泄露 更改或破坏 方法 用户标识和鉴定 存取控制审计视图 操作系统安全保护 密码存储 6 1 2数据库安全性控制 数据库安全性控制的常用方法用户标识和鉴定存取控制视图审计密码存储 1 用户标识与鉴别 用户标识与鉴别 Identification Authentication 系统提供的最外层安全保护措施 用户标识与鉴别 基本方法系统提供一定的方式让用户标识自己的名字或身份 系统内部记录着所有合法用户的标识 每次用户要求进入系统时 由系统核对用户提供的身份标识 通过鉴定后才提供机器使用权 用户标识和鉴定可以重复多次 用户标识自己的名字或身份 用户名 口令简单易行 容易被人窃取每个用户预先约定好一个计算过程或者函数系统提供一个随机数用户根据自己预先约定的计算过程或者函数进行计算系统根据用户计算结果是否正确鉴定用户身份 2 存取控制 存取控制机制的组成定义存取权限检查存取权限 常用存取控制方法自主存取控制 DiscretionaryAccessControl 简称DAC 强制存取控制 MandatoryAccessControl 简称MAC 自主存取控制方法 同一用户对于不同的数据对象有不同的存取权限不同的用户对同一对象也有不同的权限用户还可将其拥有的存取权限转授给其他用户 强制存取控制方法 每一个数据对象被标以一定的密级每一个用户也被授予某一个级别的许可证对于任意一个对象 只有具有合法许可证的用户才可以存取 3自主存取控制方法 定义存取权限定义方法GRANT REVOKE 检查存取权限对于获得上机权后又进一步发出存取数据库操作的用户DBMS查找数据字典 根据其存取权限对操作的合法性进行检查若用户的操作请求超出了定义的权限 系统将拒绝执行此操作 授权粒度授权粒度是指可以定义的数据对象的范围它是衡量授权机制是否灵活的一个重要指标 授权定义中数据对象的粒度越细 即可以定义的数据对象的范围越小 授权子系统就越灵活 关系数据库中授权的数据对象粒度数据库表属性列行 自主存取控制方法 优点能够通过授权机制有效地控制其他用户对敏感数据的存取 自主存取控制方法 缺点可能存在数据的 无意泄露 原因 这种机制仅仅通过对数据的存取权限来进行安全控制 而数据本身并无安全性标记 解决 对系统控制下的所有主客体实施强制存取控制策略 4 强制存取控制方法 特点MAC是对数据本身进行密级标记无论数据如何复制 标记与数据是一个不可分的整体只有符合密级标记要求的用户才可以操纵数据 5 视图机制 视图机制把要保密的数据对无权存取这些数据的用户隐藏起来 视图机制更主要的功能在于提供数据独立性 其安全保护功能太不精细 往往远不能达到应用系统的要求 视图机制与授权机制配合使用 首先用视图机制屏蔽掉一部分保密数据视图上面再进一步定义存取权限间接实现了支持存取谓词的用户权限定义 6 审计 什么是审计启用一个专用的审计日志 AuditLog 将用户对数据库的所有操作记录在上面DBA可以利用审计日志中的追踪信息找出非法存取数据的人 7 数据加密 数据加密防止数据库中数据在存储和传输中失密的有效手段加密的基本思想根据一定的算法将原始数据 术语为明文 Plaintext 变换为不可直接识别的格式 术语为密文 Ciphertext 不知道解密算法的人无法获知数据的内容 加密方法替换方法使用密钥 EncryptionKey 将明文中的每一个字符转换为密文中的一个字符置换方法将明文的字符按不同的顺序重新排列混合方法美国1977年制定的官方加密标准 数据加密标准 DataEncryptionStandard 简称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 A 50 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 日志文件的格式和内容对于以记录为单位的日志文件 日志文件中需要登记的主要内容包括 各个事务的开始 BEGINTRANSACTION 标记 各个事务的结束 COMMIT或ROLLBACK 标记 各个事务的所有更新操作 每个日志记录的内容主要包括 事务标识 标明是哪个事务 操作的类型 插入 删除或修改 操作对象 记录内部标识 更新前数据的旧值 对插入操作而言 此项为空值 更新后数据的新值 对删除操作而言 此项为空值 2 登记日志文件时必须遵循两条原则 1 登记的次序严格按并发事务执行的时间次序 2 必须先写日志文件 后写数据库 6 4 2数据库的故障和恢复策略 1 事务故障 TransactionFailure 及其恢复事务故障是指事务未运行至正常终止点前被撤消 这时恢复子系统应对此事务做UNDO处理 具体的恢复方法是 反向阅读日志文件 找出该事务的所有更新操作 对每一个更新操作做它的逆操作 即若记录中是插入操作 则做删除操作 若记录中是删除操作 则做插入操作 若是修改操作 则用修改前的值代替修改后的值 如此处理直至读到此事务的开始标记 事务故障恢复完成 2 系统故障 SystemFailure 及其恢复系统故障发生时 造成数据库不一致状态的原因有两个 1 由于一些未完成事务对数据库的更新已写入数据库 2 由于一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库 系统的恢复方法分为三步 1 根据日志文件建立重作队列和撤消队列 2 对撤消队列中事务进行UNDO处理 3 对重做队列中的各个事务进行重做 REDO 处理 3 介质故障 MediaFailure 及其恢复使存储在外存上的数据部分损失或全部损失 称为介质故障 恢复方法 1 重装转储的后援副本 使数据库恢复到转储时的一致状态 2 装入转储后备份的第一个日志文件 3 装入下一个日志文件重复第 2 步 直至处理完所有的日志文件 这时数据库恢复至故障前某一时刻的一致状态 小结 本章详细介绍了数据库的安全性 完整性 并发控制和数据库恢复技术 数据库的安全性是指保护数据库 防止因用户非法使用数据库造成数据泄露 更改或破坏 实现数据库系统安全性的方法有用户标识和鉴定 存取控制 视图机制 审计和数据加密等 小结 数据库的完整性是指数据的正确性 有效性和相容性 防止错误的数据进入数据库造成无效操作 完整性与安全性不同 它是防止合法用户使用数据库时向数据库中加入不合语义的数据 触发器是在关系数据库管理系统中应用得比较多的一种完整性保护措施 小结 并发控制是为了防止多个用户同

温馨提示

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

评论

0/150

提交评论