第四章 数据库安全性.docx
- 文档编号:25435572
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:17
- 大小:131KB
第四章 数据库安全性.docx
《第四章 数据库安全性.docx》由会员分享,可在线阅读,更多相关《第四章 数据库安全性.docx(17页珍藏版)》请在冰豆网上搜索。
第四章数据库安全性
数据库系统概论
AnIntroductiontoDatabaseSystem
第四章数据库安全性____学习笔记bydan.
大纲:
4.1计算机安全性概述
4.2数据库安全性控制
4.3视图机制
4.4审计(Audit)
4.5数据加密
4.6统计数据库安全性
4.7小结
问题的提出
数据库的一大特点是数据可以共享
数据共享必然带来数据库的安全性问题
数据库系统中的数据共享不能是无条件的共享
例:
军事秘密、国家机密、新产品实验数据、
市场需求分析、市场营销策略、销售计划、
客户档案、医疗档案、银行储蓄数据
4.1.1计算机系统的三类安全性问题
计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
三类计算机系统安全性问题
技术安全类
管理安全类
政策法律类
4.1.2安全标准简介
TCSEC标准
CC标准
TCSEC/TDI标准的基本内容
TCSEC/TDI,从四个方面来描述安全性级别划分的指标
安全策略
责任
保证
文档
TCSEC/TDI安全级别划分
按系统可靠或可信程度逐渐增高
各安全级别之间:
偏序向下兼容
B2以上的系统
还处于理论研究阶段
应用多限于一些特殊的部门,如军队等
美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准
CC
提出国际公认的表述信息技术安全性的结构
把信息产品的安全要求分为
安全功能要求
安全保证要求
CC文本组成
简介和一般模型
安全功能要求
安全保证要求
CC评估保证级划分
4.2数据库安全性控制概述
非法使用数据库的情况
编写合法程序绕过DBMS及其授权机制
直接或编写应用程序执行非授权操作
通过多次合法查询数据库从中推导出一些保密数据
计算机系统中,安全措施是一级一级层层设置
计算机系统的安全模型
数据库安全性控制的常用方法
用户标识和鉴定
存取控制
视图
审计
密码存储
用户标识与鉴别
(Identification&Authentication)
系统提供的最外层安全保护措施
用户标识
口令
系统核对口令以鉴别用户身份
用户名和口令易被窃取
每个用户预先约定好一个计算过程或者函数
4.2.2存取控制
存取控制机制组成
1)定义用户权限
2)合法权限检查
用户权限定义和合法权检查机制一起组成了DBMS的安全子系统
常用存取控制方法
1)自主存取控制(DiscretionaryAccessControl,简称DAC)
C2级
灵活
2)强制存取控制(MandatoryAccessControl,简称MAC)
B1级
严格
4.2.3自主存取控制方法
1、通过SQL的GRANT语句和REVOKE语句实现
2、用户权限组成
1)数据对象
2)操作类型
3、定义用户存取权限:
定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权
关系数据库系统中存取控制对象
4.2.4授权与回收
一、GRANT
GRANT语句的一般格式:
GRANT<权限>[,<权限>]...
[ON<对象类型><对象名>]
TO<用户>[,<用户>]...
[WITHGRANTOPTION];
语义:
将对指定操作对象的指定操作权限授予指定的用户
发出GRANT:
DBA
数据库对象创建者(即属主Owner)
拥有该权限的用户
按受权限的用户
一个或多个具体用户
PUBLIC(全体用户)
WITHGRANTOPTION子句:
指定:
可以再授予
没有指定:
不能传播
不允许循环授权
例题:
[例1]把查询Student表权限授给用户U1
GRANTSELECT
ONTABLEStudent
TOU1;
[例2]把对Student表和Course表的全部权限授予用户U2和U3
GRANTALLPRIVILIGES
ONTABLEStudent,Course
TOU2,U3;
[例3]把对表SC的查询权限授予所有用户
GRANTSELECT
ONTABLESC
TOPUBLIC;
[例4]把查询Student表和修改学生学号的权限授给用户U4
GRANTUPDATE(Sno),SELECT
ONTABLEStudent
TOU4;
(对属性列的授权时必须明确指出相应属性列名)
[例5]把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANTINSERT
ONTABLESC
TOU5
WITHGRANTOPTION;
(执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限。
)
[例6]GRANTINSERTONTABLESCTOU6
WITHGRANTOPTION;
同样,U6还可以将此权限授予U7:
[例7]GRANTINSERTONTABLESCTOU7;
但U7不能再传播此权限。
下表是执行了[例1]到[例7]的语句后,学生-课程数据库中的用户权限定义表
二、REVOKE
授予的权限可以由DBA或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
REVOKE<权限>[,<权限>]...
[ON<对象类型><对象名>]
FROM<用户>[,<用户>]...;
[例8]把用户U4修改学生学号的权限收回
REVOKEUPDATE(Sno)
ONTABLEStudent
FROMU4;
[例9]收回所有用户对表SC的查询权限
REVOKESELECT
ONTABLESC
FROMPUBLIC;
[例10]把用户U5对SC表的INSERT权限收回
REVOKEINSERT
ONTABLESC
FROMU5CASCADE;
将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回
系统只收回直接或间接从U5处获得的权限
执行[例8]到[例10]的语句后,学生-课程数据库中的用户权限定义表
小结:
SQL灵活的授权机制
1、DBA:
拥有所有对象的所有权限
不同的权限授予不同的用户
2、用户:
拥有自己建立的对象的全部的操作权限
GRANT:
授予其他用户
3、被授权的用户
“继续授权”许可:
再授予
4、所有授予出去的权力在必要时又都可用REVOKE语句收回
三、创建数据库模式的权限
DBA在创建用户时实现
CREATEUSER语句格式
CREATEUSER
[WITH][DBA|RESOURCE|CONNECT]
4.2.5数据库角色
1、数据库角色:
被命名的一组与数据库操作相关的权限
角色是权限的集合
可以为一组具有相同权限的用户创建一个角色
简化授权的过程
一、角色的创建
CREATEROLE<角色名>
二、给角色授权
GRANT<权限>[,<权限>]…
ON<对象类型>对象名
TO<角色>[,<角色>]…
三、将一个角色授予其他的角色或用户
GRANT<角色1>[,<角色2>]…
TO<角色3>[,<用户1>]…
[WITHADMINOPTION]
四、角色权限的收回
REVOKE<权限>[,<权限>]…
ON<对象类型><对象名>
FROM<角色>[,<角色>]…
[例11] 通过角色来实现将一组权限授予一个用户。
步骤如下:
1.首先创建一个角色R1
CREATEROLER1;
2.然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限
GRANTSELECT,UPDATE,INSERT
ONTABLEStudent
TOR1;
3.将这个角色授予王平,张明,赵玲。
使他们具有角色R1所包含的全部权限
GRANTR1
TO王平,张明,赵玲;
4.可以一次性通过R1来回收王平的这3个权限
REVOKER1
FROM王平;
[例12] 角色的权限修改
GRANTDELETE
ONTABLEStudent
TOR1
[例13]
REVOKESELECT
ONTABLEStudent
FROMR1;
自主存取控制缺点
1、可能存在数据的“无意泄露”
2、原因:
这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记
3、解决:
对系统控制下的所有主客体实施强制存取控制策略
强制存取控制(MAC)
1)保证更高程度的安全性
2)用户不能直接感知或进行控制
3)适用于对数据有严格而固定密级分类的部门
军事部门
政府部门
4)主体是系统中的活动实体
DBMS所管理的实际用户
代表用户的各进程
5)客体是系统中的被动实体,是受主体操纵的
文件
基表
索引
视图
6)敏感度标记(Label)
绝密(TopSecret)
机密(Secret)
可信(Confidential)
公开(Public)
7)主体的敏感度标记称为许可证级别(ClearanceLevel)
8)客体的敏感度标记称为密级(ClassificationLevel)
9)强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体
10)修正规则
主体的许可证级别<=客体的密级主体能写客体
11)规则的共同点
禁止了拥有高许可证级别的主体更新低密级的数据对象
MAC与DAC
1、DAC与MAC共同构成DBMS的安全机制
2、实现MAC时要首先实现DAC
原因:
较高安全性级别提供的安全保护要包含较低级别的所有保护
DAC+MAC安全检查示意图
先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。
4.3视图机制
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护
1)主要功能是提供数据独立性,无法完全满足要求
2)间接实现了支持存取谓词的用户权限定义
[例14]建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明
1)先建立计算机系学生的视图CS_Student
CREATEVIEWCS_Student
AS
SELECT*
FROMStudent
WHERESdept='CS';
2)在视图上进一步定义存取权限
GRANTSELECT
ONCS_Student
TO王平;
GRANTALLPRIVILIGES
ONCS_Student
TO张明;
4.4审计
什么是审计?
1、审计日志(AuditLog)
将用户对数据库的所有操作记录在上面
2、DBA利用审计日志
找出非法存取数据的人、时间和内容
3、C2以上安全级别的DBMS必须具有
4、审计分为
1)用户级审计
针对自己创建的数据库表或视图进行审计
记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作
2)系统级审计
DBA设置
监测成功或失败的登录要求
监测GRANT和REVOKE操作以及其他数据库级权限下的操作
AUDIT语句:
设置审计功能
NOAUDIT语句:
取消审计功能
[例15]对修改SC表结构或修改SC表数据的操作进行审计
AUDITALTER,UPDATE
ONSC;
[例16]取消对SC表的一切审计
NOAUDITALTER,UPDATE
ONSC;
4.5数据加密
1、数据加密
防止数据库中数据在存储和传输中失密的有效手段
2、加密的基本思想
3、加密方法
替换方法
置换方法
混合方法
4、DBMS中的数据加密
4.6统计数据库安全性
1、统计数据库
允许用户查询聚集类型的信息(如合计、平均值等)
不允许查询单个记录信息
2、统计数据库中特殊的安全性问题
隐蔽的信息通道
能从合法的查询中推导出不合法的信息
规则1:
任何查询至少要涉及N(N足够大)个以上的记录
规则2:
任意两个查询的相交数据项不能超过M个
规则3:
任一用户的查询次数不能超过1+(N-2)/M
3、数据库安全机制的设计目标:
试图破坏安全的人所花费的代价>>得到的利益
4.7小结
1)数据的共享日益加强,数据的安全保密越来越重要
2)DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制
3)TCSEC和CC
4)实现数据库系统安全性的技术和方法
存取控制技术
视图技术
审计技术
5)自主存取控制功能
通过SQL的GRANT语句和REVOKE语句实现
6)角色
使用角色来管理数据库权限可以简化授权过程
CREATEROLE语句创建角色
GRANT语句给角色授权
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 数据库安全性 第四 数据库 安全性