• 1. 1数据库系统概论 An Introduction to Database System 第四章 数据库安全性
  • 2. 2数据库安全性什么是数据库的安全性 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
  • 3. 3第四章 数据库安全性4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
  • 4. 44.1 计算机安全性概论什么是计算机系统安全性 为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。返回
  • 5. 54.1.1计算机系统的三类安全性问题三类计算机系统安全性问题 技术安全类 管理安全类 政策法律类返回
  • 6. 64.1.2 安全标准简介计算机以及信息安全技术方面的安全标准: TCSEC标准 CC标准
  • 7. 74.1.2 安全标准简介
  • 8. 8安全标准简介(续)TCSEC/TDI (trusted database interpretation)标准的基本内容 TCSEC/TDI,从四个方面来描述安全性级别划分的指标 安全策略 责任 保证 文档
  • 9. 9TCSEC/TDI安全级别划分TCSEC/TDI安全级别划分(7级) 安 全 级 别 定 义 A1验证设计(Verified Design) B3安全域(Security Domains) B2结构化保护(Structural Protection)DAC+MAC B1标记安全保护(Labeled Security Protection)MAC C2受控的存取保护(Controlled Access Protection) C1自主安全保护(Discretionary Security Protection)DAC D最小保护(Minimal Protection)可靠 可信
  • 10. 10安全标准简介(续)CC 提出国际公认的表述信息技术安全性的结构 把信息产品的安全要求分为 安全功能要求 安全保证要求
  • 11. 11安全标准简介(续) CC文本组成 简介和一般模型:术语、概念、模型、保护轮廓(PP)、安全目标(ST) 安全功能要求:功能组件(135)、子类(66)、类(11) 安全保证要求:保证组件(74)、子类(26)、类(7)
  • 12. 12安全标准简介(续) CC评估保证级(Evaluation Assurance Level, EAL)划分 评估保证级定  义TCSEC安全级别(近似相当)EAL1功能测试(functionally tested)EAL2结构测试(structurally tested)C1EAL3系统地测试和检查(methodically tested and checked)C2EAL4系统地设计、测试和复查(methodically designed, tested, and reviewed)B1EAL5半形式化设计和测试(semiformally designed and tested)B2EAL6半形式化验证的设计和测试(semiformally verified design and tested)B3EAL7形式化验证的设计和测试(formally verified design and tested)A1
  • 13. 13第四章 数据库安全性4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
  • 14. 14图4.2 计算机系统中的安全模型4.2 数据库安全性控制计算机系统中,安全措施是一级一级层层设置
  • 15. 154.2 数据库安全性控制4.2.1 用户标识与鉴别 4.2.2 存取控制 4.2.3 自主存取控制方法(DAC) 4.2.4 授权与回收 4.2.5 数据库角色 4.2.6 强制存取控制方法(MAC)返回
  • 16. 164.2.1 用户标识与鉴别用户标识与鉴别(Identification & Authentication) 系统提供的最外层安全保护措施 常用方法 用户标识 口令
  • 17. 17用户标识自己的名字或身份用户名/口令 简单易行 口令容易被窃取 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行计算 系统根据用户计算结果是否正确鉴定用户身份返回
  • 18. 184.2.2 存取控制存取控制机制的功能 存取控制机制的组成 定义存取权限 检查存取权限 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统
  • 19. 19存取控制(续)常用存取控制方法 自主存取控制(Discretionary Access Control ,简称DAC)C2 灵活 强制存取控制(Mandatory Access Control,简称 MAC)B1 严格
  • 20. 204.2.3 自主存取控制方法通过 SQL 的 GRANT 语句和 REVOKE 语句实现 用户权限组成 数据对象 操作类型 定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作 定义存取权限称为授权
  • 21. 214.2.4 授权(Authorization)与回收一、GRANT GRANT <权限列表> ON <数据库元素>]… TO <用户/角色列表]… [WITH GRANT OPTION]; 语义为:将对指定数据库元素的指定操作权限授予指定的用户
  • 22. 22GRANT(续) 发出GRANT: DBA 数据库对象创建者(即属主Owner) 拥有该权限的用户 按受权限的用户 一个或多个具体用户 PUBLIC(全体用户)
  • 23. 23WITH GRANT OPTION子句WITH GRANT OPTION子句: 指定:可以再授予 没有指定:不能传播 不允许循环授权
  • 24. 24例题 [例1] 把查询Student表权限授给用户U1 GRANT SELECT ON Student TO U1; [例2] 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILEGES ON Student, Course TO U2, U3;
  • 25. 25例题(续)[例3] 把对表SC的查询权限授予所有用户 GRANT SELECT ON SC TO PUBLIC; [例4] 把查询Student表和修改学生学号的权限授给用户U4  GRANT UPDATE(Sno), SELECT ON Student TO U4; 对属性列的授权时必须明确指出相应属性列名
  • 26. 26例题(续) [例5] 把对表SC中SNO,CNO的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON SC TO U5 WITH GRANT OPTION;
  • 27. 27传播权限 [例6] GRANT INSERT ON SC TO U6 WITH GRANT OPTION; [例7] GRANT INSERT ON SC TO U7; 但U7不能再传播此权限。
  • 28. 28授权(Authorization)与回收(续)二、REVOKE REVOKE <权限列表> ON <数据库元素> FROM <用户/角色列表> [CASCADE|RESTRICT]
  • 29. 29REVOKE(续)[例8] 把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno) ON Student FROM U4; [例9] 收回所有用户对表SC的查询权限 REVOKE SELECT ON SC FROM PUBLIC;
  • 30. 30REVOKE(续)[例10] 把用户U5对SC表的INSERT权限收回 REVOKE INSERT ON SC FROM U5 CASCADE ; 将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回 系统只收回直接或间接从U5处获得的权限
  • 31. 314.2.5 数据库角色数据库角色是被命名的一组与数据库操作相关的权限。 是权限的集合。 可为一组具有相同权限的用户创建一个角色 使用角色来管理数据库权限可以简化授权的过程。
  • 32. 32数据库角色(续)一、角色的创建 CREATE ROLE <角色> 刚创建的角色是空的,没有任何内容,可用GRANT为角色授权。 二、给角色授权 GRANT <权限列表> ON <数据库元素>] TO <角色列表] DBA和用户可利用GRANT语句将权限授予某一个或几个角色。
  • 33. 33数据库角色(续)三、将一个角色授予其他的角色或用户 GRANT <角色1>[<角色2>]… TO<角色3>[,<用户1>]… [WITH ADMIN OPTION] 四、角色权限的收回 REVOKE <权限列表> ON <数据库元素> FROM <角色列表> [CASCADE|RESTRICT]返回
  • 34. 34数据库角色(续)[例11] 通过角色来实现将一组权限授予一个用户。 步骤如下: 1. 首先创建一个角色 R1 CREATE ROLE R1; 2. 然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限 GRANT SELECT,UPDATE,INSERT ON Student TO R1;
  • 35. 35数据库角色(续)3. 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限 GRANT R1 TO 王平,张明,赵玲; 4. 可以一次性通过R1来回收王平的这3个权限 REVOKE R1 FROM 王平;
  • 36. 36自主存取控制缺点可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记 解决:对系统控制下的所有主客体实施强制存取控制策略
  • 37. 374.2.6 强制存取控制方法基本思想 对于每个数据对象赋予一定的密级; 绝密、机密、秘密和公开 对每个用户赋予相应的级别,称为许可证级别; 系统运行时,采用以下两条原则: 用户只能查看比它级别低或同级的数据 用户只能修改和它同级的数据 主要为了防止较高级别用户将该级别的数据复制到较低级别的文件中
  • 38. 38强制存取控制方法(续)强制存取控制的特点 MAC是对数据本身进行密级标记 无论数据如何复制,标记与数据是一个不可分的整体 只有符合密级标记要求的用户才可以操纵数据 从而提供了更高级别的安全性
  • 39. 39第四章 数据库安全性4.1 计算机安全性概述 4.2 数据库安全性控制 4.3 视图机制 4.4 审计(Audit) 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
  • 40. 404.3 视图机制视图机制把要保密的数据对无权存取这些数据的用户隐藏起来。 视图机制与授权机制配合使用: 首先用视图机制屏蔽掉一部分保密数据 视图上面再进一步定义存取权限
  • 41. 41视图机制(续)[例14]建立计算机系学生的视图,把对该视图的SELECT权限授于王平 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT FROM Student WHERE Sdept='CS' 在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO 王平
  • 42. 42第四章 数据库安全性4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
  • 43. 434.4 审计什么是审计 启用一个专用的审计日志(Audit Log),将用户对数据库的所有操作记录在上面 DBA可以利用审计日志中的追踪信息, 找出非法存取数据的人 C2以上安全级别的DBMS必须具有审计功能
  • 44. 44第四章 数据库安全性4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
  • 45. 454.5 数据加密数据加密 防止数据库中数据在存储和传输中失密的有效手段 加密的基本思想 把明文通过一定的变换(替换和置换)等方式变换成对应的密文。 密文需要按加密的逆过程解密成明文后,才能理解其含义。
  • 46. 46数据加密的工作原理解密密钥加密密钥明文加密算法明文密文解密算法窃取者发送接收
  • 47. 47数据加密(续)DBMS中的数据加密 有些数据库产品提供了数据加密例行程序 有些数据库产品本身未提供加密程序,但提供了接口 数据加密功能通常也作为可选特征,允许用户自由选择
  • 48. 48第四章 数据库安全性4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
  • 49. 494.6 统计数据库安全性统计数据库的特点 允许用户查询聚集类型的信息(例如合计、平均值等) 不允许查询单个记录信息
  • 50. 50统计数据库安全性(续)例1:下面两个查询都是合法的: 1) 本公司共有多少女高级程序员? 2) 本公司女高级程序员的工资总额是多少? 如果第一个查询的结果是“1”,那么第二个查询的结果显然就是这个程序员的工资数。 规则1:任何查询至少要涉及N(N足够大)个以上的记录
  • 51. 51统计数据库安全性(续)例2:用户A发出下面两个合法查询: 1.用户A和其他N个程序员的工资总额是多少? 2.用户B和其他N个程序员的工资总额是多少? 若第一个查询的结果是X,第二个查询的结果是Y,由于用户A知道自己的工资是Z,那么他可以计算出用户B的工资=Y-(X-Z)。 原因:两个查询之间有很多重复的数据项 规则2:任意两个查询的相交数据项不能超过M个
  • 52. 52统计数据库安全性(续)可以证明,在上述两条规定下,如果想获知用户B的工资额,A至少需要进行1+(N-2)/M次查询 规则3:任一用户的查询次数不能超过1+(N-2)/M 如果两个用户合作查询就可以使这一规定失效
  • 53. 53统计数据库安全性(续)数据库安全机制的设计目标: 试图破坏安全的人所花费的代价 >>得到的利益返回
  • 54. 544.7 小结随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要 DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。 计算机及信息安全技术方面有影响力的标准 TCSEC CC
  • 55. 55小结(续)实现数据库系统安全性的技术和方法 存取控制技术 视图技术 审计技术 自主存取控制功能 通过SQL 的GRANT语句和REVOKE语句实现 角色 使用角色来管理数据库权限可以简化授权过程 CREATE ROLE语句创建角色 GRANT 语句给角色授权返回