




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
回顾 基础篇第一章 绪论第二章 数据模型第三章 关系数据库第四章 关系数据库标准语言SQL 系统篇 数据库系统中的数据是由DBMS统一管理和控制的 为了适应数据共享的环境 DBMS必须提供数据保护能力 以保证数据库中数据的安全可靠和正确有效 数据保护安全性完整性数据库恢复并发控制 系统篇 第5章数据库安全性第6章数据库完整性第7章数据库恢复技术第8章并发控制 第五章数据库安全性 问题的提出数据库的一大特点是数据可以共享但数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例 军事秘密 国家机密 新产品实验数据 市场需求分析 市场营销策略 销售计划 客户档案 医疗档案 银行储蓄数据 数据库安全性 续 数据库中数据的共享是在DBMS统一的严格的控制之下的共享 即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一 第五章数据库安全性 5 1计算机安全性概论5 2数据库安全性控制5 3数据库存取控制方法5 4数据库角色5 5视图机制5 6审计5 7数据加密5 8统计数据库安全性 5 1计算机系统的安全性概论 什么是数据库的安全性数据库的安全性是指保护数据库 防止因用户非法使用数据库造成数据泄露 更改或破坏 数据库系统的安全性和计算机系统的安全性 包括操作系统 网络系统的安全性是紧密联系 相互支持的 什么是计算机系统安全性为计算机系统建立和采取的各种安全保护措施 以保护计算机系统中的硬件 软件及数据 防止其因偶然或恶意的原因使系统遭到破坏 数据遭到更改或泄露等 计算机系统的3类安全性问题 续 三类计算机系统安全性问题技术安全类管理安全类政策法律类 计算机系统的三类安全性问题 续 技术安全指计算机系统中采用具有一定安全性的硬件 软件来实现对计算机系统及其所存数据的安全保护 当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行 保证系统内的数据不增加 不丢失 不泄露 计算机系统的三类安全性问题 续 管理安全软硬件意外故障 场地的意外事故 管理不善导致的计算机设备和数据介质的物理破坏 丢失等安全问题 计算机系统的三类安全性问题 续 政策法律类政府部门建立的有关计算机犯罪 数据安全保密的法律道德准则和政策法规 法令 实际上 安全性问题并不是数据库系统所独有的 所有计算机系统中都存在这个问题 在计算机系统中 安全措施是一级一级层层设置的 安全控制模型如图5 1所示 图5 1安全控制模型 5 2数据库安全性控制 根据图5 1的安全模型 当用户进入计算机系统时 系统首先根据输入的用户标识进行身份的鉴定 只有合法的用户才准许进入系统 对已进入系统的用户 DBMS还要进行存取控制 只允许用户进行合法的操作 DBMS是建立在操作系统之上的 安全的操作系统是数据库安全的前提 操作系统应能保证数据库中的数据必须由DBMS访问 而不允许用户越过DBMS 直接通过操作系统访问 数据最后可以通过密码的形式存储到数据库中 5 2 1用户标识和鉴定 IdentificationandAuthentication 数据库系统是不允许一个未经授权的用户对数据库进行操作的 用户标识和鉴定是系统提供的最外层的安全保护措施 其方法是由系统提供一定的方式让用户标识自己的名字或身份 系统内部记录着所有合法用户的标识 每次用户要求进入系统时 由系统进行核实 通过鉴定后才提供机器的使用权 用户标识和鉴定的方法有多种 为了获得更强的安全性 往往是多种方法并举 常用的方法有以下几种 1 用一个用户名或用户标识符来标明用户的身份 系统以此来鉴别用户的合法性 2 为了进一步核实用户身份 常采用用户名与口令 Password 相结合的方法 系统通过核对口令判别用户身份的真伪 3 通过用户名和口令来鉴定用户的方法简单易行 但该方法在使用时 由于用户名和口令的产生和使用比较简单 也容易被窃取 因此还可采用更复杂的方法 例如 每个用户都预先约定好一个过程或者函数 鉴别用户身份时 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行计算 系统根据计算结果辨别用户身份的合法性 例如 让用户记住一个表达式 如T X 2Y 系统告诉用户X 1 Y 2 如果用户回答T 5 则证实了该用户的身份 还可设计复杂的表达式 以使安全性更好 系统每次提供不同的X Y值 其他人可能看到的是X Y的值 但不能推算出确切的变换公式T 5 2 2存取控制 存取控制机制的功能存取控制机制的组成定义存取权限检查存取权限用户权限定义和合法权检查机制一起组成了DBMS的安全子系统 存取控制 续 定义存取权限在数据库系统中 为了保证用户只能访问他有权存取的数据 必须预先对每个用户定义存取权限 检查存取权限对于通过鉴定获得上机权的用户 即合法用户 系统根据他的存取权限定义对他的各种操作请求进行控制 确保他只执行合法操作 存取控制 续 常用存取控制方法自主存取控制 DiscretionaryAccessControl 简称DAC 灵活强制存取控制 MandatoryAccessControl 简称MAC 严格 自主存取控制方法 同一用户对于不同的数据对象有不同的存取权限不同的用户对同一对象也有不同的权限用户还可将其拥有的存取权限转授给其他用户 强制存取控制方法 每一个数据对象被标以一定的密级每一个用户也被授予某一个级别的许可证对于任意一个对象 只有具有合法许可证的用户才可以存取 5 3数据库存取控制方法 5 3 1用户权限用户权限由两个要素组成数据对象操作类型 关系数据库系统中存取控制的对象不仅有数据本身 还有数据库模式 如表5 1所示 表5 1类型数据对象操作类型模式模式建立 修改 删除 检索外模式建立 修改 删除 检索内模式建立 删除 检索数据表查找 插入 修改 删除属性列查找 插入 修改 删除 用户或DBA把授权决定告知系统SQL的GRANT和REVOKEDBMS把授权的结果存入数据字典当用户提出操作请求时 DBMS根据授权定义进行检查 以决定是否执行操作请求 5 3 2授权及收权 GRANT语句的一般格式 GRANT ON TO WITHGRANTOPTION 谁定义 DBA和表的建立者 即表的属主 GRANT功能 将对指定操作对象的指定操作权限授予指定的用户 1 操作权限 2 用户的权限 建表 CREATETABLE 的权限 属于DBADBA授予 普通用户基本表或视图的属主拥有对该表或视图的一切操作权限接受权限的用户 一个或多个具体用户PUBLIC 全体用户 3 WITHGRANTOPTION子句 指定了WITHGRANTOPTION子句 获得某种权限的用户还可以把这种权限再授予别的用户 没有指定WITHGRANTOPTION子句 获得某种权限的用户只能使用该权限 不能传播该权限 例题 例1把查询Student表权限授给用户U1GRANTSELECTON TABLE StudentTOU1 11 934班 execsp addrole r test 添加角色r testgrantallonstudenttor test 为角色r test授权execsp addlogin l test 123 学生 教学 Simplifiedchinese 添加登陆用户名l testexecsp grantdbaccess l test U1 为登录l test在数据库 学生 教学 中添加安全账户U1execsp addrolemember r test U1 添加U1为角色r test的成员 grantselect updateoncoursetou1withgrantoptionEXECsp revokedbaccess u test 从数据库pubs中删除安全账户EXECsp droplogin l test 删除登录l testEXECsp droprole r test 删除角色r test 例题 续 例2把对Student表的全部权限授予用户U2和U3GRANTALLPRIVILEGESON TABLE StudentTOU2 U3 例4 例题 续 例3把对表SC的查询权限授予所有用户GRANTSELECTON TABLE SCTOPUBLIC 例题 续 例4把查询Student表和修改学生学号的权限授给用户U4GRANTUPDATE Sno SELECTON TABLE StudentTOU4 例题 续 例5把对表SC的INSERT权限授予U5用户 并允许他再将此权限授予其他用户GRANTINSERTON TABLE SCTOU5WITHGRANTOPTION 传播权限 执行例5后 U5不仅拥有了对表SC的INSERT权限 还可以传播此权限 GRANTINSERTON TABLE SCTOU6WITHGRANTOPTION 同样 U6还可以将此权限授予U7 GRANTINSERTON TABLE SCTOU7 但U7不能再传播此权限 U5 U6 U7 SQL收回权限的功能 REVOKE语句的一般格式为 REVOKE ON FROM 功能 从指定用户那里收回对指定对象的指定权限 例题 例7把用户U4修改学生学号的权限收回REVOKEUPDATE Sno ON TABLE StudentFROMU4 例题 续 例8收回所有用户对表SC的查询权限REVOKESELECTON TABLE SCFROMPUBLIC 例题 续 例9把用户U5对SC表的INSERT权限收回REVOKEINSERTON TABLE SCFROMU5 5 4数据库角色 数据库角色是被命名的一组与数据库操作相关的权限 角色是权限的集合 使用角色来管理数据库权限可以简化授权的过程 在SQL语言中首先用CREATEROLE语句创建角色 然后用GRANT语句给角色授权 1 角色的创建创建角色的SQL语句格式是 execsp addrole r test 2 给角色授权GRANT ON对象名TO 3 将一个角色授予其他角色或用户execsp addrolemember 或 例11 通过角色来实现将一组权限授予一个用户 步骤 l 首先创建一个角色Rlexecsp addrole R1 2 然后使用GRANT语句给角色R1授权 GRANTSELECT UPDATE INSERTON TABLE StudentTOR1 3 将这个角色授予U1 使他们具有角色R1所包含的全部权限 execsp addrolemember R1 U1 5 5视图机制 视图机制把要保密的数据对无权存取这些数据的用户隐藏起来 视图机制更主要的功能在于提供数据独立性 其安全保护功能太不精细 往往远不能达到应用系统的要求 视图机制 续 视图机制与授权机制配合使用 首先用视图机制屏蔽掉一部分保密数据视图上面再进一步定义存取权限 视图机制 续 例 王平只能检索计算机系学生的信息先建立计算机系学生的视图CS StudentCREATEVIEWCS StudentASSELECT FROMStudentWHERESdept CS 视图机制 续 在视图上进一步定义存取权限GRANTSELECTONCS StudentTO王平 5 6审计 什么是审计启用一个专用的审计日志 AuditLog 将用户对数据库的所有操作记录在上面DBA可以利用审计日志中的追踪信息找出非法存取数据的人 审计 续 审计功能的可选性审计很费时间和空间DBA可以根据应用对安全性的要求 灵活地打开或关闭审计功能 5 7数据加密 数据加密防止数据库中数据在存储和传输中失密的有效手段加密的基本思想根据一定的算法将原始数据 术语为明文 Plaintext 变换为不可直接识别的格式 术语为密文 Ciphertext 不知道解密算法的人无法获知数据的内容 数据加密 续 加密方法替换方法使用密钥 EncryptionKey 将明文中的每一个字符转换为密文中的一个字符置换方法将明文的字符按不同的顺序重新排列混合方法美国1977年制定的官方加密标准 数据加密标准 DataEncryptionStandard 简称DES 数据加密 续 DBMS中的数据加密有些数据库产品提供了数据加密例行程序有些数据库产品本身未提供加密程序 但提供了接口 数据加密 续 数据加密功能通常也作为可选特征 允许用户自由选择数据加密与解密是比较费时的操作数据加密与解密程序会占用大量系统资源应该只对高度机密的数据加密 5 8统计数据库安全性 统计数据库的特点允许用户查询聚集类型的信息 例如合计 平均值等 不允许查询单个记录信息例 允许查询 程序员的平均工资是多少 不允许查询 程序员张勇的工资 应该避免用户从合法的查询中推导出不合法的信息 统计数据库安全性 续 例1 下面两个查询都是合法的 1 本公司共有多少女高级程序员 2 本公司女高级程序员的工资总额是多少 如果第一个查询的结果是 1 那么第二个查询的结果显然就是这个程序员的工资数 规则1 任何查询至少要涉及N N足够大 个以上的记录 11 712班 统计数据库安全性 续 例2 用户A发出下面两个合法查询 1 用户A和其他N个程序员的工资总额是多少 2 用户B和其他N个程序员的工资总额是多少 若第一个查询的结果是X 第二个查询的结果是Y 由于用户A知道自己的工资是Z 那么他可以计算出用户B的工资 Y X Z 原因 两个查询之间有很多重复的数据项规则2 任意两个查询的相交数据项不能超过M个 统计数据库安全性 续 可以证明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论