1、南京航空航天大学硕士学位论文多级安全数据库管理系统的研究与实现姓名:王艳磊申请学位级别:硕士专业:计算机软件与理论指导教师:毛宇光20060301南京航空航天大学硕士学位论文摘要近年来 随着信息化进程的加快以及社会经济生活对信息技术的依赖日益加深 大众对计算机信息系统的安全性提出了更高和更严格的要求 安全问题是关于信任的问题 数据库管理系统担负着大量信息的存储 共享等使命 因此其安全性在整个信息安全中占有举足轻重的地位 数据库安全理论和技术是数据库理论研究的一个重要方向 国外研究者已经对多级安全数据库管理系统的研究和实现做了大量的工作尽管已经实现了许多高安全性的 DBMS原型系统但是很长一段时
2、间以来一直没有出现 B1级以上的高安全性的商用 DBMS表明还有许多问题没有得到很好地解决 本文通过分析以往安全模型的分解和恢复算法的缺点 提出了一个适合于主从结构表这种双结构表安全模型的分解和恢复算法 针对主从结构表安全模型容易产生语义模糊性和操作不完备性等问题 提出了一个改进的主从结构表安全模型 并提出了其分解和恢复可行方法 讨论了安全模型的优缺点 定义了建立在安全模型基础之上的多级安全事务模型 分析了多级事务面临的众多难题 提出了一个安全 正确的多级事务调度算法 根据上述的诸多理论 开发了一个多级安全数据库管理系统的原型系统实验结果表明文中提出的理论和各种算法是正确的关键词 安全模型 多
3、级安全 分解算法 恢复算法 多实例 数据语义 多级事务事务调度i多级安全数据库管理系统的研究与实现ABSTRACTIn recent years, information systems that our society increasingly depends on,play more and more important roles. With this process, the human beings bringforward higher and more rigorous security requests to the information systems.Security i
4、s all about trust. DBMS takes an extremely important task of storing andsharing large amount of information. As a result, its security plays an imperativerole in the information security as a whole. The security theory and technology indatabase, as a database theory research, is an important directi
5、on. Many overseasscholars have done much work on multilevel secure database management systemand lots of high secure DBMS have been implemented, however, for a long periodof time, no commercial DBMS is above B1 level, which indicates many problemsare still left unresolved. The main content in this a
6、rticle is as follows. First, byanalysing the disadvangtages of the decomposition and recovery algorithm in theusual security model, a new algorithm of double structure tables, which is suitble formaster-slaver structure tables, is presented in this paper. Second, in resolving thesemantic ambiguity a
7、nd operational incompleteness easily emerged in master-slaverstructure tables, an improved master-slaver structure table model and relativedecomposition and recovery algorithm are provided. Third, considering the meritsand demerits of security model, a multilevel secure transaction model is defined
8、onthe basis of security model. In addition, a secure and correct multilevel transactionscheduling algorithm is put forward by analysing many difficulties encountered inmultilevel transaction. Fourth, according to the theory mentioned above, amultilevel secure DBMS is implemented and the theory and a
9、lgorithms mentionedin this paper is correct by the result of our experiment.Key Words: Security Model, Multilevel Security, Decomposition Algorithm,Recovery Algorithm, Polyinstantiation, Data Semantics, Multilevel Transaction,Transaction Schedulingii承诺书 本人郑重声明所呈交的学位论文是本人在导师指导下独立进行研究工作所取得的成果尽我所知除文中已经
10、注明引用的内容外本学位论文的研究成果不包含任何他人享有著作权的内容对本论文所涉及的研究工作做出贡献的其他个人和集体均已在文中以明确方式标明本人授权南京航空航天大学可以有权保留送交论文的复印件允许论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索作者签名日 期可以采用影印缩印或其他复制手段保存论文多级安全数据库管理系统的研究与实现注释表MLS/DBMS Multilevel Secure Database Management System据库管理系统多级安全数viiiDACMACTCSECTDIAKFKMVSGBLPSeaViewJSDiscretionary Access
11、 Control自主访问控制Mandatory Access Control强制访问控制Trusted Computer System Evaluation Criteria可信计算机系统评价标准Trusted Database Interpretation可信计算机系统评估标准关于可信数据库系统的解释Apparent Primary Key外观主码Foreign Key外码Multiversion Serialization Graph多版本串行化图Bell Lapadula贝尔-拉帕丢拉Secure Data View安全数据视图Jajodia Sandhu贾让第-沙胡南京航空航天大学硕士
12、学位论文第一章 绪论 引言 随着计算机技术与 Internet的飞速发展 信息技术把现代社会推进到了一个高速发展的时期 信息作为信息技术的根本 它的价值已经大大地超过了承载它们的硬件设备的价值信息技术的革命也被称为第三次社会生产力的革命它赋予了信息安全更加不平凡的意义 使得信息安全越来越受到人们的重视数据库管理系统担负着大量信息的存储共享等使命是黑客经常攻击的目标因此其安全性在整个信息安全中占有举足轻重的地位 当今 政府部门以及商业企业将大量的信息存储在计算机数据库内 这些信息与企业 政府的兴衰连在一起 保护这些信息就变得非常重要 据统计 西方发达国家的政府机构和企业 每年通过计算机被窃取的资
13、金高达数十亿美元 我国也发生过多起通过计算机进行犯罪的案例 因此 随着数据库系统的广泛应用 数据的保护也变得越来越重要 为保护机密信息不被窃取 破坏 仅仅采用硬件保护的方法是远远不够的 还必须采取必要的软件保护措施 对数据库的主要威胁包括 未经授权的非法访问修改数据库信息窃取数据或使数据失去真实性可用性来自网络的入侵等课题1,2数据库安全技术的研究已经成为信息安全非常重要的研究早在 1985年美国国防部 DoD 就颁布了 可信计算机系统评价标准Trusted Computer System Evaluation Criteria, TCSEC 3,4 之后 1991年 4月美国国家计算机安全中
14、心 NCSC 又颁布了 可信计算机系统评估标准关于可信数据库系统的解释 Trusted Database Interpretation TDI 5 我国也于1999年颁布了 计算机信息系统安全保护等级划分准则 6 在这些标准中都规定安全性要求较高的系统中需要将信息根据敏感程度分配相应的密级标签实现强制访问控制 Mandatory Access Control MAC 实现了强制访问控制的数据库管理系统一般称为多级安全数据库管理系统 Multilevel SecureDatabase Management System MLS/DBMS 7 在 MLS/DBMS中 每个数据项根据敏感性级别被分配
15、一个密级级别每个用户分配一个允许安全级1多级安全数据库管理系统的研究与实现MLS/DBMS的角色是保证用户仅可以查询和操纵其允许安全级的数据8,9 所有的数据库访问都通过一个可信计算基 TCB 3,4来仲裁为确定用户是否可以访问某个数据项用户的允许安全级需要与数据的密级进行比较2,10,11一般 密级级别和允许安全级由两部分构成 一个分层成分 称为安全级别 一个非分层成分 称为范围 安全级别是有序的 范围是彼此独立 无序的有时非分层成分可能不出现密级和允许安全级统称为安全级别 SecurityClasses当前流行的 MLS/DBMS大多采用 BLP模型作为其安全模型同时 BLP模型也是上述标
16、准推荐使用的模型3-6在 BLP模型中遵循向下读向上写的安全策略虽然向下读策略能有效地防止非授权用户直接获取敏感信息但 向上写 策略却存在潜在的危险 可能形成隐秘通道 Covert Channel这些存在的安全缺陷很可能被黑客利用主从结构表安全模型12是改进的 BLP安全模型 虽然它避免了这种隐秘通道的存在 但容易产生数据的语义模糊性和操作的不完备性等问题 此外 这些流行的 MLS/DBMS都采用在数据插入时分配密级的做法 这种做法很难适用于将单级数据库系统扩展成多级安全数据库系统的情况 在数据存储方面 这些流行的 MLS/DBMS也只能采用一些比较复杂的分解和恢复算法 大大降低了系统的存储效
17、率 在事务处理方面这些流行的 MLS/DBMS也只能支持单级事务 然而不支持多级事务的安全系统的使用价值是不高的 本文围绕多级安全关系数据库的分解和恢复算法 安全模型 语义分析 表达能力 数据操纵处理以及多级事务等主题进行深入研究为开发商用高安全级 MLS/DBMS提供参考 的主要研究内容 从二十世纪七十年代初 欧美等发达国家就开始重视计算机系统的安全问题最初人们主要研究的是操作系统的安全问题例如著名的 BLP模型就是研究操作系统安全策略问题的结晶 随着数据库技术的发展 数据库系统的安全越来越受到人们的重视 尤其值得一提的是 1991年 TDI5的颁布大大地促进了人们对数据库安全的研究据库技术
18、的发展尽管如此数据库安全技术的发展仍然滞后于数2目前 MLS/DBMS的研究主要基于关系数据库管理系统这主要是由于关南京航空航天大学硕士学位论文系数据库管理系统无论从理论上还是技术上都已经非常成熟 并且得到广泛应用特别是其非过程化的查询语言 SQL易于扩充并保持其安全性 其次由于数据库安全技术的研究往往滞后于数据库技术的研究扩充关系型 DBMS的安全性是一条可行的途径问题因此本文仍然以关系数据库为例讨论数据库安全事实上 数据库管理系统的安全是一个多方面的 牵涉很广的研究课题是一个系统工程 它不仅需要建立在可信的操作系统和可信的网络平台上 更由于数据在数据库中集中存放的特殊性其本身的安全保护措施
19、也是多方面的人们对多级安全数据库管理系统的理论研究始于 20世纪 70年代 研究的主要内容包括 MLS/DBMS的体系结构形式化的安全策略与安全模型访问控制密级分配 多实例的处理方法 完整性问题 推理问题 审计 多级安全环境下的事务处理 隐秘通道分析与处理 入侵检测 分解恢复算法等13-18 本文主要研究多级安全关系数据库的分解和恢复算法安全模型模型的表达能力语义分析 数据操纵处理以及多级事务处理等方面的内容 国内外研究现状 国外对多级安全数据库管理系统的理论研究始于 20世纪 70年代 在标准制定方面 DoD于 1985颁布了 TCSEC 1991年又颁布了 TDI 将 TCSEC扩展到数据
20、库管理系统 这为后来研究和开发多级安全产品奠定了基础 根据计算机系统对各项指标的支持情况 TCSEC TDI 按系统可靠或可信程度逐渐增高将系统划分为四组七个等级2-5,19即按系统可靠或可信程度逐渐增高依次为 D C(C1, C2) B(B1, B2, B3) A(A1)如表 1.1所示在理论研究和原型系统开发方面国外专家已经做了大量的工作 并研制出了一些 A1级的原型系统 如 SRI International&Gemini Computers开发的SeaView Secure Data View 原型系统 Secure Computing Technology开发的LDV Lock Da
21、ta Views原型系统和 TRW内部开发的 ASD Advanced SecureDBMS 原型系统14,16,20 在商用方面 三大著名数据库开发商都推出了各自的 B1级产品 Oracle公司的 Trusted Oracle 7 Sybase公司的 Secure SQL ServerVersion 11.0.6和 Informix公司的 Incorporated Informix-Online/Secure 5.0此外Sybase公司还开发了一个运行在裸机上的系统它在硬件级实现了任务分离和3多级安全数据库管理系统的研究与实现内存保护把敏感数据分配到自己的地址空间完全脱离了不可信的地址空间满
22、足 B2级标准表 1.1 TCSEC/TDI安全级别划分安全级别 定 义A1 验证设计 Verified DesignB3 安全域 Security DomainsB2 结构化保护 Structural ProtectionB1 标记安全保护 Labeled Security ProtectionC2 受控的存取保护 Controlled Access ProtectionC1 自主安全保护 Discretionary Security ProtectionD 最小保护 Minimal Protection国内在这方面研究起步比较晚 1999年才颁布了计算机信息系统安全保护等级划分准则国家标准
23、6在商用方面东软集团开发的 OpenBASE Secure和华中科技大学的 DM3都达到了 B1级标准 并已经具备了部分 B2级功能即相当于达到了我国 计算机信息系统安全保护等级划分准则 中规定的第三级标准 无论是原型系统还是商用数据库方面 国内都没有开发出安全性完全达到 B2级以上标准的产品本文主要研究多级安全关系数据库的分解和恢复 安全数据模型 多级安全环境下的事务处理 因此下文分别介绍这几个方向国内外的研究进展 多级关系数据库的分解和恢复 在传统的数据库管理系统中 数据的存取方法一直是一个值得研究的问题 也相继提出了大量的算法 而在多级安全数据库管理系统中 一个关键的问题是给要存储的数据
24、分配密级 而这些带有密级的数据只能被满足条件的用户所读取 而读取速度的快慢直接影响了系统的效率 然而 平常所讲的多级关系只是在逻辑层上存在的 事实上 这些多级关系是在物理上被分解为一个单级关系的集合存储在数据库中的自从安全模型被提出来以后 关于多级安全数据库的分解和恢复就进行着4大量的研究目前建立在安全模型基础上的多级安全关系的分解和恢复算法南京航空航天大学硕士学位论文的研究比较成熟的有 SeaView多级安全数据库的分解和恢复算法16 JS多级安全数据库的无损失的分解恢复算法17和 JS多级安全数据库的一个新的分解恢复算法18等在传统的 SeaView模型16中它的分解主要是通过水平分段和垂
25、直分段来完成将多级关系分解为一个单级关系的集合的 恢复主要是采用左外连接操作来完成 这样的恢复算法并不能够将这些分解后的单级关系无损失地恢复成原来的多级关系 产生了大量的冗余 导致了许多问题的产生 虽然在 JS模型 17,18中对该分解恢复算法进行了改进大大提高了系统的效率然而这些算法都是针对各自模型提出来的满足其它多级安全数据库的需要安全数据模型 只能处理这些单表结构的模型并不能人们对数据库安全技术的研究是从研究安全模型开始的 人们陆续提出了很多种安全模型 2,12,16,21-30 这些安全模型大致可以分为两类自主型安全模型和强制型安全模型 在自主型安全模型中 用户对信息的访问控制是基于用
26、户的鉴别和存取访问规则来确定的Discretionary Access Control DAC称这样的访问控制为自主访问控制这类安全模型典型代表是操作系统中广泛使用的存取矩阵模型各种直接和间接的攻击强制访问控制是通过用户无法回避的存取限制来防止这类安全模型典型代表是 BLP模型根据 TCSEC/TDI要求 B1级以上的数据库管理系统必须实现强制访问控制 经典的强制访问控制模型包括 SeaView模型16,22 BLP模型18,21,23-25信息流模型2,26,31 MLR模型 29,30 主从结构表模型12和中国墙策略31,32等SeaView模型是 Denning等人于 1986年在斯坦福
27、研究所 SRI 开发的一个用于保护关系数据库系统的安全模型根据该模型 SRI开发出可以运行在 GEMS操作系统 GEMS是满足 TCSEC中 A1级标准的操作系统上的 A1级原型系统 在商用 MLS/DBMS开发方面 大多采用 BLP模型作为其强制访问控制模型在 BLP模型中主体按照向下读向上写的原则访问客体 向下读能有效地防止低安全级主体直接获取敏感信息 但 向上写 原则存在潜在的危险可能形成隐秘通道主从结构表 12是一种改进的 BLP模型虽然避免了隐秘通道的发生 提高了系统的安全性 但该模型仍然存在语义模糊性和操作不完备性5多级安全数据库管理系统的研究与实现 多级事务处理 国际上从二十世纪
28、九十年代开始重视多级安全事务处理的研究 研究主要针对几种主要类型的安全 DBMS体系结构 包括核心化结构和复制数据式结构 研究的主要内容包括多级事务处理机制和安全事务调度两个方面 目前已经取得了不少成果11,33,34 少相比之下当前国内对这方面进行的研究还非常的目前 流行的 MLS/DBMS大多只支持单级事务 一个事务内只对一种密级的数据进行操作 仅仅支持单级事务的 MLS/DBMS是难以满足数据库开发的实际需要 多级事务允许用户在其支配的多个安全级上执行读写操作 但是多级事务的实现又是异常复杂的 普遍的做法是将多级事务分解成多个单级事务 当两个不同安全级的事务发生读写冲突时 如果让低安全级
29、事务等待会产生存储隐秘通道 如果优先响应低安全级事务会使得高安全级事务处于无限等待状态即产生所谓的高安全级事务 饥饿 现象 15,35,36为解决上述问题 Trusted Oracle 7采用两段锁加多版本加时间戳的方法 37尽管这种混合式算法是安全的 不需要用可信调度程序实现 但它只能保证安全级可串行化 且产生的版本不限 在某些特殊情况下会产生事务的调度和处理不一致问题 Informix改进了传统的 2PL协议38若高安全级事务已经获得某低安全级数据上的读锁 低安全级事务仍可获得该数据上的写锁 并给高安全级事务一个警告信息加在低安全级数据上的某个读锁已经破裂 除非在应用程序中加入终止高安全级
30、事务执行的代码 否则高安全级事务仍然可以提交 这种方法可能导致高安全级事务的执行结果不正确 文献39中 Jajodia等人提出的基于锁机制的安全并发控制协议利用了 串行化图 作为工具 该协议通过对串行化图中的事务集合以及高安全级事务读操作和低安全级事务写操作发生冲突的数据集合的分析 来发现图中的环 以此作为调度的依据多级事务处理是为了解决在一个事务内访问多种密级的数据又要保持事务的原子性问题 文献40已经证明了同时保持原子性和安全性是不可能的 本文的组织 6本文主要研究多级安全关系数据库的分解和恢复安全数据模型模型表南京航空航天大学硕士学位论文达能力 语义分析 数据操纵处理和多级事务等方面内容
31、 全文由六章组成组织如下第一章 介绍了课题的研究背景 以及多级安全数据库管理系统的研究内容和国内外研究现状第二章 多级安全关系数据库的分解和恢复算法 通过分析现有经典安全模型分解恢复算法的优缺点 提出一个适用于主从结构表这种双表结构的多级安全数据库的分解和恢复算法了执行效率该算法只用到了水平分段和并操作大大提高第三章 一个改进的安全模型 通过分析主从结构表安全数据模型存在语义模糊性和操作不完备性的缺点 提出了一个改进后的主从结构表安全数据模型并且对该模型的语义进行了分析对几个安全模型的表达能力进行了比较讨论了数据操纵处理规则 还对该多级安全数据库进行了分解和恢复的研究第四章 多级安全事务调度
32、分析了安全模型的优缺点 定义了多级事务模型 对多级事务的可串行化进行了研究 讨论事务从单级拓展到多级需要解决的众多难题 提出一种安全 正确的事务调度算法第五章 MyBase2原型系统的实现介绍了 MyBase2原型系统采用的体系结构和实现过程研究分析原型各安全模块的功能和数据结构第六章总结全文并对未来的工作进行展望7多级安全数据库管理系统的研究与实现第二章多级安全关系数据库的分解和恢复算法现有的多级安全关系数据库的分解和恢复算法大都是针对各自模型提出来的 各有优缺点 但并不能够满足主从结构表这种双表结构的安全模型的需要 因此 文章提出了一个能够将多级关系分成多个单级关系的分解算法和一个能够将这
33、些分解后的多个单级关系重新构造为原来的多级关系的恢复算法这些算法都是被公式化描述的 并且只用了水平分段和并操作 大大提高了系统的执行效率 引言 根据 DoD颁布的 TCSEC3,4和 NCSC颁布的 TDI5要求 B1级以上的安全系统必须实现强制访问控制 实施了强制访问控制的数据库管理系统被称为多级安全数据库管理系统 MLS/DBMS 41 在 MLS/DBMS中 一个关键的问题是如何给存储在关系中的数据划分密级 也就是关于数据划分的粒度问题数据划分的粒度可以以表为最小单位 可以以列为最小单位 也可以以行为最小单位 甚至可以以单个数据为最小单位 参考文献12 中将数据划分的粒度定义在了单个数据
34、级上 并对安全级别 范围和规则进行了改进 提出了一种新的多级安全关系数据模型 即主从结构表安全模型 该安全模型中的多级关系 Multilevel Relation 只是在逻辑层上存在的 事实上 多级关系是在物理层上被分解为一个单级关系 Single-Level Relation的集合存储在数据库中的这些单级关系对用户来说是透明的 可以根据用户的不同需要将这些单级关系重新构造成多级关系 这种分解和重新构造的方法就是本章主要讨论的分解和恢复算法在传统的 SeaView模型16中分解算法主要是通过水平分段和垂直分段来完成将多级关系分解为一个单级关系集合的 恢复算法主要是采用左外连接Left Oute
35、r Joins 操作来完成 这样的恢复算法并不能够将这些分解后的单级关系无损失地恢复成原来的多级关系 产生了大量的冗余 导致了许多问题的产生虽然在 JS模型17,18中对该分解恢复算法进行了改进大大提高了系统8南京航空航天大学硕士学位论文的效率 然而 这些算法都是对这些单表结构的模型提出来的 并不适用于主从结构表这种双表结构模型 针对这些问题 作者提出了一个新的分解恢复算法 只用了水平分段和并操作 大大提高了系统的存取效率 也解决了前面模型中出现的问题本章 2.2节对主从结构表多级安全关系数据模型进行了简要阐述 2.3节首先给出了该多级安全数据库的分解和恢复算法的描述 接下来列举了几个例子来进
36、行说明 2.4结对本章进行了小结主从结构表模型 多级关系模式定义 为了处理多级数据 引入了安全级标识 一个包括安全级的关系称为多级关系 下面对多级关系模式进行重新定义定义 2.1 设 Ai是定义在域 Di上的数据属性 每个 Ci是 Ai的密级属性Ci在密级区间Low, High中 Low和 High分别表示多级安全关系的最低和最高密级 取值 TC为元组密级属性并且取 Ci中的最大值 那么 R A1, C1, A2,C2, , An, Cn, TC 被称为独立于状态的多级关系模式定义 2.2设 ai或是 Di中的一个值或是 null ci是 ai的密级属性 ci在密级区间Low, High中取值
37、 且 ci c tc是元组密级属性且取 ci中的最大值 那么 Rc A1, C1, , An, Cn, TC被称为依赖于状态的关系实例每个关系实例是形如 a1, c1, , an, cn, tc的元组集合 模型的规则 模型中读写操作是受控的除了要满足传统的向下读向上写规则外还要对用户的写权限和写范围进行约束 为满足强制存取策略 对多级关系中元素的密级还要有一些其它约束用以控制多实例性质 2.1 用户的写权限不得高于读权限 即 CR CW性质 2.2性质 2.3用户的写范围不得大于读范围实体完整性即 SR SW1外观主码对应的密级属性非空9多级安全数据库管理系统的研究与实现23外观主码中的每一个
38、数据属性对应的密级相同外观主码对应的密级最小性质 2.4 空值完整性1对任一元组如果数据属性 Ai为空那么 Ai对应的密级属性 Ci等于外观主码的密级2 多实例 Rc是无归类的 Subsumption Free性质 2.5 实例间完整性对于所有安全级 c c实例 Rc是从实例 Rc中过滤而来的即实例 Rc是由实例 Rc中外观主码 AK安全级受 c支配的元组组成并且这些元组中密级属性不受 c支配的数据属性被用空值代替性质 2.6 多实例完整性要求多级关系中的主码为 AK CAK Ci 这是为了禁止同一安全级中的多实例上面给出的六个规则中性质 1和性质 2是对用户写权限和写范围的约束性质 3至性质
39、 6是关于多级安全关系数据模型的完整性约束用以控制多实例 主从结构表模型 为了解决引入多实例后产生的隐秘通道问题 文献12中提出了主从结构表的概念主表和从表 NMD的主从表分别如表 2.1表 2.2所示 主表用来模拟单级数据库表在一开始的时候为空从表是用来存储假写的结果同时也是假读的数据源这样从表中出现的所有外观主码在主表中均出现过从从表的存在对用户来说是透明的 通过重新定义读写规则并且采用主表和从表的方法 能消除出现的信号通道 增强系统的数据完整性 该模型的读写规则在文献12中已经做了详细阐述 这里就不再重复表 2.1 NMD的一个主表Name长城 U小鹰 SMission空间探索 U间谍
40、TSDestination月球 U火星 STCUTS10D南京航空航天大学硕士学位论文表 2.2 NMD的一个从表Name小鹰 SMission空间探索 SDestination火星 STCS 分解和恢复算法 目前 多级关系分解成多个单级关系的分解和恢复算法包括 SeaView模型分解恢复算法 16 JS模型无损失的分解恢复算法 17和 JS模型一个新的分解恢复算法 18等然而这些算法都是针对各自模型提出来的只能处理这些单表结构的模型 并不适合主从结构表这种双表结构的安全模型 因此 针对这一模型的特点作者提出了一个适用于主从结构表安全模型的分解和恢复算法表 2.3 NMD主表的分解1UName
41、 长城 UMission空间探索 UDestination月球 UD1S Name Mission Destination小鹰 S null S 火星 SD1TSName小鹰 SMission间谍 TSDestination火星 S表 2.4 NMD从表的分解D2SName小鹰 SMission空间探索 SDestination火星 S 分解算法 在主从结构表模型中 每一个多级关系模式 R A1, C1, , An, Cn, TC都被分解为两个形如 Dc A1, C1, , An, Cn 的单级关系集合 其中 对于主表来说 是用来模拟单级数据库中的表格 它被分解为 D1c A1, C1, ,
42、An, Cn对于从表来说 它是用来存储多实例的表格 自身也可能是多实例的 它被分11些命令在 Rc 的主表中执行 那么相应的元组就会在 D c 上被添加 修改和删除D c和 D等于 c 的 D 和 D2 的并 Union si , c i SETi SET多级安全数据库管理系统的研究与实现解为 D2c A1, C1, , An, Cn 表 2.1表 2.2分解后分别如表 2.3表 2.4所示一个 c密级用户可以看到 c级实例 Rc当在 Rc中执行插入更新删除操作时 在相应的基关系 D1c和 D2c上的元组就会被添加 修改和删除 如果这1如果在 Rc的从表中执行那么相应的元组就会在 D2c上被添
43、加修改和删除这些变化都只能在相应的 D1c和 D2c上进行添加 修改和删除 而不会影响到1 2c c c中的值一个 c密级用户在 Rc c上的变化都会通过密级小于1 操作得到下面分别给出了在确保更新语义的情况下执行插入分解算法 2.3.1.1插入操作更新删除操作时的如果一个 c密级用户满足主从结构表模型的插入规则 那么它将成功地将元组 t插入到 Rc中 如果元组 t是插入到主表中 那么就将 t也插入到 D1c中如果元组 t是插入到从表中 那么就将 t也插入到 D2c中 元组 t中的值满足1如果 Aj包括在插入语句的属性列表中那么 tAj=aj 2如果 Aj不包括在插入语句的属性列表中 那么 t
44、Aj=null 3 tCi=c 1 i n 更新操作 在阐述更新操作的分解算法之前 为了提高存储效率 确保更新操作产生的多实例元组在从表中执行 作者将更新规则 2 中的 b 进行修改 如果tCitTC 令 tTC=CUW如果一个 c密级用户满足更新规则并且在 Rc中更新操作成功 那么假设S = tRc t满足谓词表达式 p对每一个 tS 则有1如果 tC1=c元组 t在 c密级不是多实例的此时只有 D1c发生变化对于元组 uD1c如果满足条件 uA1, C1=tA1, C1那么就将元组 u用 u代替u A1, C1=uA1, C1 并且对于 i 1 有12u Ai , Ci u Ai ,Ci
45、A属于子句A不属于子句uD c 满足条件 uA1, C1=tA1, C1么就添加一个元组 u 到 D c 中 u 满足下列条件 uA1, C1=tA1, C1 并且对于 si , c *, tCi i SETi SET si , c i SETi SETc南京航空航天大学硕士学位论文2如果 tC1 每一个满足此条件的元组 u都将被 u所替换 uA1, C1=uA1, C1 并且对于 i 1 有u Ai , Ci u Ai ,Ci 2.3.1.3删除操作如果一个 c密级用户满足删除规则A属于子句A不属于子句那么所有满足删除条件 p和主表中tTC=c的所有元组 t将被删除 此外 还有一部分元组满足
46、删除条件 p 但该元组中有的密级属性大于 c 那么该元组并没有被删除 而对应的数据属性的密级都增长了 这样 我们就要从两个方面来说明删除操作的分解算法1所有实际上被删除的元组 t将 D1c和 D2c中满足下列条件的元组 u删除 uA1, C1=tA1, C1且 uCi c2 所有实际上没有被删除 而是密级增长了的元组 t 同时也要在 D1和 D2中增长对应数据属性的密级 恢复算法 在一个给定的安全级 c上 按照下面的步骤恢复成实例 Rc的主表和从表第一步主表 从表和 c密级用户能看到元组的恢复1 主表的恢复 执行 D1c的并操作 即 U c c D 1 如果并操作后有多13cDc U D 2在
47、 D 中出现 则假设 Rc 的从表中有一个元组 t 的某一属性值为 *多级安全数据库管理系统的研究与实现实例存在 把多出的多实例元组转存到从表中 在 D1中删除对应的项 在 D2中添加相应的项2 从表的恢复 执行 D2c的并操作 即 U c c D 23 c密级用户能看到的元组的恢复 执行上面 D1c和 D2c恢复结果的并操作 即 1恢复后每一个元组 t的元组密级 tTC取 tCi 1 i n 的最大值第二步 在 Rc的从表中应用 * 置换规则在前面更新操作分解算法中已经指出 某一属性值为 * 的情况只可能2 即 tAi=* 则1 在主表中如果存在一个元组 uRc满足 uA1, C1=tA1,
48、 C1和 uTC=tCi 则 tAi=uAi 即从表对应元组的 * 被 uAi所置换2在主表中如果不存在一个元组 uRc满足 uA1, C1=tA1, C1和 uTC=tCi 则 tAi=null 即从表对应元组的 * 被 null所置换第三步 在 Rc中应用无归类规则对主表和从表中所有满足下列条件的元组 s删除么 tAi, Ci=sAi, Ci要么 tAi null且 sAi=null在 Rc中存在元组 t要 示例 下面作者给出几个例子来进一步说明更新操作的分解和恢复算法表 2.1 表 2.2分别为 NMD的主表和从表 对应的分解分别如表 2.3 表2.4所示那么一个安全级别为 S的用户看到的 NMD如表 2.5所示这里首先在表 2.3表 2.4中执行恢复算法的第一步第二步在这里不执行第三步就删除了一个 Mission值为 null的元组 得到的结果如表 2.5所示 插入操作 如果 NMD的主从表如表 2.1表 2.2所示那么安全级别为 C的用户插入元组小鹰观光火星后的主从表分别如表 2.1表 2.6所示插入后的 D1 D2分别如表 2.3 表 2.7所示 如果我们想恢复 NMDS 首先执行恢复算法的第一步 得到主表和从表 然后执行第三步删除主表中一个 Mission值为