一、数据库的不安全因素
① 非授权用户对数据库的恶意存取和破坏
② 数据库中重要或敏感的数据被泄露
③ 安全环境的脆弱性
二、 安全标准简介
CC(Common Criteria):2008年,CC V3.1 ISO/IEC15408-2008
CC评估等级分为EAL1、EAL2、EAL3、EAL4、EAL5、EAL6和EAL7共七个等级,等级越高,表示通过认证需要满足的安全保证要求越多,系统的安全特性越可靠。
国际标准化组织(International Organization for Standardization,ISO)
三、用户身份鉴别
① 静态口令鉴别
静态口令一般由用户自己设定,这些口令是静态不变的(例如自己设置的各种登陆密码即静态口令)
② 动态口令鉴别
口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法(例如有的地方每次登陆需要手机短信验证,每次发的验证码就是动态口令~)
③ 生物特征鉴别
通过生物特征进行认证的技术,生物特征如人脸、指纹等(现在这个技术比较普遍啦,很多智能手机上都有指纹识别和人脸识别)
④ 智能卡鉴别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能(例如:IC银行卡,IC卡是以芯片作为介质的银行卡,与磁条卡相比,芯片卡安全性高,卡内敏感数据难以被复制)
三、存取控制
存取控制机制组成:
- 定义用户权限 DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则
- 合法权限检查****用户发出存取数据库操作请求,DBMS查找数据字典,进行合法权限检查
关系数据库系统中存取控制对象:
四、授权与回收
权限授予:GRANT
权限回收:REVOKE
创建数据库模式的权限
GRANT 和 REVOKE 语句向用户授予或收回对数据的操作权限。对创建数据库模式一类的数据库对象的授权则由数据库管理员在创建用户时实现。
五、数据库角色
数据库角色:被命名的一组与数据库操作相关的权限,角色是权限的集合。因此可以为一组具有相同权限的用户创建一个角色来简化授权的过程。
在 SQL 中首先用 CREATE ROLE 语句创建角色,然后用 GRANT 语句给角色授权,用REVOKE 语句收回授予角色的权限。
六、强制存取控制方法
自主存取控制缺点: 可能存在数据的“无意泄露”
原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记
(自主存取控制能够通过授权机制有效地控制其他用户对敏感数据的存取。但是由于用户对数据的存取权限是“自主”的,用户可以自由地决定将数据的存取权限授予何人、决定是否也将“授权”的权限授予别人。在这种授权机制下,仍可能存在数据的“无意泄露”)
解决:对系统控制下的所有主客体实施强制存取控制策略
强制存取控制(MAC):
· 保证更高程度的安全性
· 用户不能直接感知或进行控制
· 适用于对数据有严格而固定密级分类的部门:军事部门、政府部门
七、视图机制
通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护。
八、审计
什么是审计:
审计日志(Audit Log): 将用户对数据库的所有操作记录在上面(就像记录流水账一样的)
审计员利用审计日志:
监控数据库中的各种行为
找出非法存取数据的人、时间和内容。
九、数据加密
数据加密: 防止数据库中数据在存储和传输中失密的有效手段
加密的基本思想: 根据一定的算法将原始数据—明文(Plain text)变换为不可直接识别的格式—密文(Cipher text)
加密方法: ①存储加密 ②传输加密