数据库应用技术 数据库安全

上传人:第*** 文档编号:51342316 上传时间:2018-08-13 格式:PPT 页数:44 大小:192.50KB
返回 下载 相关 举报
数据库应用技术 数据库安全_第1页
第1页 / 共44页
数据库应用技术 数据库安全_第2页
第2页 / 共44页
数据库应用技术 数据库安全_第3页
第3页 / 共44页
数据库应用技术 数据库安全_第4页
第4页 / 共44页
数据库应用技术 数据库安全_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《数据库应用技术 数据库安全》由会员分享,可在线阅读,更多相关《数据库应用技术 数据库安全(44页珍藏版)》请在金锄头文库上搜索。

1、返回返回第5章 数据库安全保护1返回返回本章概要 随着计算机的普及,数据库的使用也越来越广泛。 v 例如,一个企业的全部信息,国家机构的事务管理信息,国 防情报等机密信息,都集中地存放在数据库中。 在前面我们已经讲到,数据库系统中的数据是由DBMS 统一进行管理和控制的。 为了适应和满足数据共享的环境和要求,DBMS要保证 整个系统的正常运转,防止数据意外丢失和不一致数 据的产生,以及当数据库遭受破坏后能迅速地恢复正 常,这就是数据库的安全保护。 DBMS对数据库的安全保护功能是通过四方面实现的, 即安全性控制、完整性控制、并发性控制和数据库恢 复。 本章就是从这四方面来介绍数据库的安全保护功

2、能: v 要求掌握安全性、完整性、并发性和数据库恢复的含义, v 掌握这四方面分别实现安全保护功能的方法。 2返回返回5.1.1 数据库安全性的含义 数据库的安全性是指保护数据库,以防止非法使用所 造成数据的泄露、更改或破坏。 安全性问题有许多方面,其中包括: (1)法律、社会和伦理方面,例如请求查询信息的人是不 有合法的权力。 (2)物理控制方面,例如计算机机房或终端是否应该加锁 或用其他方法加以保护。 (3)政策方面,确定存取原则,允许哪些用户存取哪些数 据。 (4)运行方面,使用口令时,如何使口令保持秘密。 (5)硬件控制方面,CPU是否提供任何安全性方面的功能 ,诸如存储保护键或特权工

3、作方式。5.1 数据库的安全性3返回返回(6)操作系统安全性方面,在主存储器和数据文件用过以后,操 作系统是否把它们的内容清除掉。(7)数据库系统本身安全性 方面。这里讨论的是数据库本身的安全性问题,即主要考虑安 全保护的策略,尤其是控制访问的策略。5.1.2 安全性控制的一般方法 安全性控制是指要尽可能地杜绝所有可能的数据库非法 访问。 用户非法使用数据库可以有很多种情况。例如,编写合 法的程序绕过DBMS授权机制,通过操作系统直接存取、 修改或备份有关数据。 用户访问非法数据,无论它们是有意的还是无意的,都 应该加以严格控制,因此,系统还要考虑数据信息的流 动问题并加以控制,否则有隐蔽的危

4、险性。4返回返回因为数据的流动可能使无权访问的用户获得访 问权利。 v例如,甲用户可以访问文件F1,但无权访问文件F2 ,如果乙用户把文件F2移至文件F1中之后,则由于 乙用户的操作,使甲用户获得了对文件F2的访问权 。此外,用户可以多次利用允许的访问结果,经过 逻辑推理得到他无权访问的数据。 为防止这一点,访问的许可权还要结合过去访 问的情况而定。 可见安全性的实施是要花费一定代价的,安全 保护策略就是要以最小的代价来防止对数据的 非法访问,层层设置安全措施。 5返回返回实际上,安全性问题并不是数据库系统所独有 的,所有计算机系统中都存在这个问题。 在计算机系统中,安全措施是一级一级层层设

5、置的,安全控制模型如图5.1所示。图5.1 安全控制模型 用户标识 和鉴定用户用户存取 权限控制DBMSM MS操作系统 安全保护OS密码存储DB6返回返回根据图5.1的安全模型,当用户进入计算机系 统时,系统首先根据输入的用户标识进行身份 的鉴定,只有合法的用户才准许进入系统。 对已进入系统的用户,DBMS还要进行存取控制 ,只允许用户进行合法的操作。 DBMS是建立在操作系统之上的,安全的操作系 统是数据库安全的前提。 操作系统应能保证数据库中的数据必须由DBMS 访问,而不允许用户越过DBMS,直接通过操作 系统访问。 数据最后可以通过密码的形式存储到数据库中 。 7返回返回5.1.2.

6、1 用户标识和鉴定 (Identification and Authentication) 数据库系统是不允许一个未经授权的用户对数据库进 行操作的。 用户标识和鉴定是系统提供的最外层的安全保护措施 ,其方法是由系统提供一定的方式让用户标识自己的 名字或身份,系统内部矛盾记录着所有合法用户的标 识,每次用户要求进入系统时,由系统进行核实,通 过鉴定后才提供机器的使用权。 用户标识和鉴定的方法有多种,为了获得更强的安全 性,往往是多种方法并举,常用的方法有以下几种:8返回返回1用一个用户名或用户标识符来标明用户的身份,系统 以此来鉴别用户的合法性。如果正确,则可进入下一 步的核实,否则,不能使用

7、计算机。 2用户标识符是用户公开的标识,它不足以成为鉴别用 户身份的凭证。为了进一步核实用户身份,常采用用 户名与口令(Password)相结合的方法,系统通过核对 口令判别用户身份的真伪。 v系统有一张用户口令表,为每个用户保持一个记录,包括用 户名和口令两部分数据。 v 用户先输入用户名,然后系统要求用户输入口令。 v 为了保密,用户在终端上输入的口令不显示在屏幕上。 v 系统核对口令以鉴别用户身份。 3通过用户名和口令来鉴定用户的方法简单易行,但该 方法在使用时,由于用户名和口令的产生和使用比较 简单,也容易被窃取,因此还可采用更复杂的方法。 9返回返回v例如,每个用户都预先约定好一个过

8、程或者函数, 鉴别用户身份时,系统提供一个随机数,用户根据 自己预先约定的计算过程或者函数进行计算,系统 根据计算结果辨别用户身份的合法性。 v例如,让用户记住一个表达式,如T=X+2Y,系统告 诉用户X=1,Y=2,如果用户回答T=5,则证实了该用 户的身份。 v当然,这是一个简单的例子,在实际使用中,还可 以设计复杂的表达式,以使安全性更好。系统每次 提供不同的X,Y值,其他人可能看到的是X、Y的值 ,但不能推算出确切的变换公式T。10返回返回5.1.2.2 用户存取权限控制 用户存取权限指的是不同的用户对于不同的数 据对象允许执行的操作权限。 在数据库系统中,每个用户只能访问他有权存 取

9、的数据并执行有权使用的操作。 因此,必须预先定义用户的存取权限。 对于合法的用户,系统根据其存取权限的定义 对其各种操作请求进行控制,确保合法操作。 存取权限由两个要素组成,数据对象和操作类 型。 定义一个用户的存取权限就是要定义这个用户 可以在哪些数据对象上进行哪些类型的操作。11返回返回在数据库系统中,定义用户存取权限称为授权 (Authorization)。 授权有两种:系统特权和对象特权。 v系统特权是由DBA授予某些数据库用户,只有得到 系统特权,才能成为数据库用户。 v对象特权可以由DBA授予,也可以由数据对象的创 建者授予,使数据库用户具有对某些数据对象进行 某些操作的特权。 在

10、系统初始化时,系统中至少有一个具有DBA 特权的用户,DBA可以通过GRANT语句将系统特 权或对象特权授予其他用户。 对于已授权的用户可以通过REVOKE语句收回所 授予的特权。12返回返回1.授权语句GRANT 权限1 , 权限2 , .ON 对象类型 对象名 TO用户1 , 用户2, WITH GRANT OPTION;注: 权限共有6种, 对象类型指表,视图,列,数据库等.例1. 把修改学生表中的身份证号和查询学生表的权利授予用户USER1.grant update (id_card), select on table student to user1 例2:把对表student和lo

11、an的查询, 修改, 插入和删除等全部权力授予USER1和USER2.grant all priviliges on table student, loan to user1, user2;13返回返回例3: 把对表loan的查询权力授予所有用户.grant select on table loan to public; 例4: 把对表loan的查询权力授予用户3,并给他再授权的权力.grant select on table loan to USER3with grant option 2. 回收语句REVOKE 权力1 ,权力2 ON 队象类型 队象名FROM 用户1 ,用户2 ;例1:

12、把用户1 修改学生身份证号的权力收回.revoke update ( id_card) on table student from user1 例2: 把用户3查询 loan表的权力收回.revoke select on table loan from user3;14返回返回 这些授权定义经过编译后以一张授权表的形式存放在数据 字典中。 授权表主要有三个属性,用户标识、数据对象和操作类型 。 v 用户标识不但可以是用户个人,也可以是团体、程序和终端。在非 关系系统中,存取控制的数据对象仅限于数据本身。 v 而关系系统中,存取控制的数据对象不仅有基本表、属性列等数据 本身,还有内模式、外模式、

13、模式等数据字典中的内容。 v 下表列出了关系系统中的存取权限。数据对象操作类型模式模式建立、修改、检索外模式建立、修改、检索内模式建立、修改、检索数据表查找、插入、修改、删除属性列查找、插入、修改、删除15返回返回对于授权表,一个衡量授权机制的重要指标就 是授权粒度,即可以定义的数据对象的范围; 在关系数据库中,授权粒度包括关系、记录或 属性。 一般来说,授权定义中粒度越细,授权子系统 就越灵活 例如,表5.2是一个授权粒度很粗的表,它只能 对整个关系授权。 v如USER1拥有对关系S的一切权限; vUSER2拥有对关系C的SELECT权和对关系SC的UPDATE 权; vUSER3只可以向关

14、系SC中插入新记录。16返回返回表5.2 授权表用户标识数据对象操作类型USER1关系SALLUSER2关系CSELECTUSER2关系SCUPDATEUSER3关系SCINSERT17返回返回 表5.4中的授权表不但可以对属性列授权,还可以提供与 数值有关的授权,即可以对关系中的一组记录授权。v 比如,USER1只能对计算机系的学生进行操作。 对于提供与数据值有关的授权,系统必须能够支持存取谓 词的操作。表5.4 授权表用户标识数据对象操作类型存取谓词USER1关系SALLDEPT=计算机 USER2列C.CNOSELECT USER2列SC.SCOREUPDATE USER3关系SCINS

15、ERT 18返回返回授权粒度越细,授权子系统就越灵活,能够提供 的安全性就越完善。 但另一方面,如果用户比较多,数据库比较大, 授权表将很大,而且每次数据库访问都要用到这 张表做授权检查,这将影响数据库的性能。 所幸的是,在大部分数据库中,需要保密的数据 是少数,对于大部分公开的数据,可以一次性地 授权给PUBLIC,而不必再对每个用户个别授权。 对于表5.4中与数据值有关的授权,可以通过另 外一种数据库安全措施,即定义视图。19返回返回5.1.2.3 数据加密(Data Encryption) 前面介绍的几种数据库安全措施,都是防止从数 据库系统窃取保密数据,不能防止通过不正常渠 道非法访问

16、数据,例如,偷取存储数据的磁盘, 或在通信线路上窃取数据,为了防止这些窃密活 动,比较好的办法是对数据加密。 数据加密是防止数据库中数据在存储和传输中失 密的有效手段。 加密的基本思想是根据一定的算法将原始数据( 术语为明文,Plain text)加密成为不可直接识 别的格式(术语为密文,Clipher text),数据 以密码的形式存储和传输。20返回返回 加密方法有两种, v 一种是替换方法,该方法使用密钥(Encryption Key)将明文 中的每一个字符转换为密文中的一个字符。 v 另一种是转换方法,该方法将明文中的字符按不同的顺序重新 排列。 通常将这两种方法结合起来使用,就可以达到相当高的 安全程度。 v 例如美国1977年制定的官方加密标准,数据加密标准(Data Encryption Standard,简称DES)就是使用这种算法的例子。 数据加密后,对于不知道解密算

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号