第四章数据库的安全性.docx

上传人:b****8 文档编号:9222998 上传时间:2023-05-17 格式:DOCX 页数:13 大小:30.72KB
下载 相关 举报
第四章数据库的安全性.docx_第1页
第1页 / 共13页
第四章数据库的安全性.docx_第2页
第2页 / 共13页
第四章数据库的安全性.docx_第3页
第3页 / 共13页
第四章数据库的安全性.docx_第4页
第4页 / 共13页
第四章数据库的安全性.docx_第5页
第5页 / 共13页
第四章数据库的安全性.docx_第6页
第6页 / 共13页
第四章数据库的安全性.docx_第7页
第7页 / 共13页
第四章数据库的安全性.docx_第8页
第8页 / 共13页
第四章数据库的安全性.docx_第9页
第9页 / 共13页
第四章数据库的安全性.docx_第10页
第10页 / 共13页
第四章数据库的安全性.docx_第11页
第11页 / 共13页
第四章数据库的安全性.docx_第12页
第12页 / 共13页
第四章数据库的安全性.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第四章数据库的安全性.docx

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

第四章数据库的安全性.docx

第四章数据库的安全性

第四章数据库的安全性

数据库的特点之一:

数据是由DBMS统一进行管理。

如何来保证数据的安全可靠、正确有效,DBMS提供四个方面控制功能:

数据的安全性;数据的完整性;并发控制;数据库恢复。

本章主要讨论数据的安全性、在DBMS中采用什么样的安全技术措施来保证数据库的数据安全。

下一章讨论数据的完整性。

4.1计算机安全性概述

数据库的安全性:

是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

数据库的安全性和计算机系统的安全性(计算机硬件、操作系统、网络系统等的安全性)是紧密联系、相互支持的,因此在讨论数据库的安全性之前首先讨论计算机系统安全性的一般问题。

4.1.1计算机系统的三类安全性问题

计算机系统安全性:

为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

计算机系统的安全问题可分为三大类,技术安全类、管理安全和政策法律类。

技术安全:

是指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存储数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。

管理安全:

是指由于管理不善导致计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。

政策法律:

指政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。

本书只讨论技术安全。

4.2数据库安全性控制

在一般计算机系统中,安全措施是一级一级层层设置的。

例如,可以有如下的模型:

 

用户识别和鉴别数据库安全保护操作系统安全保护数据密码存储

图4.2计算机系统的安全模型

这里只讨论与数据库有关的用户标识和鉴定、存储控制、图和密码存储等安全技术。

4.2.1用户标识与鉴别(Identification&Authentication)

用户标识和鉴别使系统提供的最外层安全保护措施。

数据库是数据库管理系统进行用户标识和鉴定。

用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并举,已获得更强和安全性。

常用的方法有:

用户标识:

(UsrIdentification)

用一个用户名(UserName)或者时标识号(UID)来表明用户身份.系统内部记录着所有合法用户的标识,系统鉴别用户是否是合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。

口令(Password)

为了进一步核实用户,系统常常鉴别用户输入口令。

用户标识和鉴定可以重复多次。

4.2.2存取控制

数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。

存取控制机制主要包括两部分:

1.定义用户权限,并将用户权限登记到数据字典中

权限:

用户对某一数据对象的操作权力。

DBMS系统必须提供适当的语言来定义用户权限,这些定义经过编译后存放在数据字典中,被称作安全规则或授权规则。

2.合法权限检查

用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。

大型的DBMS一般都支持C2级中的自主存取控制(DiscretionaryAccessControl,简记为DAC),有些DBMS同时还支持B1级中的强制存取控制(MandatoryAccessControl,简记为MAC)。

(1)在自主存取控制方法中,用户不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转售给其他用户。

因此自主存取控制非常灵活。

(2)在强制存取控制方法中,每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。

对于任意一个对象,只有具有合法许可证的用户才可以存取。

强制存取控制因此相对比较严格。

下面介绍这两种存取控制方法。

4.2.3自主存取控制(DAC)方法

大型数据库管理系统几乎都支持自主存取控制,这主要通过SQL的GRANT语句和REVOKE语句来实现。

用户权限是由两个要素组成的:

数据库对象和操作类型。

表4.3列出了主要的存取权限。

表4.3关系数据库系统中的存取权限

对象类型对象操作类型

数据库模式CREATESCHEMA

基本表CREATETABLE,ALTERTABLE

模式视图CREATEVIEW

索引CREATEINDES

数据基本表和视图SELECT,INSERT,UPDATE,DELETE,

REFERENCES,ALLPRIVILEGES

数据属性列SELECT,INSERT,UPDATE,REFERENCES

ALLPRIVILEGES

4.2.4授权(Authorization)与回收

SQL中的GRANT语句和REVOKE语句。

GRANT语句向用户授予权限,REVOKE语句收回授予的权限。

一、GRANT

GRANT语句的一般格式为

GRANT<.权限>[,<权限>]…

ON<对象类型><对象名>[<对象类型><对象名>]…

TO<用户>[,<用户>]…

[WITHGRANTOPTION];

1.把查询Student表的权限授给用户U1

GRANTSELECT

ONTABLEStudent

TOU1

2.把对表Student和表Course的全部操作权限授予用户u2和u3

GRANTALLPRIVILEGES

ONTABLEStudeng,Course

TOU2,U3;

3.把对表SC的查询权限授予所有用户

GRANTSELECT

ONTABLESC

TOPUBLIC

4.把查询Student表和修改学生学号的权限授给用户U4

GRANTUPDATE(Sno),SELECT

ONTABLEStudent

TOU4

5.GRANTINSERT

ONTABLESC

TOU5

WITHGRANTOPTION

6.GRANTINSERT

ONTABLESC

TOU6

WITHGRANTOPTION;

7.GRANTINSERT

ONTABLESC

TOU7;

二REVOKE

REVOKE语句的一般格式为

REVOKE<权限>[,<权限>]…

ON<对象类型><对象名>[,<对象类型><对象名>]…

FROM<用户>[,<用户>]…[CASCADE│RESTRICE];

1.把用户U4修改学生学号的权限收回。

REVOKEUPDATE(Sno)

ONTABLEStudent

FROMU4

2.把用户U5对SC表的SC权限收回

REVOKESELECT

ONTABLESC

FROMPUBLIC;

3.把用户U5对SC表的INSERT权限收回

REVOKEINSERT

ONTABLESC

FROMU5CASCADE

将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回,不然系统将拒绝(RESTRICT)执行该命令。

SQL提供了非常灵活的授权机制。

DBA拥有对数据库中所有的所有权限,并可以根据实际情况将不同的权限授予不能的用户。

用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。

被授予的用户如果有“继续授权”的许可,好可以把获得的权限再授予其他用户。

所有授予出去的权力在必要时又都可以用REVOKE语句收回。

三.创建数据库模式的权限

数据库模式的授权则由DBA在创建用户时实现。

CREATEUSER语句一般格式如下:

CREATEUSER

[WITH][DBA│RESOURCE│CONNECT];

对CREATEUSER语句说明如下:

·只有系统的超级用户才有权创建一个新的数据库用户。

·新创建的数据库用户有三种权限:

CONNECTRESOURCE和DBA.。

·CREATEUSER命令中如果没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。

CONNECT权限:

用户不能创建新用户,不能创建模式,也不能创建基本表;只能登陆数据库。

然后由DBA或其他用户授予他应有的权限,根据获得的授权情况他可以对数据库对象进行权限范围内的操作

·拥有RESOURCE权限:

用户能创建基本表和视图,成为所创建对象的属主。

但是不能创建模式,不能创建新的用户。

数据库对象的属主可以使用GRANT语句把该对象上的存取权限授予其他用户。

·拥有DBA权限的用户使系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等;DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。

以上说明可以用表4.6来总结。

表4.6全线与可执行的操作对照表

拥有的权限

可否执行的操作

CREATEUSER

CREATESCHEMA

CREATETABLE

登陆数据库执行数据查询和操纵

DBA

可以

可以

可以

可以

RESOURCE

不可以

不可以

可以

可以

CONNECT

不可以

不可以

不可以

可以

4.2.5数据库角色

数据库角色是权限的集合(被命名的一组与数据库操作相关的权限),为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。

一、角色的创建

语句格式是

CREATEROLE<角色名>

二、给角色授权

GRANT<权限>[,<权限>]…

ON<对象类型>对象名

TO<角色>[,<角色>]…

三、将一个角色授予其他的角色或用户

GRANT<角色1>[,<角色2>]…

TO<角色3>[,<用户1>]…

[WITHADMINPOTION]

如果指定了WITHADMINOPTION子句,则获得某种权限的角色或用户还可以把这种权限再授予其他的角色。

四、角色权限的收回

REVOKE<权限>[,<权限>]…

ON<对象类型><对象名>

FROM<角色>[,<角色>]…

用户可以收回角色的权限,从而修改角色拥有的权限。

REVOKE动作的执行者或者是角色的创建者,或者拥有在这个(些)角色上的ADMINOPTION.

通过角色来实现将一组权限授予一个用户。

1.首先创建一个角色R1

CREATEROLER1;

2.然后使用GRANT语句,使角色R1拥有Student表的SELECTUPDATE、INSERT权限

GRANTSELECT,UPDATE,INSERT

ONTABLEStudent

TOR1;

3.将这个角色授予王平、张明、赵玲。

使他们具有角色R1所包含的全部权限。

GRANTR1

TO王平,张明,赵玲;

4.当然,也可以一次性的通过R1来回收王平的这3个权限

REVOKER1

FROM王平;

5.角色的权限修改

GRANTDELETE

ONTABLEStudent

TOR1

使角色R1在原来的基础上增加了Student表的DELETE权限。

6.REVOKESELECT

ONTABLEStudent

TOR1

4.2.6强制存取控制(MAC)方法

由于用户对数据的存取权限是“自主”的,用户可以自由地决定将数据的存取权限授予任何人、决定是否也将“授权”的权限授予别人。

这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。

要解决这一问题,就需要对系统控制下的所有客户主体实施强制存取控制策略。

在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。

主体:

是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。

客体:

使系统中的被动实体,是受主体操纵的,,包括文件、基本表、索引、视图等。

对于主体和客体,DBMS为它们每过实例(值)指派一个敏感度标记(Label)。

敏感度标记被分为若干级别,例如绝密(TopSecret)、机密(Secret)、可信(Confidential)、公开(Public)等。

主体的敏感度标记称为许可证级别(ClearanceLabel)、客体的敏感度标记称为密级(ClassificationLevel)。

MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。

4.3视图机制

不同的用户定义不同的视图,把数据对象限制在一定的范围内,也就是说,通过时突击只要把保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

建立计算机系学生的视图,把对该视图的SELECT权限授予王平,把该视图上的所有操作权限授予张明

CREATEVIEWCS_Student

AS

SELECT*

FROMStudent

WHERESdept=’CS’

GRANTSELECT

ONCS_Student

TO王平;

GRANTALLPRIVILIGES

ONCS_Student

TO张明;

4.4审计(Audit)

审计功能;把用户对数据库的所有操作自动记录下来放入审计日志(AuditLog)中。

DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

审计通常是很费时间和空间的,所以,审计功能一般主要用于安全性要求较高的部门。

审计一般可以分为用户审计和系统审计。

用户审计:

是任何用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,即;所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。

系统审计:

只能由DBA设置,用以监测成功或失败的登陆要求、监测GRANT和REVOKE操作以及其他数据库权限下的操作。

AUDIT语句用来设置审计功能,NOAUDIT语句取消审计功能.

1.对修改SC表结构或修改SC表数据的操作进行审计。

AUDITALTER,UPDATE

ONSC;

2.取消对SC标的一切审计。

NOAUDITALTER,UPDATE

ONSC;

审计设置以及审计内容一般都存放在数据字典中。

必须把审计开关打开(即把系统参数audit_trail设为true),才可以在系统表(SYS_AUDITTRAIL)中察看审计信息。

4.5数据加密

对于高度敏感性数据,例如财务数据、军事数据、国家机密,除以上安全性措施外,还可以采用数据加密技术。

加密方法只要有两种:

一种是替换方法,该方法使用密钥(Encryptionkey)将明文中的每一个字符转换为密文中的字符。

另一种是置换方法,该方法将明文的字符按不同的顺序重新排列。

单独使用这两种方法的任意一种都是不够安全的。

但是讲两种方法结合起来就能够提供相当的安全程度。

4.6统计数据库安全性

一般地,统计数据库允许用户查询聚集类型的信息(例如合计、平均值),但是不允许查询单个数据单个纪录。

例如,查询“程序员的平均工资是多少?

”是合法的,但是查询“程序员张勇的工资是多少?

”就不允许。

在统计数据库中存在着特殊的安全性问题,极可能存在着隐藏的信息通道,使得可以从合法的查询中推导出不合法的信息。

例如下面两个查询都合法的;

本公司共有多少女高级程序员?

本公司女高级程序员的工资总和是多少?

如果第1个查询的结果是“1”,那么第2个查询的结果显然就是这个程序员的工资.这样统计数据库的安全机制就失效了,为了解决这个问题,可以规定任何查询至少要设计N个以上的记录(N足够大)。

但是即使这样,还是存在另外的泄密途径,

另外还有其他一些方法用于解决统计数据库的安全问题,例如数据污染。

但是无论采用什么安全性机制,都仍然会存在绕过这些机制的途径。

好的安全性措施应该使得那些试图破坏安全的人所花费的代价远远超过他们所得到的利益,这也是整个数据库安全机制设计目标。

4.7小结

随着计算机特别是计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。

DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全机制。

计算机以及信息安全技术方面有一系列的安全标准,最有影响的当推TCSEC和CC。

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2