第四章 数据库安全性
一:数据库安全性
1:问题的提出
1:数据库的一大特点是数据可以共享
2:数据共享必然带来数据库的安全性问题
3:数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据
2.非授权用户对数据库的恶意存取和破坏
1:一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。
2:数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。
3.数据库中重要或敏感的数据被泄露
1:黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。
2:数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。
3:审计日志分析
4..安全环境的脆弱性
1:数据库的安全性与计算机系统的安全性紧密联系
2:计算机硬件、操作系统、网络系统等的安全性
3:建立一套可信(Trusted)计算机系统的概念和标准
二: 数据库安全性控制
1:非法使用数据库的情况
1.编写合法程序绕过数据库管理系统及其授权机制
2.直接或编写应用程序执行非授权操作
3.通过多次合法查询数据库从中推导出一些保密数据
4.计算机系统中,安全措施是一级一级层层设置
2:存取控制流程
1.首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。
2.然后,在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。
3.还可以对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测。
3:数据库安全性控制的常用方法
1.用户标识和鉴定
2.存取控制
3.视图
4.审计
1.数据库的不安全因素:非授权用户对数据库的恶意存取和破坏;数据库中重要或敏感数据的泄露;安全环境的脆弱性。
2.权限的授权和回收
例题1:把查询Student表的权限授权给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
例题2:把Student和Course表的所有操作权限授权给U1,U2
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U1,U2;
例题3:把对表SC的查询权限授权给所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
例题4:把查询Student和修改学生学号的权限授权给U3
GRANT SELECT,UPDATE(Sno)
ON TABLE Student
TO U3;
例题5:将SC表的插入权限授予U4,并允许U4再将权限授予别人
GRANT INSERT
ON TABLE SC
TO U4
WITH GRANT OPTION;
例题6:把用户U3修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U3;
例题7:回收所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例题8:把用户U4以及被U4授权过的用户对表SC的插入权限收回
REVOKE INSERT
ON TABLE SC
FROM U4 CASCADE;
例题9:通过创建角色来实现一组权限的授予
//先创建角色
CREATE ROLE R1;
//授予R1对SC表的SELECT,UPDATE,INSERT权限
GRANT SELECT,UPDATE,INSERT
ON TABLE SC
TO R1;
//授予王平和张明R1的权限
GRANT R1
ON TABLE SC
TO 王平,张明;
//一次性回收张明的权限
REVOKE R1
FROM 张明;
3.主体的敏感度标记成为许可证级别(clearance level),客体的敏感度级别称为密级(classification level),当一个主体要访问一个客体时,当前仅当满足:
1)主体的许可证级别大于或等于客体时才有读取客体信息的权限
2)主体的许可证级别小于或等于客体时才有在客体写入信息的权限
4.审计:审计机制把用户对数据库的所有操作自动记录下来放入审计日志(audit log)中。审计员可以利用审计日志中的记录监控数据库中各种行为,重现导致数据库现状的一系列事件,找出非法存取数据的人,时间和内容等。
例题1:对修改SC表的结构或修改SC表数据的操作进行审计
AUDIT ALTER,UPDATE
ON SC;
例题2:取消对SC表的一切审计
NOAUDIT ALTER,UPDATE
ON SC;
5.数据加密包括:存储加密,传输加密
6.其他安全性保护:推理控制(inference control),隐蔽信道(covert channal),数据隐私(data privacy)