背景
在之前提到过,数据库的特点之一是数据库管理系统统一的数据保护功能来保证数据的安全可靠和正确有效。数据库的数据保护主要包括数据的安全性和完整性。
一、数据库安全性概述
不完全的因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中最要或敏感的数据被泄漏
- 安全环境的脆弱性
安全标准
从4个方面来描述安全性级别划分的指标,即安全策略、责任、保证和文档
二、数据库安全性控制
在一般计算机系统中,安全措施是一级一级层层设置的。数据库有关的安全性主要包括用户身份鉴别、多层存取控制、审计、视图和数据加密安全技术
用户身份鉴别
- 静态口令鉴别
- 动态口令鉴别
- 生物特征鉴别
- 智能卡鉴别
存取控制
主要包括定义用户权限和合法权限检查两个部分,这个两个部分机制一起组成了数据库管理系统的存取控制子系统,C2级的支持自主存取控制,B1级的支持强制存取控制
- 自主存取控制:用户对不同的数据库对象有不同的权限,不同的用户对同一数据库对象也有不同的权限,而且还可以转授予其他用户。
- 强制存取控制
授权
用户权限是由2个要素组成的:数据库对象和操作类型。定义存取权限就称为授权。
- GRANT: GRANT <权限> [,<权限>]... ON <对象类型> <对象名> [,<对象类型> <对象名> ]... TO <用户> [,<用户>]...[WITH GRANT OPTION],其中WITH GRANT OPTION表示可以传播权限
- REVOKE: REVOKE <权限> [,<权限>]... ON <对象类型> <对象名> [,<对象类型> <对象名> ]... FROM <用户> [,<用户>]... [CASCADE|RESTRICT]
- 创建数据模式的权限:CREATE USER
[WITH][DBA|RESOURCE|CONNECT]
数据库角色
是被命名的一组与数据库操作相关的权限,角色是权限的集合
- 创建: CREATE ROLE
- 授权:GRANT <权限> [,<权限>]... ON <对象类型> <对象名> [,<对象类型> <对象名> ]... TO
- 授予其他角色:GRANT <角色1> [,<角色2>]... TO <角色3> [WITH ADMIN OPTION] ,其中WITH ADMIN OPTION表示可以传播
- 收回:REVOKE <权限> [,<权限>]... ON <对象类型> <对象名> [,<对象类型> <对象名> ]... FROM <角色> [,<角色>]...
强制存取控制
在强制存取控制中,数据管理系统所管理的全部实体被分为主体和客体两大类。对于主体和客体系统为他们的每个实例指派一个敏感度标记。
- 主体:系统中的活动实体,既包括数据库管理系统所管理的实际用户,也包括代表用户的各进程。
- 客体:系统中被动的被动实体,是收主体操纵的,包括文件、基本表、索引和视图等。
- 敏感度标记被分为若干级别,绝密Top、机密secret、可信C、公开P
- 存取规则:仅当主体的许可证级别大于或者等于客体的密级时,主才能读客;仅当主体的许可证级别小于或者等于客体的密级时,主才能写客(如果违反,可能把数据的密级又高流到低)
三、视图机制
为不同用户定义不同的视图,把数据对象限制在一定的范围内。
四、审计
审计功能把用户对数据的所有操作自动记录下来放入审计日志中,审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状态的一系列事件,找出非法存取数据的人,时间和内容等。审计是很费时间和空间的,一般为可选特征。
- 审计事件:服务器事件,系统权限、语句事件和模式对象事件
- 审计功能:基本功能,审计分析,报表功能,日志管理功能
- AUDIT和NOAUDIT
五、数据加密
根据一定的算法将原始数据-明文(plain text)变换为不可加密识别的格式-密文(cipher text)。
- 存储加密
- 传输加密
##六、其他安全性保护
- 推理控制
- 隐蔽信道
- 数据隐私