第四章数据库的安全性.docx
- 文档编号:14436439
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:14
- 大小:30.93KB
第四章数据库的安全性.docx
《第四章数据库的安全性.docx》由会员分享,可在线阅读,更多相关《第四章数据库的安全性.docx(14页珍藏版)》请在冰豆网上搜索。
第四章数据库的安全性
第四章数据库的安全性
4.1计算机安全性概述1
4.1.1计算机系统的三类安全性问题1
4.2数据库安全性控制2
4.2.1用户标识与鉴别(Identification&Authentication)2
4.2.2存取控制3
4.2.3自主存取控制(DAC)方法3
4.2.4授权(Authorization)与回收4
GRANTSELECT5
4.2.5数据库角色7
4.2.6强制存取控制(MAC)方法8
4.3视图机制9
4.4审计(Audit)10
4.5数据加密10
4.6统计数据库安全性11
4.7小结11
数据库的特点之一:
数据是由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。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 数据库 安全性