第四章数据库安全性.ppt

上传人:本田雅阁 文档编号:2918751 上传时间:2019-06-05 格式:PPT 页数:29 大小:429.02KB
返回 下载 相关 举报
第四章数据库安全性.ppt_第1页
第1页 / 共29页
第四章数据库安全性.ppt_第2页
第2页 / 共29页
第四章数据库安全性.ppt_第3页
第3页 / 共29页
第四章数据库安全性.ppt_第4页
第4页 / 共29页
第四章数据库安全性.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第四章数据库安全性.ppt》由会员分享,可在线阅读,更多相关《第四章数据库安全性.ppt(29页珍藏版)》请在三一文库上搜索。

1、1,第四章 数据库安全性,数据库的一大特点是数据可以共享,但数据共享必然带来数据库的安全性问题,数据库系统中的数据共享不能是无条件的共享。 数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问他权限范围内的数据。 数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一。 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。 数据库系统的安全性包括计算机安全性和数据库的安全性。本章只讨论数据库的安全性。,2,第四章 数据库安全性,本章内容 4.2 数据库安全性控制 4.2.1 用户标识与鉴别 4.2.2 自主存取控制授权与

2、回收 4.2.3 强制存取控制 4.2.4 视图机制 4.2.5 审计 4.2.6 数据加密 4.3 统计数据库安全性,3,4.2 数据库安全性控制,非法使用数据库的情况 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据 直接或编写应用程序执行非授权操作 通过多次合法查询数据库从中推导出一些保密数据 例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工资,于是他: (1)首先查询包括张三在内的一组人的平均工资 (2)然后查用自己替换张三后这组人的平均工资 从而推导出张三的工资 破坏安全性的行为可能是无意的,故

3、意的,恶意的 数据库安全性控制的常用方法 用户标识和鉴定、存取控制、视图、审计、数据加密,4,4.2.1 用户标识与鉴别,用户标识与鉴别(Identification & Authentication)是系统提供的最外层安全保护措施。 基本方法 系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户身份标识; 通过鉴定后才提供机器使用权; 用户标识和鉴定可以重复多次。 常用的标识:用户名 + 口令 简单易行,但也有缺点:容易被人窃取 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者

4、函数进行计算 系统根据用户计算结果是否正确鉴定用户身份,5,4.2.2 自主存取控制授权与回收,存取控制机制的功能 定义存取权限 在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。 检查存取权限 对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统,6,4.2.2 自主存取控制授权与回收,常用存取控制方法 自主存取控制(Discretionary Access Control ,简称DAC) (1)同一用户对于不同的数据对象有不同的存

5、取权限 (2)不同的用户对同一对象也有不同的权限 (3)用户还可将其拥有的存取权限转授给其他用户 SQL提供了自主存取控制的语句:GRANT / REVOKE 优点 能够通过授权机制有效地控制其他用户对敏感数据的存取 缺点 可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。 解决:对系统控制下的所有主客体实施强制存取控制策略,7,4.2.2 自主存取控制授权与回收,授权将数据库中的某些对象的某些操作权限赋予某些用户。 权限一览表:,8,4.2.2 自主存取控制授权与回收,授权语句: GRANT ,. ON , TO ,. WITH GR

6、ANT OPTION ; 注: (1)DBA拥有数据库操作的所有权限,可以将权限赋予其他用户。 (2)建立数据库对象有用户称为该对象的属主(OWNER),他拥有该对象的所有操作权限。 (3)接受权限的用户可以是一个或多个具体用户,也可以是全体用户(PUBLIC)。 (4)指定了WITH GRANT OPTION子句,获得某种权限的用户还可以把这种权限再授予别的用户;没有指定WITH GRANT OPTION子句,获得某种权限的用户只能使用该权限,不能传播该权限。,9,4.2.2 自主存取控制授权与回收,例1 把查询Student表权限授给用户U1。 GRANT SELECT ON TABLE

7、Student TO U1; 例2 把对Student表和Course表的全部权限授予用户U2和U3。 GRANT ALL PRIVILEGES ON TABLE Student, Course TO U2, U3; 例3 把对表SC的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC; 例4 把查询Student表和修改学生学号的权限授给用户U4。 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;,10,4.2.2 自主存取控制授权与回收,例5 把对表SC的INSERT权限授予U5用户,并允许他再将此权

8、限授予其他用户。 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION; 执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限: GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION; 同样,U6还可以将此权限授予U7: GRANT INSERT ON TABLE SC TO U7; 但U7不能再传播此权限。 DBA U5 U6 U7,11,4.2.2 自主存取控制授权与回收,收回权限从指定用户那里收回对指定对象的指定权限 收回权限语句: REVOKE ,. ON , FROM ,. CA

9、SCADE|RESTRICT; 例6 把用户U4修改学生学号的权限收回。 REVOKE UPDATE(Sno) ON TABLE Student FROM U4; 例7 收回所有用户对表SC的查询权限。 REVOKE SELECT ON TABLE SC FROM PUBLIC;,12,4.2.2 自主存取控制授权与回收,例8 把用户U5对SC表的INSERT权限收回 REVOKE INSERT ON TABLE SC FROM U5 CASCADE; 级联逐级收回由U5传递出去的权限 授权图 系统用授权图表示权限的传递链 用户具有授权当且仅当存在从授权图的根结点(DBA)到代表该用户的结点的

10、路径 原授权链为:DBA U5 U6 U7 收回U5权限后: DBA U5 U6 U7 此例中由于没有从根到U6(U7)的路径, U6(U7)不再拥有该权限 问题:REVOKE后一定没有权限吗?,13,4.2.2 自主存取控制授权与回收,数据库角色:被命名的一组与数据库操作相关的权限 角色是权限的集合 可以为一组具有相同权限的用户创建一个角色 简化授权的过程 角色的创建/删除 CREATE/DROP ROLE ; 给角色授权 / 收回权限角色被视作用户 GRANT/REVOKE 将角色授予给其他角色或用户角色被视作权限 GRANT ,. TO ,. WITH ADMIN OPTION; 注:W

11、ITH ADMIN OPTION表示角色或用户可以传播该权限,14,4.2.2 自主存取控制授权与回收,例9 通过角色来实现一组权限的授予和收回。 1. 首先创建一个角色 R1 CREATE ROLE R1; 2. 然后使用GRANT语句,使角色R1拥有Student表的SELECT, UPDATE, INSERT权限 GRANT SELECT, UPDATE, INSERT ON TABLE Student TO R1; 3. 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限 GRANT R1 TO 王平, 张明, 赵玲; 4. 可以一次性通过R1来回收王平的这3个权限 R

12、EVOKE R1 FROM 王平;,15,4.2.2 自主存取控制授权与回收,例10 给角色R1增加Student表的DELETE权限 GRANT DELETE ON TABLE Student TO R1; 执行完成后张明、赵玲对Student表有DELETE权限 例11 从角色R1收回Student表的SELECT权限 REVOKE SELECT ON TABLE Student FROM R1; 执行完成后张明、赵玲对Student表没有SELECT权限,16,4.2.2 自主存取控制授权与回收,权限小结: (1)DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授

13、予不同的用户; (2)用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户; (3)被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户; (4)所有授予出去的权力在必要时可以用REVOKE语句收回; (5)使用角色管理数据库可以简化授权的过程;,17,4.2.3 强制存取控制,强制存取控制(Mandatory Access Control,简称 MAC) (1)每一个数据对象被标以一定的密级 (2)每一个用户也被授予某一个级别的许可证 (3)对于一个对象,只有具有合法(即一定级别的)许可证的用户才可以存取 主体与客体 在MAC中

14、,DBMS所管理的全部实体被分为主体和客体两大类: 主体是系统中的活动实体 DBMS所管理的实际用户 代表用户的各进程 客体是系统中的被动实体,是受主体操纵的 包括:文件、 基本表、 索引、 视图,18,4.2.3 强制存取控制,敏感度标记 对于主体和客体,DBMS为它们每个实例指派一个敏感度标记(Label) 敏感度标记分成若干级别: 绝密(Top Secret)、 机密(Secret)、 可信(Confidential)、 公开(Public)。 主体的敏感度标记称为许可证级别(Clearance Level) 客体的敏感度标记称为密级(Classification Level) MAC机

15、制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体,19,4.2.3 强制存取控制,强制存取控制规则 (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。,20,4.2.3 强制存取控制,DAC与MAC共同构成DBMS的安全机制 注:较高安全性级别提供的安全保护要包含较低级别的所有保护,所以实现MAC首先要实现DAC 先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。 DAC + MAC安全检查示意图,21,4.2.4

16、视图机制,视图机制把要保密的数据对无权存取这些数据的用户隐藏起来 视图机制更主要的功能在于提供数据独立性,其安全保护功能不太精细,往往远不能达到应用系统的要求。 视图机制与授权机制配合使用: 首先用视图机制屏蔽掉一部分保密数据 视图上面再进一步定义存取权限 间接实现了支持存取谓词的用户权限定义 注: (1)有的DBMS只支持表上的权限,不支持列的权限,如SELECT(Sno); (2)有的DBMS授予权限不能带条件(即存取谓词),如每个学生只能访问自己的信息;,22,4.2.4 视图机制,例12 建立计算机系学生的视图,把对该视图的SELECT权限授予王平,把该视图的所有操作权限授予张明。 C

17、REATE VIEW CS_Student AS SELECT * FROM Student WHERE Sdept=CS; GRANT SELECT ON VIEW CS_Student TO 王平; GRANT ALL PRIVILEGES ON VIEW CS_Student TO 张明;,23,4.2.4 视图机制,例13 在学籍管理数据库中,每个学生有以自己的学号为用户名和密码的帐号,要求每个学生登录后只能访问自己的信息 方法一:授予权限时使用存取谓词; GRANT SELECT ON Student WHEN USER()=Sno TO ALL; 方法二:使用视图(SQL Serv

18、er 为例): (1)DBA建立一个视图,将视图的访问权限授予所有用户; CREATE VIEW My_Student AS SELECT * FROM Student WHERE Sno=USER -系统变量 GRANT SELECT ON VIEW My_Student TO PUBLIC; (2)学生使用自己的用户名登录 SELECT * FROM Student; -无权访问 SELECT * FROM My_Student; -只得到自己的信息,24,4.2.5 审计,什么是审计 DBMS启用一个专用的审计日志(Audit Log) 将用户对数据库的所有操作记录在上面 DBA可以利用

19、审计日志中的追踪信息 找出非法存取数据的人 C2以上安全级别的DBMS必须具有审计功能 审计功能的可选性 审计很费时间和空间 DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。 强制性机制:用户识别和鉴定、存取控制、视图 预防监测手段:审计技术,25,4.2.6 数据加密,数据加密 防止数据库中数据在存储和传输中失密的有效手段 加密的基本思想 根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text) 不知道解密算法的人无法获知数据的内容 加密方法 替换方法 使用密钥(Encryption Key)将明文中的每一个字符转

20、换为密文中的一个字符 置换方法 将明文的字符按不同的顺序重新排列 混合方法 如美国1977年制定的官方加密标准:数据加密标准(Data Encryption Standard,简称DES),26,4.2.6 数据加密,DBMS中的数据加密 有些数据库产品提供了数据加密例行程序 有些数据库产品本身未提供加密程序,但提供了接口 数据加密功能通常也作为可选特征,允许用户自由选择 数据加密与解密是比较费时的操作 数据加密与解密程序会占用大量系统资源 应该只对高度机密的数据加密,27,4.3 统计数据库安全性,统计数据库 允许用户查询聚集类型的信息(例如合计、平均值等) 不允许查询单个记录信息 例:允许

21、查询“程序员的平均工资是多少?” 不允许查询“程序员张勇的工资?” 统计数据库中特殊的安全性问题 隐蔽的信息通道 从合法的查询中推导出不合法的信息 规则1:任何查询至少要涉及N(N足够大)个以上的记录 例1:下面两个查询都是合法的: 1本公司共有多少女高级程序员? 2本公司女高级程序员的工资总额是多少? 如果第一个查询的结果是“1”, 那么第二个查询的结果显然就是这个程序员的工资数。,28,4.3 统计数据库安全性,规则2:任意两个查询的相交数据项不能超过M个 例2:用户A发出下面两个合法查询: 1用户A和其他N个程序员的工资总额是多少? 2用户B和其他N个程序员的工资总额是多少? 若第一个查询的结果是X,第二个查询的结果是Y,由于用户A知道自己的工资是Z,那么他可以计算出用户B的工资=Y-(X-Z)。 原因:两个查询之间有很多重复的数据项 规则3:任一用户的查询次数不能达到 1+(N-2)/M 如果两个用户合作查询就可以使这一规定失效 数据库安全机制的设计目标: 试图破坏安全的人所花费的代价 得到的利益,29,第四章 数据库安全性,作业 P148 题8 注:应使用题目中给定的表名和列名(中文),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1