背景:数据库的一大特性就是数据共享,这样我们就不能不考虑数据库的安全性问题。
1.数据库的不安全因素
1.1非授权用户对数据库的恶意存取和破坏
- 一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户 口令,然后假冒合法用户偷取、修改甚至破坏用户数据。
- 数据库管理系统提供的安全措施主要包括
- 用户身份鉴别
- 存取控制
- 视图等技术
1.2数据库中重要或敏感的数据被泄露
- 黑客和敌对分子千方百计盗窃数据库中的重要数据
- 一些机密信息被暴露
- 数据库管理系统提供的主要技术有
- 强制存取控制
- 数据加密存储
- 加密传输
- 审计日志分析
1.3安全环境的脆弱性
- 数据库的安全性与计算机系统的安全性紧密联系
- 计算机硬件、操作系统、网络系统等的安全性
- 建立一套可信(Trusted)计算机系统的概念和标准
2.安全标准简介
2.1信息安全标准的发展历史
2.2TCSEC/TDI安全级别划分
3.数据库安全性控制概述
3.1非法使用数据库的情况
- 用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接 存取、修改或备份数据库中的数据;
- 直接或编写应用程序执行非授权操作;
- 通过多次合法查询数据库从中推导出一些保密数据;
- 破坏安全性的行为可能是无意的,故意的,恶意的。
3.2计算机系统中,安全措施是一级一级层层设置
- 系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统
- 数据库管理系统还要进行存取控制,审计,视图,只允许用户执行合法 操作
- 操作系统有自己的保护措施
- 数据以密码形式存储到数据库中
3.3用户标识与鉴别
- 1.静态口令鉴别
- 静态口令一般由用户自己设定,这些口令是静态不变的(自己设置的密码)
- 2.动态口令鉴别
- 口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理 系统,即采用一次一密的方法(手机验证码)
- 3.智能卡鉴别
- 智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
- 4.生物特征鉴别
- 通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
3.4存取控制
3.4.1存取控制机制的功能
确保只授权给有资格的用户访问数据库的权限
3.4.2存取控制机制的组成
3.4.3权限的种类
- 维护数据库管理系统的权限
- 操作数据库对象和数据的权限
3.4.4用户(即合法用户)按操作权限分
- 数据库系统管理员
- 数据库对象拥有者
- 普通用户
4.常用存取控制方法
自主存取控制(Discretionary Access Control ,简称DAC)
- C2级、 灵活
- 用户对不同的数据对象有不同的存取权限
- 不同的用户对同一对象也有不同的权限
- 用户还可将其拥有的存取权限转授给其他用户
强制存取控制(Mandatory Access Control,简称 MAC)
- B1级、严格
- 每一个数据对象被标以一定的密级
- 每一个用户也被授予某一个级别的许可证
- 对于任意一个对象,只有具有合法许可证的用户才可以存取
4.1自主存取控制方法
可以通过通过 SQL 的GRANT 语句和REVOKE 语句实现。
用户权限组成
- 数据对象
- 操作类型
定义用户存取权限
- 定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权
4.1.1grant语句
授权 GRANT语句的一般格式:
(例一)把查询Student表权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
(例二)把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES
ON TABLE Student, Course
TO U2, U3;
(例三)把对表SC的查询权限授予所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
(例四)把查询Student表和修改学生学号的权限授给用户U4
GRANT UPDATE(Sno), SELECT
ON TABLE Student
TO U4;
对属性列的授权时必须明确指出相应属性列名
(例五)把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予 其他用户
GRANT INSERT
ON TABLE SC
TO U5 WITH GRANT OPTION;
U5可以传播此权限:
GRANT INSERT ON TABLE SC TO U6
WITH GRANT OPTION;
U6可以传播此权限:
GRANT INSERT ON TABLE SC TO U7;
U5--> U6--> U7,但U7不能再传播此权限
例:在数据库的安全性控制中,授权的数据对象的____C_____,授权子系统 就越灵活。
(A)范围越大
(B)约束范围大
(C)范围越小
(D)约束越细致
4.1.2SQL收回权限的功能
例:把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
例:收回所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例:把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;
系统将收回直接或间接从U5处获得的对SC表的INSERT权限
收回U6、U7获得的对SC表的INSERT权限:
<--U5<-- U6<-- U7
4.1.3数据库角色
- 数据库角色是被命名的一组与数据库操作相关的权限
- 角色是权限的集合
- 创建角色
- CREATE ROLE <角色名>
- 给角色授权
- GRANT <权限组> <对象> ON TO <角色组>
- 将一个角色授予其他的角色或用户
- 角色权限的回收
例:安全性控制的防范对象是?防止他们对数据库数据的存取。
答:非法非授权用户
4.2强制存取控制方法(MAC)
MAC适用于对数据有严格而固定密级分类的部门 ,如军 事部门、 政府部门
主体与客体:
- 主体 是系统中的活动实体
- 数据库管理系统所管理的实际用户
- 代表用户的各进程
- 客体 是系统中的被动实体,是受主体操纵的
- 文件、 基表、 索引、 视图
4.2.1敏感度标记
敏感度标记分成若干级别
- 绝密(Top Secret,TS)
- 机密(Secret,S)
- 可信(Confidential,C)
- 公开(Public,P)
主体——许可证级别
客体——密级
对于任意一个对象,只有具有合法许可证的用户才可以存取
4.2.2强制存取控制规则
- 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取 相应的客体;
- 主体的许可证级别 <=客体的密级,主体能写客体,用户可为写入的 数据对象赋予高于自己的许可证级别的密级,一旦数据被写入,该用户 自己也不能再读该数据对象了。
5.视图机制
- 视图机制通过为不同用户定义不同视图,把数据对象限制在一定 的范围内
- 视图机制把要保密的数据对无权存取这些数据的用户隐藏起来, 从而自动对数据提供一定程度的安全保护
- 视图机制更主要的功能在于提供数据独立性,其安全保护功能太 不精细,往往远不能达到应用系统的要求。
6.审计
启用一个专用的审计日志(Audit Log),将用户对数据库的所有操作记录在上面。DBA可以利用审计日志中的追踪信息,找出非法存取数据的人。C2以上安全级别的DBMS必须具有审计功能