第二话:安全
1. 不安全因素
第二话我们来看数据库的安全问题,讨论数据库的安全性之前我们先看数据库的不安全因素,可以归为三类:
- 非授权者的访问
- 存储和传输的泄露
- 安全环境的脆弱
针对第三点 “安全环境的脆弱性” ,我们制定了安全标准来保障。
2. 安全标准
- 1991年 TCSEC/TDI标准
- 1999年 CC标准
2.1 TDI 标准
级别【上者为高】 | 特点 | 解述 |
---|---|---|
A-1 | 验证设计 | 在B3的基础上给出系统形式化设计的验证和证明 |
B-3 | 安全域 | 提供系统恢复功能 |
B-2 | 结构化 | 建立安全策略模型,对所有的系统主体客体都实行【MAC】和【DAC】 |
B-1 | 标记安全 | 对系统资源进行标记,从而实现对系统资源的审计和资源隔离存取控制等【MAC】 |
C-2 | 受控的存取 | 对用户个体实现审计和资源隔离,比如:Windows 2000 |
C-1 | 自主保护 | 可实现对用户和数据的分离,能够自主存取控制【DAC】 |
D | 无/最小保护 | 不符合C-1标准的都是D标准,比如:Dos系统 |
2.2 CC 标准
EAL1-EAL2-EAL3-…EAL7
低------------------------------高
3. 数据库安全机制
在计算机系统中安全措施是一层层实施的,数据库的安全机制在os安全机制的上面,数据库安全性控制的常用手段:
- 用户身份鉴别
- 存取控制
- 视图
- 审计
- 数据加密
SQL层的多级访问策略:
3.1 用户身份鉴别机制
用户标识:用户ID+用户标识号(当前系统周期内是唯一的)
3.2 存取控制机制
权限:用户对于数据对象的操作权叫做权限
存取机制中把用户权限登记到数据字典里面,每当用户发出存取数据库的操作请求的时候都会进行合法性检测
用户权限定义和合法性检查组成了DBMS的存取控制子系统
3.3 自主存取控制机制 DAC
- 用户对于不同的数据对象有不同的权限
- 用户可以把存取权限转授权给其他用户
在关系数据库里面的存取控制对象如下:
数据对象类型 | 对象 | 存取操作权限 |
数据库模式 | 模式 | create schema |
基本表 | create table; alert table | |
视图 | create view | |
索引 | create index | |
数据 | 基本表和视图 | select; insert; update; references; all privileges; delete |
属性列 | select; insert; update; references; all privileges |