数据库的安全性与完整性课件_第1页
数据库的安全性与完整性课件_第2页
数据库的安全性与完整性课件_第3页
数据库的安全性与完整性课件_第4页
数据库的安全性与完整性课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

7.1概述7.2数据库安全性控制

第七章数据库的安全性与完整性7.3数据库完整性控制7.4触发器本章小结案例7.1基本概念

数据库是计算机系统中大量数据集中存放的场所,它保存着长期积累的信息资源。如何保护这些宝贵的财富使之不受来自外部的破坏以及非法使用是DBMS的重要任务。数据库中的数据保护是多方面的,包括计算机外部的保护:环境的保护,如加强警戒、防火、防盗社会的保护,如建立各种法规、制度设备保护,如及时进行设备检查和维修也包括计算机内部的保护:网络中数据传输时的数据保护计算机系统中的数据保护操作系统的数据保护数据库系统中的数据保护应用系统中的数据保护7.1基本概念1.安全性和完整性的基本概念(1)安全性与完整性计算机系统的可靠性一般是指系统正常地无故障运行的概率。数据库的可靠性概念则是指数据库的安全性和完整性。安全性是指对数据库进行安全控制,保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。完整性是指数据的正确性、有效性和相容性,即完整性保证数据的准确和一致,使数据库中的数据在任何时候都是有效的。安全性措施防范非法用户和非法操作,完整性措施防范无效数据。7.1基本概念(2)数据库的安全与安全数据库数据库中的数据是一种重要的共享资源,必须在数据库系统中建立一套完整的使用规范。使用者只有按照规则访问数据库并接受来自DBMS的各种检查,才能最终获取访问权限。访问数据库的规范有多种,不同的规范适用于不同的应用。在过去单机方式下的数据库由于共享面窄,因此规范较为宽松;而在网络方式下特别是在因特网方式下,由于数据共享面广,故规范较为严格,因此,根据应用的不同需求,数据库的安全分不同级别。那些能适应网络环境下安全要求级别的数据库称为安全数据库或者可信数据库。目前我国所使用的许多DBMS都达不到安全数据库的要求,在网上使用均存在安全隐患,因此当务之急是大力推广使用安全数据库。7.1基本概念(3)可信计算基可信计算基(TrustedComputingBase,TCB)是为实现数据库安全的所有实施策略与机制的集合,它是实施、检查、监督数据库安全的机构,这是数据库安全中的一个基本概念。(4)主体与客体客体:数据库中数据及其载体主体:数据库中数据访问者、进程、线程等7.1基本概念(5)自主访问控制与强制访问控制自主访问控制DAC,它是一种基于存取矩阵的模型,它由主体、客体与存/取操作组成,它们构成了一个矩阵。矩阵的列表示主体,行表示客体,矩阵中的元素是存/取操作。在自主访问控制中,主体可通过授权的形式变更某些操作权限,访问控制受主体主观随意性的影响较大,其安全力度尚嫌不足。强制访问控制MAC,它是主体访问客体的一种强制性的安全控制方式。对主体/客体进行标记:一种是安全级别标记,一种是安全范围标记。前者是一个数字规定了主体、客体的安全级别。在访问时只有主体级别与客体级别满足一定比较关系时才能允许。在强制访问控制中,主客体标记由专门的安全管理员设置,任何主体均无权设置与授权。7.1基本概念(6)隐蔽通道(hidingchannel)在主体访问客体时一般通过正常路径访问,因此TCB可以在访问路径中检查。但是,实际上往往存在多种非正常访问路径,这种路径比较隐蔽且逃过了TCB的检查,称为隐蔽通道。(7)数据库安全的形式化(formalizationofdatabasesecurity)由于数据库安全在整个系统中的重要性,因此需要建立一套有效的形式化体系,用于保证自身的正确性,发现并填补安全漏洞,防止隐蔽通道,并为数据安全的进一步研究提供理论基础。因此,数据库安全的形式化已成为高级别数据库安全的必要条件。7.1基本概念(8)审计(audit)除采用访问检查的方式之外,还采用辅助的跟踪、审计手段,随时记录主体对客体的访问轨迹,并作出分析以供参考,同时在一旦发生非法访问后能即时提供初始记录以便进一步处理,这就是数据库安全中的审计。审计的功能是对主体访问客体作即时记录,内容包括:访问时间、访问类型、访问客体名、是否成功等。(9)访问监控器(accessmonitor)前述功能还需要有一个独立的、抗篡改的、复杂度足够小的系统实体以实现数据安全,这就是访问监控器。访问监控器在功能上仲裁主体对客体的全部访问,具有扩充的审计功能,提供系统恢复机制。它是一个独立的物理机构,由一定的软件与硬件联合组成。7.1基本概念2.数据库安全性标准计算机系统安全分为三大类:(1)技术安全类(2)管理安全类(3)政策法律类用户标识和鉴别DB数据密码存储OS安全保护DBMS存取控制网络控制7.1基本概念A.数据库的安全标准1985年美国国防部DOD颁布的《DOD可信计算机系统评估标准》,简称TCSEC,又称为橘皮书。制定该标准的目的主要有:(1)提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度进行评估。(2)给计算机行业的制造商提供一种可遵循的指导规则,使其产品能够更好地满足敏感应用的安全需求。7.1基本概念1991年美国NCSC(国家计算机安全中心)颁布了《可信计算机系统评估标准关于可信数据库系统的解释》,简称TDI,又称为紫皮书。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。1996年国际标准化组织ISO又颁布了《信息技术安全技术—信息技术安全性评估准则》(InformationTechnologySecurityTechniques—EvaluationCriteriaForITSecurity),简称CC标准。目前国际上广泛采用的是美国标准TCSEC(TDI)。7.1基本概念TCSEC(TDI)中将数据安全划分为四组七级。安全性级别划分如下:(数据库安全常用的级别是C2级、B1级和B2级)安全级别定义A1

验证设计(VerifiedDesign)B3

安全域(SecurityDomains)B2

结构化保护(StructuralProtection)B1

标记安全保护(LabeledSecurityProtection)C2

受控的存取保护(ControlledAccessProtection)C1

自主安全保护(DiscretionarySecurityProtection)D

最小保护(MinimalProtection)7.1基本概念各个级别的介绍:(1)D级标准为基本无安全保护的系统。(2)C1级标准满足该级别的系统必须具有如下功能:主体、客体以及主、客体分离;身份标识与鉴别;数据完整性;自主访问控制。其核心是自主访问控制。C1级适合于单机工作的方式。7.1基本概念(3)C2级标准满足该级别的系统必须具有如下功能:满足C1级标准的全部功能;审计其核心是审计。C2级适合于单击工作的方式。C2级实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。(4)B1级标准满足该级别的系统必须具有如下功能:满足C2级标准的全部功能;强制访问控制其核心是强制访问控制。B1级适合于网络工作的方式。7.1基本概念(5)B2级标准满足该级别的系统必须具有如下功能:满足B1级标准的全部功能;预防隐蔽通道;数据库安全的形式化其核心是预防隐蔽通道和安全的形式化。适合于网络工作的方式。目前国内外均尚无符合此类标准的系统,其主要的难点是数据库安全的形式化表示困难。(6)B3级标准满足该级别的系统必须具有如下功能:满足B2级标准的全部功能;访问监控器其核心是访问监控器。适合于网络工作的方式。国内外均无符合此类标准的产品。7.1基本概念(7)A级标准满足该级别的系统必须具有如下功能:满足B3级标准的全部功能;较高的形式化要求,如安全验证此级别是安全的最高等级,应具有完善的形式化要求,目前尚无法实现,仅是一种理想化的等级。7.1基本概念B.我国国家标准我国政府于1999年颁布了“计算机信息系统评估准则”。为与国际接轨,其基本结构与TCSEC相似。我国标准分为5级:TCSEC标准我国标准D

无C1

第1级:用户自主保护级C2

第2级:系统审计保护级B1

第3级:安全标记保护级B2

第4级:结构化保护级B3

第5级:访问验证保护级A

无7.1基本概念C.DBMS安全模型一种比较通用的DBMS安全模型:用户登录成功才是数据库的合法用户,才能与数据库建立连接。一个角色一般是指一个机构内的一个称谓或一个任务的集合。为了方便,可把用户归属不同的角色,对不同的角色有不同的授权。数据库对象包括表、视图、索引、列、域等。对数据库对象的访问控制主要是通过授权机制。登录用户角色权限对象7.2数据库安全性控制1.用户标识与鉴别用用户标识来表明用户的身份系统核对口令以进一步鉴别身份利用用户自身具备的各种自然特征标识自己和提供鉴别的依据。利用用户持有的证件。利用口令。口令保密可采用的一些方法:(1)扩大口令集和口令长度。(2)规定口令的生效时间,定期或不定期地更换口令(3)设置多层口令系统。(4)设置动态口令。7.2数据库安全性控制2.存取控制

A.存取控制方法DBMS的安全子系统主要包括两部分:定义用户权限,并将用户权限登记到数据字典中。合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。用户权限组成:数据对象和操作类型。在数据库系统中,定义存取权限称为授权。(1)自主存取控制(DAC)

用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。7.2数据库安全性控制

(2)强制存取控制(MAC)在强制存取控制(MAC)方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。MAC适用于对数据有严格而固定密级分类的部门。主体:是指数据库中数据访问者、(用户、DBA)进程、线程等,是系统中的活动实体。客体:是指数据库中数据及其载体(表、视图、索引、存储过程等),是系统中的被动实体。7.2数据库安全性控制对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。主体的敏感度标记称为许可证级别。客体的敏感度标记称为密级。客体子集主体子集访问7.2数据库安全性控制MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。当某一主体以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:

①仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;②仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。2.如何实现存取控制?(1)用户分类分类与权限一般分为四类:系统用户(或DBA)数据对象的属主一般用户公共用户SQLServer系统管理员DBA数据库对象用户数据库访问用户(2)常有的几种权限①数据访问权限读、插入、修改、删除权限②数据库模式修改权限(数据库管理权限):索引权限、资源权限、修改权限、撤销权限(drop)7.2数据库安全性控制

(3)授权

GRANT语句向用户授予操作权限

一般格式为:

GRANT<权限>[,<权限>]…[ON<对象类型><对象名>]TO<用户>[,<用户>]...

[WITHGRANTOPTION]语义为:将对指定操作对象的指定操作权限授予指定的用户。可将此权限转授

对不同类型的操作对象有不同的操作权限:7.2数据库安全性控制例:把查询表SC和修改其学号的权限授给用户

U2和U4(或全体)。

GRANTSELECT,

UPDATE(Sno)ONTABLESCTOU2,U4;例:把对表SC的INSERT权限授给用户U5,并允许将此权限再授予其他用户。

GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;U5还可以将此权限授予U6:

GRANTINSERTONTABLESCTOU6;或:PUBLIC;U6能不能再传播此权限?7.2数据库安全性控制例:

DBA把在数据库DB1中建立表的权限授予用户U1。

GRANTCREATETABONDATABASEDB1TOU1;GRANT语句可以:一次向一个用户授权;一次向多个用户授权;一次传播多个同类对象的权限;一次可以完成对基本表、视图和属性列这些不同对象的授权。

收回权限:级联:(但系统只收回直接或间接从某处获得的权限)UAUB改U1查U2改改U3UA回收U1隐含权限?7.2数据库安全性控制3.视图机制通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。视图机制间接地实现了支持存取谓词的用户权限定义。通过为不同的用户定义不同的视图,可以限制各个用户的访问范围。例:仅允许某个用户查询男学生记录。CREATEVIEWStudent_maleASSELECT*FROMStudentWHEREsex=‘男’;7.2数据库安全性控制4.数据加密对高度敏感性数据,例如,财务数据、军事数据、国家机密,除以上安全性措施外,还可以采用数据加密技术,以密文形式存储和传输数据。这样即使企图通过不正常渠道获取数据,也只能看到一些无法辨认的二进制码。数据加密的方法基本上有三种:信息编码、信息置换和信息替换。常用的密码方法有:DES、公钥密码等。由于数据加解密是比较耗时的操作,而且数据加密与解密程序会占用大量系统资源,增加了系统的开销,降低了数据库的效率,因此数据加解密功能通常作为可选特征。7.2数据库安全性控制5.跟踪审计跟踪审计是一种监视措施。数据库在运行中,DBMS跟踪用户对一些敏感数据的存取活动,跟踪的结果记录在审计文件中。一旦发现有窃取数据的企图,有的DBMS会发出警报信息,多数DBMS虽无警报功能,但也可在事后根据记录进行分析,从中发现危及安全的行为,找出原因,追究责任,采取防范措施。跟踪审计的内容:请求;操作类型;操作终端标识与操作者标识;操作日期和时间;操作所涉及的对象;数据的前映像和后映像。审计很耗时间和空间,所以一般作为可选功能。

7.3数据库的完整性控制1.数据库的完整性数据库的完整性:是指数据的正确性、有效性和相容性。

正确性指数据的真实合法性;

有效性指数据的值是否属于所定义的有效范围;

相容性指表示同一事实的多个数据必须一致。

说明:

完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。数据库完整性约束条件:加在数据库数据之上的语义约束条件。完整性检查:而DBMS中检查数据是否满足完整性条件的机制。

7.3数据库的完整性控制DBMS中执行完整性检查的子系统称为“完整性子系统”,主要功能有:对事务的执行进行监控,检测事务的操作是否违反了完整性约束条件。对违反完整性约束条件的操作采取相应的措施以保证数据的完整性。DBMS的完整性控制机制应具有三个方面的功能:

(1)定义功能:提供定义完整性约束条件的机制。

(2)检查功能:检查用户发出的操作请求是否违背完整性约束条件

(3)防范功能:如果发现用户的操作请求使数据违背了完整性约束条件,采取一定的动作来保证数据的完整性。7.3数据库的完整性控制

完整性控制的规则:一条完整性规则可用五元组(D,O,A,C,P)来表示:(1)D(Data)约束作用的数据对象;(2)O(Operation)触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查;(3)A(Assertion)数据对象必须满足的断言或语义约束,这是规则的主体;(4)C(Condition)选择A作用的数据对象值的谓词;(5)P(Procedure)违反完整性规则时触发的过程。如:在“讲师工资不得低于1000元”的约束中:

D约束作用的对象为工资Sal属性

O插入或修改职工元组时

ASal不能小于1000C职称=‘讲师'(A仅作用于职称='讲师'的记录)P拒绝执行该操作7.3数据库的完整性控制完整性的语义约束和检查实现方式有两种:一种是通过定义和使用完整性约束规则,另一种是通过触发器和存储过程来实现。分为以下几种:(1)立即执行约束:检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查。(2)延迟执行约束:完整性检查延迟到整个事务执行结束后再进行,检查正确方可提交。(3)在事务的某些特定检查点检查。(4)在一个维护操作请求之后且执行之前检查。(5)在DBA或审计员发出检查请求时。7.3数据库的完整性控制完整性约束条件作用的对象:关系、元组、列静态约束:是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束。动态约束:是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。7.3数据库的完整性控制SQL中的完整性约束

1、基本表的约束(1)主码约束

PRIMARYKEY(<列名表>)(2)外码约束

FOREIGNKEY(<列名表>)REFERENCE<目标表>[(<列名表>)][ONDELETE<参照动作>][ONUPDATE<参照动作>]

<参照动作>:NOACTION、CASCADE、RESTRICT、

SETNULL、SETDEFAULT7.3数据库的完整性控制实现参照完整性要考虑的问题:①在被参照关系中删除元组这时主要有三种不同的策略:级联删除(CASCADE)受限删除(RESTRICT)置空值删除(SETNULL)②修改被参照关系中主码若允许修改主码,主要有三种不同的策略:级联修改(CASCADE)受限修改(RESTRICT)置空值修改(SETNULL)7.3数据库的完整性控制(3)检查约束

CHECK(<条件表达式>)2、域约束

CREATEDOMAIN<域名><域类型>CHECK(<条件>)

例:

3、断言

注意:CHECK子句只对定义它的表起作用,对其它表不起作用

例:

当约束条件涉及多个表、使用聚集操作时应使用断言。

CREATEASSERTION<断言名>CHECK(<条件>)

例:7.4触发器

触发器:当对相关表执行INSERT、UPDATE、DELETE语句时被隐式执行的过程。触发器与存储过程的区别:存储过程由用户或应用显示执行;触发器是为一激发语句发出时由DBMS隐式地触发。触发器的组成:

(1)触发事件(2)触发条件(3)触发器动作触发器的作用:强制实现更复杂的完整性约束。触发器的类型:

(1)AFTER(2)BEFORE

例:--7.4触发器例:规定修改SC表的grade值时,修改后的值不能低于修改前的值。

CREATETRIGGERTrig_gradeAFTERUPDATEOFgradeONSCREFERENCINGOLDASoldg,NEWASnewgFOREACHROWWHEN(oldg.grade>newg.grade)UPDATESCSETgrade=oldg.gradeWHEREcno=o;触发事件触发条件触发器动作SQLServer的安全体系登录用户DB用户DB安全性与完整性安全模型与安全级别计算机用户网络用户SQLServer2005安全性新特性安全增强特性:SQLServer

温馨提示

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

评论

0/150

提交评论