第4章 数据库安全性
1. 什么是数据库的安全性? 答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 2. 数据库安全性和计算机系统的安全性有什么关系?
答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。 系统安全保护措施是否有效是数据库系统的主要指标之一。
数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
3. 试述信息安全标准的发展历史,试述CC评估保证级划分的基本内容。 1993年加拿大可信 计算机产品评估准 则(CTCPEC) 1985 年美国国防部可信计算机系统评 估准则(TCSEC) 1991年欧洲信息技术安全评估准则(ITSEC) 通用准则(CC)V1.0 1996年 V2.0 1998年 V2.1 1999年 1999年CC V2.1成为国际标准 (ISO 15408) 1993年美国信息技术安全联邦标准(FC)草案 TCSEC又称桔皮书 TCSEC/TDI又称紫皮书 信息安全标准的发展简史 2001年CC V2.1被我国采用为国家标准 评估保证级 EAL1 EAL2 EAL3 EAL4 EAL5 EAL6 EAL7 定义 功能测试 结构测试 系统地测试和检查 系统地设计、测试和复查 半形式化设计和测试 半形式化验证的设计和测试 半形式化验证的设计和测试 TCSEC安全级别 (近似相当) C1 C2 B1 B2 B3 A1 CC评估保证级(EAL)的划分
4. 试述实现数据库安全性控制的常用方法和技术。 答:实现数据库安全性控制的常用方法和技术有:
1) 用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用
户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 2) 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有
未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。 3) 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐
藏起来,从而自动地对数据提供一定程度的安全保护。
4) 审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA
可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 5) 数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知
数据的内容。
5. 什么是数据库中的自主存取控制方法和强制存取控制方法?
答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
6. 对下列两个关系模式使用GRANT语句完成下列授权功能:
学生(学号,姓名,年龄,性别,家庭住址,班级号) 班级(班级号,班级名,班主任,班长)
1) 授予用户U1对两个表的所有权限,并可给其他用户授权。
GRANT ALL PRIVILEGES ON TABLE学生,班级 TO U1 WITH GRANT OPTION ; 2) 授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。
GRANT SELECT,UPDATE(家庭住址) ON TABLE学生 TO U2; 3) 将对班级表查看权限授予所有用户。
GRANT SELECT ON TABLE 班级 TO PUBLIC;
4) 将对学生表的查询、更新权限授予角色R1。
CREATE ROLE R1;
GRANT SELECT,UPDATE ON TABLE 学生 TO R1;
5) 将角色R1授予用户U1,并且U1可继续授予给其他角色。
GRANT R1 TO U1 WITH ADMIN OPTION;//权限取消不级联
7. 有以下两个关系模式,请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下
授权定义或存取控制功能:
职工(职工号,姓名,年龄,职务,工资,部门号) 部门(部门号,名称,经理名,地址,电话号) 1) 用户王明对两个表有SELECT权限。
GRANT SELECT ON TABLE职工,部门 TO 王明; 2) 用户李勇对两个表有INSERT和DELETE权限。
GRANT INSERT,DELETE ON TABLE 职工,部门 TO 李勇; 3) 每个职工只对自己的记录有SELECT权限。
GRANT SELECT ON TABLE职工 WHEN USER()=NAME TO ALL; 4) 用户刘星对职工表有SELECT权限,对工资字段具有更新权限。
GRANT SELECT,UPDATE(工资) ON TABLE 职工 TO 刘星; 5) 用户张新具有修改这两个表的结构的权限。
GRANT ALTER TABLE ON TABLE职工,部门 TO 张新;
6) 用户周平具有对两个表的所有权限(读、插、改、删数据),并有给其他用户授权
的权限。
GRANT ALL PRIVILIGES ON TABLE 职工,部门 TO 周平 WITH GRANT OPTION;
7) 用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,
她不能查看每个人的工资。 CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门
WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号;
GRANT SELECT ON 部门工资 TO 杨兰;
8. 针对习题7 中1)~7)的每一种情况,撤销各用户所授予的权限。
1) REVOKE SELECT ON TABLE职工,部门 FROM 王明;
2) REVOKE INSERT , DELETE ON TABLE职工,部门 FROM 李勇; 3) REOVKE SELECT ON TABLE职工WHEN USER ( ) =NAMEFROM ALI; 4) REVOKE SELECT , UPDATE ON TABLE职工FROM 刘星; 5) REVOKE ALTER TABLE ON TABLE职工,部门FROM 张新; 6) REVOKE ALL PRIVILIGES ON TABLE职工,部门FROM 周平; 7) REVOKE SELECT ON TABLE部门工资FROM 杨兰;
DROP VIEW 部门工资;
9. 理解并解释MAC 机制中主体、客体、敏感度标记的含义。
答:主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。
客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。 对于主体和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。 敏感度标记被分成若干级别,例如绝密(Top Secret,TS)、机密(Secret,S)、可信( Confidential,C )、公开(Public,P )等。主体的敏感度标记称为许可证级别(clearance level ) ,客体的敏感度标记称为密级(classification level )。 10. 举例说明强制存取控制机制是如何确定主体能否存取客体的。
假设要对关系变量S进行MAC控制,为简化起见,假设要控制存取的数据单位是元组,则每个元组标以密级,如下表所示: S# S1 S2 S3
假设用户U1和U2的许可证级别分别为3和2,则根据规则U1能查得元组S1和S2,可修改元组S2;而U2只能查得元组S1,只能修改元组S1。
这里假设系统的存取规则是:
(1)仅当主体的许可证级别大于或等于客体的密级时才能读取相应的客体;
SNAME Smith Jones Clark STATUS 20 10 20 CITY London Paris London CLASS 2 3 4