4.1数据库安全性概述
4.1.1数据库不安全因素
4.1.2安全标准简介
4.2数据库安全性控制
4.2.1用户身份鉴别
4.2.2存取控制
4.2.3自主存取控制方法
4.2.4授权:授予与收回
4.2.5数据库角色
4.2.6强制存取控制方法
4.3视图机制
4.4 审计
4.5数据加密
4.6其他安全性保护
4.1数据库安全性概述
数据库的安全性是指保护数据库以防止不合法使用所造成的的数据泄漏、更改或破坏
4.1.1数据库不安全因素
1非授权用户对收据库的恶意存取和破坏,比如黑客盗取用户密码进行修改数据等
2数据库中重要或敏感的数据被泄露,比如黑客窃取某市机密文件
3安全环境的脆弱性
4.1.2安全标准简介
计算机以及信息安全技术最有影响的两个标准是什么?
TCSEC(桔皮书)和CC
从哪几个方面来描述安全性级别划分指标?
从安全策略、责任、保证和文档4个方面
根据计算机系统对各项指标的支持情况,TCSEC/TDI(紫皮书)将系统划分为4组7个等级,如下表格所示:
安全级别 | 定义 |
A1 | 验证设计 |
B3 | 安全域 |
B2 | 结构化保护 |
B1 | 标记安全保护 |
C2 | 受控的存取保护 |
C1 | 自主安全保护 |
D | 最小保护 |
其中,C1级能够进行自主存取控制(DAC),B1级能够实施强制存取控制(MAC)
CC评估保证级(EAL)的划分如下表格所示:
评估保证级 | 定义 | TCSEC安全级别(近似相当) |
EAL1 | 功能测试 |
EAL2 | 结构测试 | C1 |
EAL3 | 系统地规划和检查 | C2 |
EAL4 | 系统地设计、测试和复查 | B1 |
EAL5 | 半形式化设计和测试 | B2 |
EAL6 | 半形式化验证的设计和测试 | B3 |
EAL7 | 形式化验证的设计和测试 | A1 |
4.2数据库安全性控制
4.2.1用户身份鉴别
用户身份鉴别是数据库管理系统提供的最外层安全保护措施。每个用户在系统中都有一个用户标识。每个用户标识由用户名user name和用户标识号UID两部分组成,UID在系统的整个生命周期内是唯一的。
常用的用户鉴别方式有以下几种:
1静态口令鉴别
简单的说就是输入QQ号和QQ密码,为什么是静态?QQ号和QQ密码是不会变化的
2动态口令鉴别
就是现在你要登陆CSDN,你可以通过短信验证码来登陆,这个短信验证码是不断变化的,所以是动态的
3生物特征鉴别
参考扫脸支付
4智能卡鉴别
某集团总裁刷黑卡验证自己的身份,吓坏服务员
4.2.2存取控制
目的:确保访问数据库的用户都是有资格的
存取控制机制主要包括定义用户权限和合法权限检查两部分
定义用户权限和合法权限检查机制一起组成了数据库管理系统的存取控制子系统
4.2.3自主存取控制方法
用户权限是由两个要素组成的:数据库对象和操作类型
在数据库系统中定义存取权限称为授权authoriaztion
在关系数据库系统中,存取控制的对象不仅有数据本身(基本表中的数据、属性列上的数据),还有数据库有模式(包括模式、基本表、视图和索引的创建等)如下表所示存取权限
对象类型 | 对象 | 操作类型 |
数据库模式 | 模式 | CREATE SCHEMA |
- | 基本表 | CREATE TABLE,ALTER TABLE |
- | 索引 | CREATE INDEX |
数据 | 基本表和视图 | SELECT,INSERT,UPDATE,DELETE,REFERENCE,ALL PRIVILEGES |
- | 属性列 | SELECT,INSERT,UPDATE,REFERENCE,ALL PRIVILEGES |
4.2.4授权:授予与收回
1授权GRANT
一般语句格式为
GRANT<权限>,[<权限>]…
ON<对象类型><对象名>[,<对象类型><对象名>]…
TO<用户>[,<用户>]
[WITH GRANT OPTION]
带有with grant option则某获得此权限的用户可以把权限再赋予其他人,但是其他人不能赋回给授权人
2收回REVOKE
REVOKE<权限>,[<权限>]…
ON<对象类型><对象名>[,<对象类型><对象名>]…
FROM<用户>[,<用户>]…
[CASCADE|RESTRICT]
CASCADE为级联,即如果把x把权限授予给y,在收回x的权限的同时也会把y的收回
3创建数据库模式的权限
CREATE USER语句一般格式如下:
CREATE USER[WITH][DBA|RESOURCE|CONNECT]
4.2.5数据库角色
1角色的创建
CREATE ROLE<角色名>
2给角色授权
GRANT<权限>[,<权限>]…
ON<对象类型>对象名
TO<角色>[,<角色>]…
3将一个角色授予给其他的角色或用户
GRANT<角色1>[,<角色2>]…
TO<角色3>[,<用户1>]…
[WITH ADMIN OPTION]
4角色权限的收回
REVOKE<权限>[,<权限>]…
ON<对象类型><对象名>…
FROM<角色>[,<角色>]…
4.2.6强制存取控制方法
在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
主体是活动的实体,包括用户,用户的进程。客体是被动实体,受主体操控的,即文件,基本表等。数据库管理系统为每个实例分配了一个敏感度标记
敏感度标记分为若干级别,例如绝密TS,机密S,可信C,公开P
密级的次序是TS>=S>=C>=P
强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性
4.3视图机制
视图机制简单来说就是为每一个不同的用户都有不同的视图,把要保密的数据隐藏起来,比如大学计算机老师只能查看到计算机学生的视图,系主任可以查看计算机学生,软件工程学生等学生的视图
4.4 审计
审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。审计员可以利用审计日志监控数据中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容。
AUDIT和NOAUDIT语句用来设置审计功能和取消审计功能
4.5数据加密
加密就是把明文变为密文
1存储加密
2传输加密
4.6其他安全性保护
1推理控制机制inference control是用来避免用户利用其能够访问的数据推知更高密级的数据
例如有A和B相同等级的职员,A的工资是3千块,因为A的等级比较低,不知道其他用户的工资,但通过和B接触,得知B的工资是3千块,所以A得出了同等级的职员的工资都是3千块,这就获取了更高级的机密
2隐蔽通道covert channal处理内容也是强制存取控制未解决的问题
例如A和B,A的等级较高,B的等级较低,两个人通过一条信道进行交流,当A发生信息后,信道塞满,则B发送不了信息,B发送的时候显示出错,这时候B就知道了A发送了信息(相当于逆推),这就导致了高等级的信息向低等级的信息泄露了
3数据隐私data privacy,控制不愿被他人知道或他人不便知道的个人数据的能力
一般通过数据库的安全技术实现
笔记使用教材:《数据库系统概论》 王珊 萨师煊 编著
视频课:中国大学MOOC 中国人民大学 数据库系统概论