(计算机软件与理论专业论文)多层关系数据库的推理控制.pdf_第1页
(计算机软件与理论专业论文)多层关系数据库的推理控制.pdf_第2页
(计算机软件与理论专业论文)多层关系数据库的推理控制.pdf_第3页
(计算机软件与理论专业论文)多层关系数据库的推理控制.pdf_第4页
(计算机软件与理论专业论文)多层关系数据库的推理控制.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多层关系数据库的推理控制摘要 摘要 随着计算机技术的日新月异,社会信息化的不断发展,数据库的使用已经融 入到人们的f 1 常生活。随之而来的问题就是,面对不同的用户,如果保证数据库 的信息的安全性,同时又能保证一般用户正常的实现自己的工作职责。安全数据 库的出现给人们带来了一个全新的管理数据库信息安全性的机制。多层安全数据 库对不同安全权限的用户提供了不同的数据信息,即保证了数据的安全性,又最 大限度地减少了对用户例行工作的影响。因此多层安全数据库的实现以及如何有 效地控制推理给我们带来了新的研究课题。 关系数据库由于其在商业领域的主导地位以及关键技术的成熟性成为管理 数据库的一个有效工具。在关系数据库的基础上实现多层安全数据库和在此基础 上控制多层安全数据库的推理是本文研究的重点。本文的贡献主要如下: 1 在已有的数据库系统上实现了多层安全数据库的模型,主要是对针对 s e a v i e w 模型的不足,提出了自己的多层安全数据库的存储方案; 2 ,本方提出了利用数据库上的函数依赖进行推理控制,在对数据库的信息分 级上,根据函数依赖确定数据相应需要满足的安全等级的关系,及时检测 和调整数据的安全等级; 3 本方针对数据库上部分属性的特性,以及现实生活中的一些常识常理,对 多层关系数据库的数据进行安全检测。 理 关键字安全数据库多层关系数据库多实例函数依赖推理控制常识推 复旦大学硕士学位论文 多层关系数据库的推理控制a b s t r a e t a b s t r a c t a d v a n c e si nc o m p u t e rt e c h n o l o g i e sp r o v i d ean e w p a r a d i g mi nw h i c h t h eu s eo f d a t a b a s ei sb e c o m i n gv e r yc r u c i a lt ot h es u c c e s so f t o d a y se n t e r p r i s e s h o wt os a t i s f y p r i v a c yr e q u i r e m e n t st h a tc o n f i d e n t i a ld a t a a r ea v a i l a b l eo n l yt oa u t h o r i z e du s e r si so n e r e s e a r c hf o c u si nr e c e n ty e a r s t h em u l t i l e v e ls e c u r ed a t a b a s em a n a g e m e n ts y s t e m ( m s d b ) i san e wm e c h a n i s mt op r o v i d ed a t as e c u r i t y , t h em s d bi s ar e l a t i o n a l d a t a b a s es y s t e mw h i c hs t o r e sd a t ao fd i f f e r e n ts e c u r i t yc l a s s i f i c a t i o n sa n dp r o v i d e s t h e s ed a t at ou s e r sw i t hd i f f e r e n tc l e a r a n c e s i ts e c u r e st h ed a t ab yi n t r o d u c i n gl i t t l e i n t e r f e r e n c et ot h eu t i l i z a t i o no fd a t a b a s e t h e r e f o r e ,h o wt oi m p l e m e n tt h em s d b a n d h o wt oe f f e c t i v e l yc o n t r o li n f e r e n c e sa r en e wr e s e a r c ht o p i c s t h er d b m si sb e c o m i n ga ne f f e c t i v ed a t am a n a g e m e n tt o o ld u et oi t sl e a d e r s h i p i nt h ec o m m e r c i a la r e aa n dt h em a t u r i t yo fi t sk e yt e c h n o l o g i e s i nt h i sp a p e r , w ew i l l d i s c u s sh e wt oi m p l e m e n tar d b m s b a s e dm s d b a n dh o wt oc o n t r o li t sr e f e r e n c e s t h em a j o rc o n t r i b u t i o n sa r ea sf o l l o w s : 1 p r e s e n ta nm s d bp r o t o t y p ea n dp r o p o s ean e w s o l u t i o nw h i c hi m p r o v e st h e s e a v i e w m o d e l ; 2 b ye m p l o y i n g t h ef u n c t i o n a ld e p e n d e n c y , p r o v i d ear e f e r e n c ec o n t r o la p p r o a c h w h i c hc o u l dc h e c ka n da d j u s tt h ed a t as e c u r i t yl e v e la ta n yt i m ea c c o r d i n g t od i f f e r e n t s e c u r i t yr e q u i r e m e n t s 3 i n s p e c tt h es e c u r i t yi n f o r m a t i o nb a s e do n t h ec h a r a c t e r i s t i c so f p a r ta t t r i b u t e s a n ds o m ec o m m o n s e n s e si nr e a l 1 i f e k e yw o r d :s e c u r i t y d a t a b a s e ,m u l t i l e v e l r e l a t i o n a ld a t a b a s e ( m r d ) , p o l y i n s t a n t i a t i o n ,f u n c t i o n d e p e n d e n e e s ( f d ) ,i n f e r e n c e c o n t r o l ,c o m m o n k n o w l e d g e i n f e r e n c e 多层关系数据库的推理控制 第一章引言 第一章引言 1 1 本文立论背景和意义 随着计算机的普及,信息系统不断深入人们的政治、经济生活,数据库已经 成为信息系统不可缺少的重要组织部分。如何保证数据库用户能获取一般的信息, 又能保证数据库的敏感信息不被未授权的用户访问是安全数据库研究领域的目 标,也是安全数据库能够得到最大限度运用的前提。从数据库的类型上,安全数 据库主要可以分为关系安全数据库和对象安全数据库。本文从关系数据库的两大 方面入手,探讨关系数据库需要解决的问题以及相应的解决方案。 安全数据库既要保证为用户提供合适的信息,使得这些用户能够正常地利用 数据库完成自己的本职工作,又要保证系统的敏感数据只提供给那些需要的用户, 减少这些敏感信息的可见用户的范围。这里我们使用了多层安全数据库:对于不 同安全权限的用户来说,对同一属性多层安全数据库可能提供不同安全等级的数 据,从而同时保证数据的可用性和数据的保密性。 由于多层关系数据库存储的数据是不同等级的,用户可能会利用他可见的数 据进行推理,得出安全等级比较高的数据,从而降低了数据的安全性。这就是安 全数据库领域中的问题之推理控制。 多层关系数据库是解决安全数据库中多实例问题的良好方法。防止未授权的 用户从可读取的安全等级较低的数据中推理出安全等级较高的数据是多层关系数 据库达到安全的必要保证。 随着社会的发展,安全数据库必将更多地应用到社会生活中,对安全数据库 的研究也会越来越引起人们的关注。 1 2 安全数据库的研究领域 安全数据库的研究范围主要包括: i 安全数据库的推理和聚集问题: i i 多层安全数据库的实体完整性和引用完整性 i i i 多层安全数据库的多实例问题; i v 安全数据库的审计问题; v 安全数据库的访问控制; 复旦大学硕士学位论文 多层关系数据库的推理拇制 第一章引言 这五个方面是当前安全数据库的研究重点,当然除此之外还有其它一些安全 数据库的研究范围。 在这里首先要区分一下安全数据库和数据库安全的概念。 数据库安全是指保护数据库以防止不合法的使用所造成的数据泄露、更改或 破坏。安全性问题不是数据库系统所独有的,计算机系统都有安全性问题。只是 在数据库系统中大量数据集中存放,而且为许多用户直接共享,数据是宝贵的信 息资源,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统 的主要性能指标之一。 1 3 本文的工作 由于安全数据库的研究领域非常广泛,我们主要集中放在多层关系数据库的 多实例和推理控制两方面: 在多层关系数据库多实例中,我们总结前人的工作,首先分析多层关系数据 库的存在的一些问题,接着提出在已有的关系数据库上建立多层关系数据库模型 的原则,最后提出了两个针对不同操作类型的多层关系数据库模型的存储模型: 混合存储模型和分级存储模型。 在推理控制方面,首先针对属性上的全部值,编写算法防止用户利用函数依 赖的信息来进行推理,并且尽可能地减少第二条路径的出现;接着根据常识和常 理检查属性上的部分值,进一步减少信息的漏洞,限制用户推理的发生。 1 4 本文组织 本文共分为六章,文章结构如下: 第一章是引言,阐述了安全数据库技术的发展,安全数据库的研究领域以及 和数据库安全的区别;最后介绍本文的工作。 第二章多层关系数据库,介绍了多层关系数据库的一些基本概念;然后说明 了多层关系数据库需要满足的完整性约束;接着说明了在多层关系数据库出现多 实例的原因,以及多实例的所带来的问题,简单提出了解决多实例的一些原则。 最后根据不同的操作类型,提出两个不同的存储模型,并对这两个模型进行了比 较。 第三章针对多层关系数据库的推理控制,利用函数依赖预先检测和及时调整 数据库中数据的安全等级,然后检测外键引用所引起的推理,从而防止第二条路 径的出现。 第四章介绍了如何根据属性的部分值上防止推理,首先把现实生活中的一些 4复旦大学硕士学位论文 多层关系数据库的推理控制 第一章引言 常识和常理表达成计算机能够理解的形式,然后让计算机能够根据这些转变后的 规则自动地进行多层关系数据库中数据安全等级的检测。 第六章是结束语,对本文作个总结,并对后续工作提出建议。 复旦大学硕士学位论文 多层关系数据库的推理控制 第一章多层关系数据库 第二章多层关系数据库 多层关系数据库m r d ( m u l t i l e v e lr e l m i o n a ld a t a b a s e ) 是存储了带有不同安 全等级的数据的关系数据库,并且对于不同安全级的用户提供相应安全等级的 数据。在多层关系数据库中,给数据d 划分安全等级l ( d ) ,并且为每一用户u 分配安全级l ( u ) 。只有当l ( u ) l ( d ) ,用户u 才能访问数据d ( 表示偏序关系) 。 安全等级划分的单位一般可以分为四类:分别以表,属性,记录以及元素为单 位。 多层数据库和一般的单层数据库如果区分呢? 在多层世界中,当我们提高用 户的权限时,用户的视图就会出现新的事实;反之,当我们降低用户的权限时, 有些事实就必须对用户屏蔽。因此,不同权限的用户会看到现实生活实体不同的 映象。 在多层数据模型中,数据项( d a t ai t e m ) 年1 客体( s u b j e c t ) 都有他们各自的访问 权限,例如:绝密( t s ) 、机密( c s ) 、秘密( s ) 、未分级( u ) 等等。强制访问 控制严格地限制了客体的访问,可以粗略地表示成“禁止上读下写”。但是在现实 生活中,从安全的角度出发,对这条限制要加以补充:给定客体权限的操作不能 因为高等级数据的存在或者不存在而接受或者拒绝这个操作。否则,就会出现信 息通道,从而泄露高安全等级数据的信息u 8 9 2 】。强制访问控制的目的是通过禁止用 户访问未授权的数据,以防止信息的泄露。多层安全数据库正是在客体访问控制 的基础上实现了强制访问控制。然而,低等级的用户可能会从安全等级低的数据、 数据库建模的现实世界的知识或者数据库中的函数等信息中推出安全等级高的数 据。因此,我们必须尽可能的防止用户察觉到安全等级高的数据的存在,或者从 数据操作的结果中得出推理。 2 1 多层关系数据库基本概念 在这里我们简单介绍一下多层关系数据库的一些基本概念。 定义2 1 :关系模型:用二维表格结构表示实体类型,外键表示实体间联系的模型 称为关系模型( r e l a t i o n a lm o d e l ) 。在关系模型中,字段称为属性( a t t r i b u t e ) , 字段值称为属性值,记录称为元组( t u p l e ) ,元组的集合称为关系( r e l a t i o n ) 或 实例( i n s t a n c e ) 。依照惯例,用大写字母a 、b 、c 表示单个属性,z 、y 、x 表示属性的集合。属性a 的可能取的值的集合称为该属性的域( d o m a i n ) ,表 示为d o m ( a 1 。关系模式r 是一个有限的属性集( a l ,a 2 ,a n ) ,记为 复旦大学硕士学位论文 多层关系数据库的推理控制 第二章多层关系数据库 r ( a i ,a 2 ,a n ) 。d o m ( r ) = d o m ( h i ) d o m ( a 2 ) d o m ( a n ) ,其中表 示笛卡尔积。关系模式r 上的关系实例r 是从r 映射到d o m ( r ) 的有限集 “l t 2 ,t n ) ,其中对于r 中的每个映射,t a i 】d o m ( a j ) ,1 i n 。在给定 的关系实例中,x y 代表了属性x 和y 的联合。 定义2 2 :多层关系模式:在多层关系数据库环境中,元组由带有不同安全等级的 数据组成,而这些安全等级根据某一安全格来进行排序。一个多层关系模式 是关系模式r ( a l ,a 2 ,a 。) 的扩展集,在这个扩展集中,安全标记和特定 的属性联系在一起。在一系统中,如果元组中的所有的数据都要求统一分配 安全等级,r c 就只有一个与每一元组相对应的安全等级t c ,即r c ( a i ,a 2 ,a 。, t c ) 。如果元组中的数据的安全等级是不一致的,那么i 沁就包含与各个属性 a l ,a 2 。,a 。相对就的安全等级c l ,c 2 ,c 。,即( a l ,c l ,a 2 ,c 2 ,c 。,a 。) 。 最基本的多层关系是与强制访问控制紧密结合在一起的。多层安全数据库的 强制访问控制措施基于b e l l l a p a d u l a 模型【b j 7 6 1 。客体是一主动的实体,例如能够 请求访问对象的程序;而对象对指被动的实体,例如纪录,文件或者是记录的域。 每一客体分配权限等级,每一对象分配安全等级。权限等级和安全等级共同指向 安全级,这些安全级构成一个安全格。一个安全级是一个元组( 等级,类别) ,其 中等级是指有明确层次关系的组成部分,类别指未排序的集合( 经常为空) 。安全 级c 1 优先于c 2 ,当( 1 ) c l 的层次大于或者先于c 2 的层次,并且( 2 ) c 2 中所有的类 别包含于c 1 中的类别。安全级c i 严格优先于c 2 ,当( 1 ) c 1 的层次大于c 2 的层次, 并且( 2 ) c 2 中所有的类别包含于c l 中的类别,并且c 1 不等于c 2 。 b e l l l a p a d u l a 模型的二个必要条件: 1 、简单准则:如果在一个状态下主体对客体是可见的,那么主体的级别一定 优先于客体的级别。即,主体只能:“向下读”。 2 、星准则:在一个状态下,如果客体的级别高于主体的级别那么主体只能拥 有写的权限而不能拥有读的权限:如果主体的级别和客体的级别相同,那么 主体可以拥有对客体的读权和写权;如果主体的级别高于客体的级别,那么 主体只能拥有读的权限不能拥有写的权限。即,主体只能“向上写”。 这两条是必须遵循的基本准则。 在数据库系统中应用这些概念,首先要确定强制访问控制所保护的对象的粒 度。多层关系数据库有四种分配粒度:按整个关系分配安全级:按关系的各个元 组分配安全级:按关系的各个属性分配安全级;按元素分配安全级。 7 复旦大学硕士学位论文 多层关系数据库的推理控制第二章多层关系数据库 2 2 多层关系数据库的完整性约束 2 2 1 实体完整性: 一个状态满足实体完整性约束当且仅当,任意的一个多元关系r ( 度数为 n ,键的度数为k ) ,r 是r 在c ( 大于等于r 的级别) 上的一个实例中的元组,p 为r 的键: 1 键属性不能为空; 2 键属性中的每个元素的级别要和键的级别相同; 3 键的级别要不高于其他非键属性的级别: 2 2 2 多实例完整性: 一个状态满足多实体完整性约束当且仅当,任意的多层关系r ( 度数为n ) , 任意的c 大于等于r 的级别,有: 1 对于每一个主键,在一个给定的安全等级上只能有一个元组( 元组多 实体) ; 2 对于每一个主键,在一个给定的安全等级上属性只能有一个值( 元素 多实 本) 。 2 2 3 外键完整性g 一个状态满足外键完整性约束当且仅当,任意的一个多元关系r ,r 是r 在c ( 大于等于r 的级别) 上的一个实例中的元组,p 为r 的外键: 1 每一个外键,其中所有的属性要么全为空,要么都非空; 2 每一个外键,所有属性的安全等级都要统一。 2 2 4 引用完整性: 一个状态满足多层引用完整性约束当且仅当,任意一个多层关系r ,r 的某 个属性i 和另一个关系q 上的属性j 建立了外键引用关系。r 是r 在g ( 大于等于 r 的级别) 上的一个实例中的元组,那么,如果r 上的第i 个属性不为空,则q 在 8复旦大学硕士学位论文 多层关系数据库的推理控制 第= 章多层关系数据库 c 级上必定存在元组q ,使得r 的第i 个属性的值和安全级与q 的第j 个属性的值和 安全级相等: 1 对于每一外键,必须要有一个匹配的主键; 2 外键的安全等级必须支配主键的安全等级; 3 包含外键元组的安全等级必须等于包含主键元组的安全等级。 2 。3 多屡关系数据库的多实例 在多层关系数据库中,要对低安全等级的客体隐藏高安全等级的客体的操作 ( 插入、删除、更新) ,以防止可能泄露高安全等级数据的信息通道。同时,也要 防止低安全权限的用户的操作覆盖数据库中高安全等级的数据。多实例就是基于 这种情况下提出来的。 多实例的概念首先是由s e a v i e w 项目提出来的,是指在一个多层关系数据库 中多个拥有同样的名字的数据对象的并发出现,并且这几个多实例通过他们的安 全等级来区别【0 8 7 1 。 2 3 1 元组多实例与元素多实例 元组多实例的关系包含多个有相同主键,但是主键的安全等级不同的元组。 例如表2 1 所表示的例子。在这个例子中,s t a r s h i p 是原数据库关系的主键,星际 船有不同的目标和目的地。这些信息对一般的用户是保密的,也就是,要访问真 实的信息要有一定的安全权限。此时我们可以看到,在元组多实例中,存在着不 同安全等级的相同主键。整个元组的安全等级在( t c ) 则是这个元组所有数据元 素的安全等级的最小上界,这个t c 在实际的数据库可以不存储。我们认为元组多 实例代表着现实中不同的实体:而关系本身并不能指出这两种建模哪种是正确的。 s t a r s h i p lo b j e c t i v el d e s t i n a t i o n 1 t c e n t e r p r i s e u ie x p l o r a t i o n ujt a l o su j u e n t e r p r i s e s is p y i n g s l r i g e l s i s 表2 1 元组多实例的多层关系 表2 2 展示的是元素多实例的多层关系,在各个元素上有各自的安全等级。 但是相同主键的安全等级是致的。这两个元组代表了现实中同一个实体,只是 对不同安全权限的用户显示不同的目标和目的地。 9复旦大学硕士学位论文 多层关系数据库的推理控制第二章多层关系数据库 s t a r s h i p1o b j e c t i v ei d e s t i n a t i o n l t c e n t e r p r i s e u ie x p l o r a t i o n uit a l o su l u e n t e r p r i s e u 1 s p y i n g s lr i g e l s i s 表2 2 元素多实例的多层关系 另外,必须把元组多实例与元组层上的多实例多层关系给区分开来。元组层 上的多实例的安全等级的粒度是在整个元组上的,并且需要存储整个元组的安全 等级。如表2 3 所示: 元组层上的多实例并不存在元组多实例与元素多实例的区别。在表2 3 中, 既两个元组表示是现实世界中的同一实体,也可以表示现实世界中的不同实体。 在多实例中,低级别的元组可能是低级别用户输入的数据,也可能是迷惑低级别 用户的信息。 2 3 2 多实例的引入分类 多实例的引入可以分为可见的和不可见的两种: 1 可见的多实例发生在当一高权限的用户想在数据库中插入一个域上的数 据,而在这个域上已经存在低安全等级的数据。因为直接覆盖原来的数据会导致 一个向下的信息通道,使得低权限的用户知道高权限的用户修改了数据;所以这 个新插入的数据会创建一个新的元组加入到数据库中。 2 不可见的多实体发生在当一个低权限的用户在数据库一个已经有高安全等 级的域上插入一个新的数据时。直接覆盖高安全等级的数据肯定不可行的,而拒 绝这个操作同样会引起一个向下的信息通道,使得低权限的用户知道高安全等级 的数据的存在;因此一个新的元组就会被创建。 下面我们来具体看一下其中的形成过程:假设最初的数据库为 i s t a r s h i po b j e c t i v e d e s t i n a t i o nt c le m e r p r i s e u e x p l o r a t i o n un u l luu 1 可见的多实例引入:( 1 ) u - 级用户更新星际船的目的地为t a l o s : 1 0复旦大学硕士学位论文 多层关系数据库的推理控制 第二章多层关系数据库 ( 2 ) s 一级用户想更新星际船的目的地为r i g d :对于这个更新操作当然不能因为 已经存在低安全等级的数据而加以拒绝,也不能简单地覆盖原有的数据:我们的 处理是引入多实例,其结果为 l s t a r s h i po b j e c t i v e d e s t i n a t i o nt c le n t e 唧s e u e x p l o r a t i o n u1 o suu le n t e m r i s e u e x p l o r a t i o n u r i g e l ss 在这个过程中,s 级用户是知道引入了多实例的。 2 不可见的多实例入:( 1 ) s - 级用户想更新星际船的目的地为r i g e l ( 2 ) u 级用户更新星际船的目的地为t a l o s :由于已经存在着高安全等级的数 据,但u 级用户并不知道,如果加以拒绝,则会泄露高安全等级数据的存在信息, 所以要引入多实例,其结果: s t a r s h i po b j e c t i v e d e s t i n a t i o nt c e n t e r p r i s e u e x p l o r a t i o n u1 a l o suu e n t e r p r i s e u e x p l o r a t i o n u r i g e l ss 在这个过程中,u 级用户是在不知道他的操作会起多实例的。 虽然多实例的引入是为了防止信息通道的发生,但是相应也引起了一些问题: 数据信息的保密性与数据完整性的冲突,多实例的引入当然也增强了数据库的管 理难度,增加了对同一现实世界中不同建模的困惑,不知道哪个实例的信息是正 确可信的。 2 3 3 多实例的研究现状 多层安全数据库的典范是s e a v i e w 模型。s e a v i e w 模型设计了一个满足安全等 级为a 1 的多层安全数据库。s e a v i e w 通过定义实体完整性,解决了键属性的多实 例问题。这个实体完整性要求键中所有属性的安全等级是一致的,也就是对于任 何属于实例r e 的元组t ,如果a i 和a j 都是主键的属性,那么t c i - - t c j ;并且键 属性的值非空。s e a v i e w 提出了用基本的视图来表示不同访问权限的多层关系。 复且大学硕士学位论文 多层关系数据库的推理控制 第二章多层关系数据库 s e a v i e w 模型首先把关系按属性组分组,然后把不同安全等级的数据存放在不同的 表中。s e a v i e w 模型分为两层,第一层为引用监视器,它增加了强制访问的安全性; 第二层是标准关系数据库的扩展,定义了多层关系,形式化数据的分级、数据的 抽取以及数据的一致性等等o l 8 + 船1 。 解决多层安全数据库的多实例信息可靠性问题,一个简单可行的方法是假设 安全等级越高的视图,其数据的可靠性越强;也就是说对于多实例的数据,用户 相信自己所能看到的安全等级最高的数据 c c 9 4 1 。 2 3 4 多实例出现的问题 范围: 首先来看一下例子,假设还是上面用到的数据库,我们规定一下属性的等级 属性等级范围 s t a r s h i p,u 】 o b j e c t i v e【u ,t s 】 d e s t i n a t i o n 【u ,t s 】 t c 【u ,t s 】 以及他们的各自安全等级的取值: s t a r s h i po b j e c t i v e d e s t i n a t i o nt c e n t e r p r i s eue x p l o r a t i o n u蹦o suu e n t e r p r i s eum i n i n g cs i r i u scc e n t e r p r i s eus p y i n g s r i g e l ss e n t e r p r i s euc o u p t so r i o nt st s 在这只有四个安全等级和三个属性的数据库下,如果不采取措施,数据库的最大 元组个数据为多少,以及在这种情况下可能出现的问题: 复旦大学硕士学位论文 多层关系数据库的推理控制第= 章多层关系数据库 s t a r s h i po b j e c t i v e d e s t i n a t i o nt c e n t e r p r i s eu e x p l o r a t i o n u附o suu e n t e r p r i s eue x p l o r a t i o n us i r i u scc e n t e r p r i s eum i n i n g c嘣o suc e n t e r p r i s eum i n i n g cs i r i u scc e n t e r p r i s eue x p l o r a t i o n u r i g e l ss e n t e r p r i s eum i n i n g c r i g e l ss e n t e r p r i s eus p y i n g st a l o sus e n t e r p r i s eus p y i n g ss i r i u scs e n t e r p r i s eus p y i n g s r i g e l ss e n t e r p r i s eue x p l o r a t i o n u0 r i o nt st s e n t e r p r i s eum i n i n g c0 r i o nt st s e n t e r p r i s eus p y i n g so r i o nt st s e n t e r p r i s euc o u p t s砌o sut s e n t e r p r i s euc o u p t s s i r i u sct s e n t e r p r i s euc o u p t s r i g e l st s e n t e r p r i s euc o u p t so r i o nt st s 从表中我们可以看出,不作任何处理的多层安全数据库其元组的个数c o u n t 随着属 性个数a t t n m n 的增加和安全等级分类的c l a s s n u m 增加而快速的增长,其公式为: c o t m t = c l a s s n u m a n lc l a s s n u ma t t 2 c l a s s n u m a t t a = n c l a s s n u m a t t i 可以看出,元组个数的增长和属性的安全等级分类相乘关系,这种快速的增长肯 定会增加系统的负担。如果属性个数非常多,即使只有四个安全分类等级,元组 的个数也是非常惊人的,更何况一般数据库中,安全等级分类的个数远超过四个。 在这种情况下,还有出现另一种问题,对于越高级的用户来说,他的可见视 图越多,在同一安全等级的元组来说,存在着相信哪个元组的问题。当然可以在 属性上定义一个相对的可信度序列,以表达元组数据的可信度的多少,但是一旦 表中属性个数非常大,这种可信度的表达就显得十分庞大,并且加重系统的处理 时间。 由于低安全级的用户不能知道高安全级的数据,即不能知道高安全级元组的 存在。这样,即使高安全级元组中有的属性为低安全级的,但这个低安全级的用 户还是不能知道这个属性的值,因此,就会更改低安全级的数据,这样这个低安 全级的数据就会出现两个不同的数据。例如:原来的数据库为: 1 3复旦大学硕士学位论文 多层关系数据库的推理控制第二章多层关系数据库 【s t a r s h i po b j e c t i v e d e s t i n a t i o nt c e n t e r p r i s e u e x p l o r a t i o n u砌o suu e n t e r p r i s e u e x p l o r a t i o n u r i g e l ss 这时,u 一级的用户想更改o b j e c t i v e 属性值为t r i p ,其改后的数据为 ls t a r s h i p o b j e c t i v e d e s t i n a t i o nt c ie n t c i p r i s e u t r i p ut a l o su u ie n t c r p r i s e u e x p l o r a t i o n u r i g e l ss 这样,对于s 级用户来说,在属性o b j e c t i v e 上存在两个不同的u 一级的数据t r i p 和e x p l o r a t i o n ,如果没有相应的措施,s - 级用户就不能判断这个属性值哪个是真 的,哪个可以相信。这就是所谓的元素多实体。 根据以上的三个问题,我们设计新的多层关系模型: 1 用户相信自己所能看到最高安全级的数据是最可信的; 2 用户只能对自己安全等级的数据进行更改,如果想更改低安全级的数据, 只能重新以低安全级的用户登入,才能修改相应低安全级的数据; 3 对于元素多实体来说,我们规定在同一安全等级上,只能存在一个属性值; 4 对于低安全级的用户的操作,实行连动操作:即当用户修改低安全级的数 据时,不管整个元组的安全级别有多高,也要更改相应的低安全等级的数据,这 即实现了数据的向上写,同时解决了元素多实体的问题。 2 4 关系数据库的多层设计 多层关系数据库的设计包括三个部分: 1 安全策略模型:主要制定多层数据库系统必须遵守的安全规约以及访问控 制策略; 2 上层设计说明:根据安全策略模型的要求以及安全数据库功能的要求,在 概念及方法上给出实现系统的方案; 3 实现说明:根据上层设计说明结合底层d b m s 和o s 的特点,详细地描 述设计方案。 在过去的几年中,人们提出了很多的多层关系数据库的模型,不同的安全 数据库模型有各自的优缺点,在以下的章节中,我们将比较两种不同的多层关 系数据库的存储模型。 兰堡苎燮壁塑苎望丝型 蔓三皇兰星叁墨塑塑壁 2 5 上层设计说明及实现说明 通过利用在单层关系上的构造视图来提供一个多层关系,允许用户在这个多 层关系上进行插入删除和更新操作。这些操作由系统自动的分解到下面的单层关 系上去,实际操作由底层的单层d b m s 完成。这个分解过程对用户完全透明,对 用户来讲,他所能见到存储目标的访问控制策略的数据库就是一个实际的数据库。 为了提供分解的透明性,我们必须扩展单层关系上的完整性约束为多层关系上的 完整性约束,并且在分解各个操作的时候自动维护他们。同时,用户定义的约束 也必须在多层关系上得到维护。 2 5 1 混合存储模型 我们把所有具有相同主键的多层数据只存储在一个表中,即不因数据安全等 级的不同,而把数据分放在不同的表中。同时为了保证数据的可信性,我们规定 对于不同安全等级的数据,用户只相信自己所能得到最高等级的数据。而对于元 素多实体的解决方案是,当高安全等级的数据中含有低安全等级数据的时候,如 果在原有的数据库,已经存在着相应安全等级并且值相同的数据,则高安全等级 的数据的相应值为n u l l 。如果在原有的数据库中,存在相应安全等级但值不相 等的数据,那么如果用户想要更改数据库的数据,就必须先退出高安全权限的用 户登陆,再以低安全权限的用户登陆,实施对低安全等级的数据进行更改后,才 能以高安全权限的用户实现高安全等级的数据的更改和插入。 例如以下的数据模式: s t a r s h i po b j e c t i v e d e s t i n a t i o nt c l e n t e r p r i s e u e x p l o r a t i o n u嘣o suu 如果s 一级的用户想要插入一个s 级的元组( e n t e r p r i s eu ,e x p l o r a t i o nu ,r i g e l s ) ,这时由于原有的数据库中,已经存在着o b j e c t i v e = e x p l o r a t i o n u 的值,所以 插入的元组改为( e n t e r p r i s eu ,n u l l ,r i g e ls ) 。为了保证低安全用户向上写的属 性,我们使插入后的数据库为: s t a r s h i po b j e c t i v e d e s t i n a t i o nt c e n t e r p r i s e u e x p l o r a t i o n u嘲o suu e n t e r p r i s e un u l l r i g e l ss 其中n u l l 并不表示属性o b j e c t i v e 为空,只是表示属性o b j e c t i v e 在s - 级上的取 复旦大学硕士学位论文 多层关系数据库的推理控制 第二章多层关系数据库 值为空,当数据查询时必须从安全等级低一级的属性上抽取相应的值。在展现给 s - 级用户的视图中,其值应该已经由相应的值填上。其用户视图 s t a r s h i po b j e c t i v ed e s t i n a t i o nt c e n t e r p r i s e u e x p l o r a t i o n ut a l o suu e n t e r p r i s e u e x p l o r a t i o n u r i g e l ss 而当s 一级用户想插入一个元组( e n t e r p r i s eu ,t r i pu ,r i g e ls ) ,由于原来数据库的 属性o b j e c t i v e 上的u 级值为t r i p ,而不是s 级用户想更新的e x p l o r a t i o n ,由于直 接插入e x p l o r a t i o n 会导致元素多实体,从而违反了多实体完整性。为了消除元素 多实体,规定在这种情况下,由系统通知s 级用户在u 级上已经存在e x p l o r a t i o n 的o b j e c t i v e 属性,提示s 级用户要不要继续更新,如果要继续更新,就请s 一级用 户先退出登陆,以u 级的用户登陆,然后修改o b j e c t i v e 属性来t r i p ,接着以s 级用户登陆,继续原来的更新。其结果为: s t a r s h i po b j e c t i v e d e s t i n a t i o nt c e n t e r p r i s e u t r i p ut a l o suu i i e n t e r p r i s e un u l l r i g e l ss 如果用户不需要更新u 级的数据,那么只要更新s 级有数据就行了。 虽然这个模型可以解决用户向上写的问题,有效地解决了元素多实体问题, 但却有一个最大的问题:即当低安全权限的用户删除低安全等级的数据时,这些 在高安全等级的元组中相应当安全等级的数据该怎么办,因为当时他们的值为 n u l l 。如果这时把相应的低安全级的数据直接插入元组中,就违反了模型只存储 等同于元组安全等级的数据的规定。为了解决这个矛盾,当删除低安全等级的元 组时,我们只是在数据库标记删除的标识,并不真正删除这个元组。 由于不是真正删除元组,只要存在一个高安全等级的元组时,低安全等级的 元组就只能保留在数据库中。这就会使得数据库的记录越来越大,保存了很多的 空值。另一个主要的问题是由于数据库的主要性能表现在查询上,而由于我们高 安全等级的元组中,只存储这个安全等级的数据,为了显示用户的视图就必须逐 层向下读取数据,直到相应的数据非空为止。如果s 级的用户对上面的数据库进 行查询,由于在s 一级上属性o b j e c t i v e 的值为n u l l ,也就必须到下一安全等级的 元组上去抽取数据。这显然加大了数据查询的时间。随着数据安全等级的增大, 这个影响将会变得非常大。在这基础上,我们作了些改进,提出了分级存储模型。 1 6复旦大学硕士学位论文 多层关系数据库的推理控制 第二章多层关系数据库 2 5 2 分级存储模型 和混合存储模型把不同安全等级的数据存储在同一张表内不同,分级存储模 型把不同安全等级的元组存储在不同的表内,也就是说,表也有自己的安全等级, 并且同一张表内所有的元组的安全等级都是一样的。这极大方便了数据库的维护。 由于对于用户来说,最关心的也是自己安全权限的这一等级的数据。把同一安全 等级的数据放在同一张表内有利于用户快速读取同一安全等级的数据。针对第一 个模型中存储n u l l 出现的情况,我们规定存储真的数据。只有当用户插入或者 更改元组时,对多张表内的数据实行联动操作。也就是说,高安全等级的元组中 包含有低安全等级的数据,当用户更改了低安全等级的数据,必须同时对高安全 等级的元组内的低安全等级的数据进行更改。下图展示了分级存储模型的一般框 架: 图2 1 对于u p d a t e 操作来说,同时对各个等级的表进行查询,如果要更新的内容的 安全级别与几个不同安全等级的表中属性的级别相同,那么必须对这些表内的内 容同时进行更新,以维护数据在同安全等级上的一致性,避免元素多实例。例如 对于下面的多层关系数据库: 复旦大学硕士学位论文 多层关系数据库的推理控制 第二章多层关系数据库 如果u 一级的用户要u p d a t e 属性o b j e c t i v e 为t r i p ,由于三个表在属性o b j e c t i v e 上都有u 一级的数据,所以必须对三个表都进行同时更新,使得三个表在o b j e c t i v e 属性上的u - 级属性同为t r i p ,从而保证了同一安全等级数据的一致性。其更改后 的数据库为: s t a r s h i p io b j e c t i v el d e s t i n a t i o n 1 t c e n t e r p r i s e u ft r i p u u 级元组表 对于d e l e t e 来说,只需简单删除相应的元组就行了。而对i n s e r t 来说,由于 d e l e t e 只删除与用户权限相同安全等级的数据,并没有对比用户权限高的元组表 中相应的数据进行删除,所以在i n s e r t 操作时,就要对高安全等级的元组表中进行 检查。如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论