基础篇——6.安全性
1 数据库安全性概述
1.1 数据库的不安全因素
- 非授权用户对数据库恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
1.2 安全性标准
通用准则 CC Common Criteria
- D 最低级别DOS
- C1 初级的自主安全保护,能够实现用户和数据的分离,进行自主存取控制DAC,保护或限制用户权限的传播。
- C2 安全产品最低档。提供受控的存取控制。Windows2000,Oracle7
- B1 标记安全保护,对系统的数据加以标记,并对标记的主体和客观实体实行强制存取控制。MAC以及审计等安全机制。是真正意义上的安全产品
- B2 结构化保护。建立形势话的安全策略模型,并对系统内的所有主体和客体实施DAC和MAC。
- B3 安全域。TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。
- A1 验证设计。提供B3级保护,并且,给出系统的形式化设计说明和验证。
2 数据库安全性控制
用户身份鉴别、多层存取控制、审计、视图、数据加密
2.1 用户身份鉴别
- 静态口令鉴别
- 动态口令鉴别
- 生物特征鉴别
- 智能卡鉴别
2.2 存取控制
简介
存取控制主要包括定义用户权限和合法权限检查两部分
- 定义用户权限,并将用户权限登记到数据字典当中。安全规则或授权规则
- 合法权限检查,当用户发出存取数据库的操作请求后,数据库管理系统查找数据字典,根据安全规则进行合法权限检查。
自主存取控制DAC
在自主存取控制方法中,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一存取对象也有不同的权限,而且用户还可以将其拥有的存取权限转手给其他用户。
用户权限组成:数据库对象和操作类型。数据库对象包括数据库基本对象和数据库数据对象。定义存取权限称为授权。
1. 权限类型
| 对象类型 | 对象 | 操作类型 |
|---|---|---|
| 基本对象 | 模式 | CREATE |
| 基本表 | CREATE,ALTER | |
| 视图 | CREATE | |
| 索引 | CREATE | |
| 数据对象 | 基本表和视图 | SELECT,INSERT,UPDATA,DELETE,REFERENCES,ALL PRIVILEGES |
| 属性列 | SELECT,INSERT,UPDATE,REFERENCES,ALL PRIVILEGES |
2. 授权-数据对象权限
1 | GRANT <操作权限>,... |
将制定对象的制定操作权限授予制定用户。具有授权资格的角色:数据库管理员、数据对象的创建者、已经拥有该权限的用户。WITH GRANT OPTION获得这个权限的用户已能够继续授权给其他用户。
3. 收回-数据对象权限
1 | REVOKE <权限>,... |
用户可以自主决定将数据存取全向授予何人。所以称为自主存取控制。
4. 创建权限-基本对象权限(模式对象权限)
1 | CREATE USER <username> |
- 只有系统的超级用户有权创建一个新的用户。
- 新创建的数据库用户有三种权限CONNECT/RESOURCE/DBA
- 没有指定,默认是CONNECT权限
- 每个权限的基本说明:……
5. 数据库角色
定义:数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
1 | # 1. 角色创建 |
强制存取控制MAC
在强制存取控制方法中,每一个数据库对象别标以一定的密级,每一个用户也被授予一个几倍的许可证。对于任意对象,只有具有合法许可证的用户才可以存取。相对比较严格。
2.3 视图机制
为不同的用户定义不同的视图,把数据对象限制在一定的范围内。通过视图机制,把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。
1 | CREATE VIEW CS_Student |
2.4 审计
审计功能把用户对数据库的所有操作自动记录下来放入审计日志。审计员利用甚至日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容。
- 审计事件
- 审计功能
- AUDIT语句和NOAUDIT语句
2.5 数据加密
根据一定的算法将原始数据——明文,变换为不可直接识别的格式——密文。从而使不知道解密算法的人无法获知数据内容。
- 存储加密
- 传输加密
2.6 其他安全性保护
推理控制
隐蔽信道
数据隐私保护
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!




