1、第四章 数据库安全性习题(必做题:1,5,6,7,8,9,13)1什么是数据库的安全性?2数据库安全性和计算机系统的安全性有什么关系?3试述信息安全标准的发展历史,试述 TDL/TCSEC 和 CCV2.1 标准的基本内容。4试述 CC 评估保证级划分的基本内容。5试述实现数据库安全性控制的常用方法和技术。6什么是数据库中的自主存取控制方法和强制存取控制方法?7SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明他们的使用方法。8今有两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号)请用 SQL 的 GRANT 和 REVO
2、KE 语句(加上视图机制)完成以下授权定义活存取控制功能:(a) 用户王明对两个表有 SELECT 权力。(b) 用户李勇对两个表有 INSERT 和 DELETE 权力。(c) *每个职工只对自己的记录有 SELECT 权力。(d) 用户刘星对职工表有 SELECT 权力,对工资字段具有更新权力。(e) 用户张新具有修改这两个表的结构的权力。(f) 用户周平具有对两个表所有权力(读,插,改,删数据) ,并具有给其他用户授权的权力。(g) 用户杨兰具有从每个部门职工中 SELECT 最高工资、最低工资、平均工资的权力,它不能查看每个人的工资。9把习题 8 中(1)(7)的每一种情况,撤销各用户
3、所授予的权力。10为什么强制存取控制提供了更高级别的数据库安全性?11理解并解释 MAC 机制中主体、客体、敏感度标记的含义。12举例说明 MAC 机制如何确定主体能否存取客体。13什么是数据库的审计功能,为什么要提供审计功能?14统计数据库中存在何种特殊的安全性问题?*15试述你了解的某一个实际 DBMS 产品的安全性措施。参考答案1答:数据库的安全性是指保护数据库以防止不合法的使用造成的数据泄露。更改或破坏。2答:安全性问题不是数据库系统所独有的问题,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有
4、效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统,网络系统的安全性内容。3答:各个国家在计算机安全技术方面都建立了一套可信标准。目前各国引用或制定的一系列安全标准中,最重要的是美国国防部(DoD)正式颁布的TDI/TCSEC 标准是将 TCSEC 扩展到数据库管理系统,即Trusted Computer System Evaluation Criteria,简称 TCSEC,又称为桔皮书).TDI/TCSEC 一样,从安全策略,责任,保证和文档四个方面来描述安全性级别划分的指标。每个方面又细分为若干项。这些指标的具体内容,参见概论 9.1.24答:根据计算机系统对
5、安全性各项指标的支持情况,TCSEC(TDI )将系统划分为四组 7 个等级,依次是 D,C(C1,C2),B(B1,B2,B3),A(A1),按系统可靠或可信程度逐渐增高。安全级别 定义A1 验证设计(Verified Design)B3 安全域(Security Domains)B2 结构化保护(Structural Protection)B1 标记安全保护(Labeled Security Protection)C2 受控的存取保护(Controlled Protection)C1 自主安全保护(Discretionary Protection)D 最小保护(Minimal Protec
6、tion)这些安全级别之间具有一钟偏序向下兼容的关系,即较安全性级别提供的安全保护包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。各个等级的基本内容为:D 级 D 级是最低级别。一切不符合更高标准的系统,统统归于 D 组C1 级 只提供了非常初级的自主安全保护,能够实现对用户和世界的分离,进行自主存取控制(DAC) ,保护或限制用户权限的传播。C2 级 际是安全产品的最低档次,提供受控的存取保护,即将 C1 级的 DAC 进一步细化,以个人身份注册负责,并实施审计和资源隔离。B1 级 标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机
7、制。B2 级 结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC 和 MAC。B3 级 安全域。该级的 TCB 必须满足访问控制器的要求,审计跟踪能力更强,并提供系统恢复过程。A1 级 验证设计,即提供 B3 级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。各个等级的基本内容请参见概论9.1.2。特别是概论9.2 列出了各安全等级对安全指标的支持情况。希望读者掌握概论上的内容,这里就不重复了。5答:实现数据库安全性控制的常用方法和技术有:() 用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,
8、通过鉴定后才提供系统的使用权。() 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如 C2 级中的自主存取控制(DAC) ,B1 级中的强制存取控制。() 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。() 审计:建立审计日志,把用户对数据库的所有操作自动记录不来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。() 数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法
9、知数据的内容。具体内容请参见概论9.26答:自主存取控制的方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问首先检查用户的存取权限。防止不合法用户对世界库的存取。强制存取控制方法:每一个数据对象被(强制地) 标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有某一许可证级别的用户才能存取某一个密级的数据对象。7答:SQL 中的自主存取控制是通过 GRANT 语句和 REVOKE 语句来实现的。GRANT SELECT, INSERT ON studentTO 王平 WITH GRANT OPTION;就将 Student 表的 SELECT 和 INSERT
10、 权限了用户王平,后面的 WITH GRANT OPTION 字句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他的用户REVOKE INSERT ON Student FROM 王平 CASCADE;就将 Student 表的 INSERT 权限从用户王平处收回,选项 CASCADE 表示,如果用户王平将 Student 的 INSERT 权限又转授给了其他的用户,那么这些权限也将从其他用户处收回。8 答:(1)GRANT SELECT ON 职工,部门 TO 王明;(2)GRANT INSERT ,DELETE ON 职工,部门 TO 李勇;(3)GRANT SELE
11、CT ON 职工 WITH USER()=NAME FROM ALL;这里假定用户将自己的名字作为 ID,且系统的 REVOKE 语句支持 WHEN 子句,系统也支持 USER()使用 。(4)GRANT ALTER TABLE ON 职工 TO 刘星;(5)GRANT ALTER TABLE ON 职工,部门 TO 张新;(6)GRANT ALL PRIVILIGES ON 职工,部门 TO 周平;(7)先建立一个视图,再对这个视图定义杨兰的存取权限.Create View 部门工资 as Select 部门.部门名称,MAX(工资),MIN(工资),AVG(工资 )FROM 职工,部门WH
12、ERE 职工 .部门号= 部门.部门号GROUP BY 部门.部门号, 部门.部门名称GRANT SELECT ON 部门工资 TO 杨兰9答:(1)REVOKE SELECT ON 职工,部门FROM 王明;(2)REVOKE INSERT ,DELETE ON 职工,部门FROM 李勇;(3)REVOKE SELECT ON 职工WITH USER()=NAME FROM ALL;这里假定用户将自己的名字作为 ID,且系统的 REVOKE 语句支持 WHEN 子句,系统也支持 USER()使用 。(4)REVOKE ALTER TABLE ON 职工FROM 刘星;(5)REVOKE AL
13、TER TABLE ON 职工,部门FROM 张新;(6)REVOKE ALL PRIVILIGES ON 职工,部门FROM 周平;(7)REVOKE SELECT ON 部门工资 FROM 杨兰DROP VIEW 部门工资;10答:强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据而提供了更高级别的安全性。11答:主体是系统中的活动实体,既包括 DBMS 所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件,基表,索引,视图等。敏感度标记被分成若干级别,例如绝密(Top Sec
14、ret),机密(Secrect),可信(Confidential),公开(Public)等。主体的敏感度标记称为许可证级别(Clearer Level) ,客体的敏感度标记称为密级(Classification Level)。12答:假设要对关系变量 S 进行 MAC 控制,为简化起见,假设要控制存取的数据单元是元组,则每个元组标以密级,如下表所示:(绝密,机密,秘密)S# SNAME STATUS CITY CLASSS1 Smith 20 London 2S2 Jones 10 Paris 3S3 Clark 20 London 4假设用户 U1 和 U2 的许可证级别分别是和,则根据规则
15、 U1 能查到元组 S1 和 S2,可修改元组 S2;而只能查到元组 S1,只能修改元组 S113答:审计功能是指 DBMS 的审计模块在用户对数据库执行操作的同时把所有的操作自动记录到系统的审计日志中。因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列问题,找出非法存取数据的人,时间和内容等。14答:统计数据库允许用户查询聚集类型的信息,如合计,平均值,最大值,最小值等,不允许查询单个记录信息。但是,人们可以从合法的查询中导出不合法的信息,即可能存在隐蔽的信息通道,这是统计数据库要研究和解决的特殊的安全性问题。15答:不同的 DBMS 产品以及同一产品的不同版本的安全措施个不相同,请读者自己了解。