第七章数据库的安全性与完整性课件.ppt

上传人:牧羊曲112 文档编号:3730671 上传时间:2023-03-18 格式:PPT 页数:44 大小:519.50KB
返回 下载 相关 举报
第七章数据库的安全性与完整性课件.ppt_第1页
第1页 / 共44页
第七章数据库的安全性与完整性课件.ppt_第2页
第2页 / 共44页
第七章数据库的安全性与完整性课件.ppt_第3页
第3页 / 共44页
第七章数据库的安全性与完整性课件.ppt_第4页
第4页 / 共44页
第七章数据库的安全性与完整性课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《第七章数据库的安全性与完整性课件.ppt》由会员分享,可在线阅读,更多相关《第七章数据库的安全性与完整性课件.ppt(44页珍藏版)》请在三一办公上搜索。

1、7.1 概述,7.2 数据库安全性控制,第七章 数据库的安全性与完整性,7.3 数据库完整性控制,7.4 触发器,本章小结,案例,7.1 基本概念,数据库是计算机系统中大量数据集中存放的场所,它保存着长期积累的信息资源。如何保护这些宝贵的财富使之不受来自外部的破坏以及非法使用是DBMS的重要任务。数据库中的数据保护是多方面的,包括计算机外部的保护:环境的保护,如加强警戒、防火、防盗社会的保护,如建立各种法规、制度设备保护,如及时进行设备检查和维修也包括计算机内部的保护:网络中数据传输时的数据保护计算机系统中的数据保护操作系统的数据保护数据库系统中的数据保护应用系统中的数据保护,7.1 基本概念

2、,1.安全性和完整性的基本概念(1)安全性与完整性计算机系统的可靠性一般是指系统正常地无故障运行的概率。数据库的可靠性概念则是指数据库的安全性和完整性。安全性是指对数据库进行安全控制,保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。完整性是指数据的正确性、有效性和相容性,即完整性保证数据的准确和一致,使数据库中的数据在任何时候都是有效的。安全性措施防范非法用户和非法操作,完整性措施防范无效数据。,7.1 基本概念,(2)数据库的安全与安全数据库数据库中的数据是一种重要的共享资源,必须在数据库系统中建立一套完整的使用规范。使用者只有按照规则访问数据库并接受来自DBMS的各种检查,才能最

3、终获取访问权限。访问数据库的规范有多种,不同的规范适用于不同的应用。在过去单机方式下的数据库由于共享面窄,因此规范较为宽松;而在网络方式下特别是在因特网方式下,由于数据共享面广,故规范较为严格,因此,根据应用的不同需求,数据库的安全分不同级别。那些能适应网络环境下安全要求级别的数据库称为安全数据库或者可信数据库。目前我国所使用的许多DBMS都达不到安全数据库的要求,在网上使用均存在安全隐患,因此当务之急是大力推广使用安全数据库。,7.1 基本概念,(3)可信计算基可信计算基(Trusted Computing Base,TCB)是为实现数据库安全的所有实施策略与机制的集合,它是实施、检查、监督

4、数据库安全的机构,这是数据库安全中的一个基本概念。(4)主体与客体客体:数据库中数据及其载体主体:数据库中数据访问者、进程、线程等,7.1 基本概念,(5)自主访问控制与强制访问控制自主访问控制DAC,它是一种基于存取矩阵的模型,它由主体、客体与存/取操作组成,它们构成了一个矩阵。矩阵的列表示主体,行表示客体,矩阵中的元素是存/取操作。在自主访问控制中,主体可通过授权的形式变更某些操作权限,访问控制受主体主观随意性的影响较大,其安全力度尚嫌不足。强制访问控制MAC,它是主体访问客体的一种强制性的安全控制方式。对主体/客体进行标记:一种是安全级别标记,一种是安全范围标记。前者是一个数字规定了主体

5、、客体的安全级别。在访问时只有主体级别与客体级别满足一定比较关系时才能允许。在强制访问控制中,主客体标记由专门的安全管理员设置,任何主体均无权设置与授权。,7.1 基本概念,(6)隐蔽通道(hiding channel)在主体访问客体时一般通过正常路径访问,因此TCB可以在访问路径中检查。但是,实际上往往存在多种非正常访问路径,这种路径比较隐蔽且逃过了TCB的检查,称为隐蔽通道。(7)数据库安全的形式化(formalization of database security)由于数据库安全在整个系统中的重要性,因此需要建立一套有效的形式化体系,用于保证自身的正确性,发现并填补安全漏洞,防止隐蔽通

6、道,并为数据安全的进一步研究提供理论基础。因此,数据库安全的形式化已成为高级别数据库安全的必要条件。,7.1 基本概念,(8)审计(audit)除采用访问检查的方式之外,还采用辅助的跟踪、审计手段,随时记录主体对客体的访问轨迹,并作出分析以供参考,同时在一旦发生非法访问后能即时提供初始记录以便进一步处理,这就是数据库安全中的审计。审计的功能是对主体访问客体作即时记录,内容包括:访问时间、访问类型、访问客体名、是否成功等。(9)访问监控器(access monitor)前述功能还需要有一个独立的、抗篡改的、复杂度足够小的系统实体以实现数据安全,这就是访问监控器。访问监控器在功能上仲裁主体对客体的

7、全部访问,具有扩充的审计功能,提供系统恢复机制。它是一个独立的物理机构,由一定的软件与硬件联合组成。,7.1 基本概念,2.数据库安全性标准计算机系统安全分为三大类:(1)技术安全类(2)管理安全类(3)政策法律类,7.1 基本概念,A.数据库的安全标准1985年美国国防部DOD颁布的DOD可信计算机系统评估标准,简称TCSEC,又称为橘皮书。制定该标准的目的主要有:(1)提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度进行评估。(2)给计算机行业的制造商提供一种可遵循的指导规则,使其产品能够更好地满足敏感应用的安全需求。,7.1 基本概念,1991年美国NCSC(国家计算机

8、安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释,简称TDI,又称为紫皮书。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。1996年国际标准化组织ISO又颁布了信息技术安全技术信息技术安全性评估准则(Information Technology Security TechniquesEvaluation Criteria For IT Security),简称CC标准。目前国际上广泛采用的是美国标准TCSEC(TDI)。,7.1 基本概念,TCSEC(TDI)中将数据安全划分为四组七级。安全性级别划分如下:(数据库安全常用的级别是C2级、B1级和

9、B2级),7.1 基本概念,各个级别的介绍:(1)D级标准为基本无安全保护的系统。(2)C1级标准满足该级别的系统必须具有如下功能:主体、客体以及主、客体分离;身份标识与鉴别;数据完整性;自主访问控制。其核心是自主访问控制。C1级适合于单机工作的方式。,7.1 基本概念,(3)C2级标准满足该级别的系统必须具有如下功能:满足C1级标准的全部功能;审计其核心是审计。C2级适合于单击工作的方式。C2级实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。(4)B1级标准满足该级别的系统必须具有如下功能:满足C2级标准的全部功能;强制访

10、问控制其核心是强制访问控制。B1级适合于网络工作的方式。,7.1 基本概念,(5)B2级标准满足该级别的系统必须具有如下功能:满足B1级标准的全部功能;预防隐蔽通道;数据库安全的形式化其核心是预防隐蔽通道和安全的形式化。适合于网络工作的方式。目前国内外均尚无符合此类标准的系统,其主要的难点是数据库安全的形式化表示困难。(6)B3级标准满足该级别的系统必须具有如下功能:满足B2级标准的全部功能;访问监控器其核心是访问监控器。适合于网络工作的方式。国内外均无符合此类标准的产品。,7.1 基本概念,(7)A级标准满足该级别的系统必须具有如下功能:满足B3级标准的全部功能;较高的形式化要求,如安全验证

11、此级别是安全的最高等级,应具有完善的形式化要求,目前尚无法实现,仅是一种理想化的等级。,7.1 基本概念,B.我国国家标准我国政府于1999年颁布了“计算机信息系统评估准则”。为与国际接轨,其基本结构与TCSEC相似。我国标准分为5级:,7.1 基本概念,C.DBMS安全模型一种比较通用的DBMS安全模型:用户登录成功才是数据库的合法用户,才能与数据库建立连接。一个角色一般是指一个机构内的一个称谓或一个任务的集合。为了方便,可把用户归属不同的角色,对不同的角色有不同的授权。数据库对象包括表、视图、索引、列、域等。对数据库对象的访问控制主要是通过授权机制。,7.2 数据库安全性控制,1.用户标识

12、与鉴别用用户标识来表明用户的身份系统核对口令以进一步鉴别身份利用用户自身具备的各种自然特征标识自己和提供鉴别的依据。利用用户持有的证件。利用口令。口令保密可采用的一些方法:(1)扩大口令集和口令长度。(2)规定口令的生效时间,定期或不定期地更换口令(3)设置多层口令系统。(4)设置动态口令。,7.2 数据库安全性控制,2.存取控制 A.存取控制方法DBMS的安全子系统主要包括两部分:定义用户权限,并将用户权限登记到数据字典中。合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。用户权限组成:数据对象和操作类型。在数据库系统中,定义存取权限称为授权。(1)自主存取控制(DAC)

13、用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。,7.2 数据库安全性控制,(2)强制存取控制(MAC)在强制存取控制(MAC)方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。MAC适用于对数据有严格而固定密级分类的部门。主体:是指数据库中数据访问者、(用户、DBA)进程、线程等,是系统中的活动实体。客体:是指数据库中数据及其载体(表、视图、索引、存储过程等),是系统中的被动实体。,

14、7.2 数据库安全性控制,对于主体和客体,DBMS为它们每个实例(值)指派一 个敏感度标记(Label)。敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。主体的敏感度标记称为许可证级别。客体的敏感度标记称为密级。,客体子集,主体子集,7.2 数据库安全性控制,MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。当某一主体以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;,仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体这两种规则的共同点在于

15、它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。,2.如何实现存取控制?,(1)用户分类分类与权限一般分为四类:系统用户(或DBA)数据对象的属主一般用户公共用户,SQL Server,系统管理员,DBA,数据库对象用户,数据库访问用户,(2)常有的几种权限 数据访问权限 读、插入、修改、删除权限 数据库模式修改权限(数据库管理权限):索引权限、资源权限、修改权限、撤销权限(drop),7.2 数据库安全性控制,(3)授权 GRANT语句向用户授予操作权限 一般格式为:GRANT,ON TO,.WITH GRANT OPTION语义为:将对指定操作对象的指定操

16、作权限授予指定的用户。,可将此权限转授,对不同类型的操作对象有不同的操作权限:,7.2 数据库安全性控制,例:把查询表SC和修改其学号的权限授给用户 U2和U4(或全体)。GRANT SELECT,UPDATE(Sno)ON TABLE SC TO U2,U4;,例:把对表SC的INSERT权限授给用户U5,并允许将此权限再授予其他用户。GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;U5还可以将此权限授予U6:GRANT INSERT ON TABLE SC TO U6;,或:PUBLIC;,U6能不能再传播此权限?,7.2 数据库安全性控制

17、,例:DBA把在数据库 DB1中建立表的权限授予用户U1。GRANT CREATETAB ON DATABASE DB1 TO U1;,GRANT语句可以:一次向一个用户授权;一次向多个用户授权;一次传播多个同类对象的权限;一次可以完成对基本表、视图和属性列这些不同对象的授权。收回权限:级联:(但系统只收回直接或间接从某处获得的权限),UA,UB,UA回收,U1隐含权限?,7.2 数据库安全性控制,3.视图机制通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。视图机制间接地实现了支持存取谓词的用户权限定义。通过为不同的用户定义不同的视图,可以限制各个用

18、户的访问范围。例:仅允许某个用户查询男学生记录。CREATE VIEW Student_maleAS SELECT*FROM StudentWHERE sex=男;,7.2 数据库安全性控制,4.数据加密对高度敏感性数据,例如,财务数据、军事数据、国家机密,除以上安全性措施外,还可以采用数据加密技术,以密文形式存储和传输数据。这样即使企图通过不正常渠道获取数据,也只能看到一些无法辨认的二进制码。数据加密的方法基本上有三种:信息编码、信息置换和信息替换。常用的密码方法有:DES、公钥密码等。由于数据加解密是比较耗时的操作,而且数据加密与解密程序会占用大量系统资源,增加了系统的开销,降低了数据库的

19、效率,因此数据加解密功能通常作为可选特征。,7.2 数据库安全性控制,5.跟踪审计跟踪审计是一种监视措施。数据库在运行中,DBMS跟踪用户对一些敏感数据的存取活动,跟踪的结果记录在审计文件中。一旦发现有窃取数据的企图,有的DBMS会发出警报信息,多数DBMS虽无警报功能,但也可在事后根据记录进行分析,从中发现危及安全的行为,找出原因,追究责任,采取防范措施。跟踪审计的内容:请求;操作类型;操作终端标识与操作者标识;操作日期和时间;操作所涉及的对象;数据的前映像和后映像。审计很耗时间和空间,所以一般作为可选功能。,7.3 数据库的完整性控制,1.数据库的完整性数据库的完整性:是指数据的正确性、有

20、效性和相容性。正确性指数据的真实合法性;有效性指数据的值是否属于所定义的有效范围;相容性指表示同一事实的多个数据必须一致。说明:完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。数据库完整性约束条件:加在数据库数据之上的语义约束条件。完整性检查:而DBMS中检查数据是否满足完整性条件的机制。,7.3 数据库的完整性控制,DBMS中执行完整性检查的子系统称为“完整性子系统”,主要功能有:对事务的执行进行监控,检测事务的操作是否违反了完整性约束条件。对违反完整性约束条件的操作采取相应的措施以保证数据的完整性。DBMS的完整性控制机制应具有三个方面的功能:(1)定义功能:提供定

21、义完整性约束条件的机制。(2)检查功能:检查用户发出的操作请求是否违背完整性约束条件(3)防范功能:如果发现用户的操作请求使数据违背了完整性约束条件,采取一定的动作来保证数据的完整性。,7.3 数据库的完整性控制,完整性控制的规则:一条完整性规则可用五元组(D,O,A,C,P)来表示:(1)D(Data)约束作用的数据对象;(2)O(Operation)触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查;(3)A(Assertion)数据对象必须满足的断言或语义约束,这是规则的主体;(4)C(Condition)选择A作用的数据对象值的谓词;(5

22、)P(Procedure)违反完整性规则时触发的过程。如:在“讲师工资不得低于1000元”的约束中:D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时 A Sal不能小于1000 C 职称=讲师(A仅作用于职称=讲师的记录)P 拒绝执行该操作,7.3 数据库的完整性控制,完整性的语义约束和检查实现方式有两种:一种是通过定义和使用完整性约束规则,另一种是通过触发器和存储过程来实现。分为以下几种:(1)立即执行约束:检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查。(2)延迟执行约束:完整性检查延迟到整个事务执行结束后再进行,检查正确方可提交。(3)在事务的某些特定检查点检查

23、。(4)在一个维护操作请求之后且执行之前检查。(5)在DBA或审计员发出检查请求时。,7.3 数据库的完整性控制,完整性约束条件 作用的对象:关系、元组、列静态约束:是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束。动态约束:是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。,7.3 数据库的完整性控制,SQL中的完整性约束 1、基本表的约束(1)主码约束 PRIMARY KEY()(2)外码约束 FOREIGN KEY()REFERENCE()ON DELETE ON UPDATE:NO ACTION、C

24、ASCADE、RESTRICT、SET NULL、SET DEFAULT,7.3 数据库的完整性控制,实现参照完整性要考虑的问题:在被参照关系中删除元组 这时主要有三种不同的策略:级联删除(CASCADE)受限删除(RESTRICT)置空值删除(SET NULL)修改被参照关系中主码若允许修改主码,主要有三种不同的策略:级联修改(CASCADE)受限修改(RESTRICT)置空值修改(SET NULL),7.3 数据库的完整性控制,(3)检查约束 CHECK()2、域约束 CREATE DOMAIN CHECK()例:3、断言 注意:CHECK子句只对定义它的表起作用,对其它表不起作用 例:当

25、约束条件涉及多个表、使用聚集操作时应使用断言。CREATE ASSERTION CHECK()例:,7.4 触发器,触发器:当对相关表执行INSERT、UPDATE、DELETE语句时被隐式执行的过程。触发器与存储过程的区别:存储过程由用户或应用显示执行;触发器是为一激发语句发出时由DBMS隐式地触发。触发器的组成:(1)触发事件(2)触发条件(3)触发器动作 触发器的作用:强制实现更复杂的完整性约束。触发器的类型:(1)AFTER(2)BEFORE 例:-,7.4 触发器,例:规定修改SC表的grade值时,修改后的值不能低于修改前的值。CREATE TRIGGER Trig_grade A

26、FTER UPDATE OF grade ON SC REFERENCING OLD AS oldg,NEW AS newg FOR EACH ROW WHEN(oldg.gradenewg.grade)UPDATE SC SET grade=oldg.grade WHERE cno=o;,触发事件,触发条件,触发器动作,SQL Server的安全体系,登录用户,DB用户,DB安全性与完整性安全模型与安全级别,计算机用户,网络用户,SQL Server2005安全性新特性,安全增强特性:SQL Server 2005包含诸如数据库加密、安全缺省设置、口令策略强制、较细粒度权限控制以及增强安全模

27、型之类的安全增强特性。sql server 2005中的新型安全模型将把用户从对象中独立出来,提供较细粒度的访问方式,并支持针对数据访问的更强控制能力。此外,所有系统表格都将以视图的形式实现,从而提供针对数据库系统对象的更多控制能力。数据加密功能:以前是使用Windows的EFS(加密文件系统)功能加密数据库文件或在应用程序层对数据加密后再存储。SQL Server 2005不是简单的提供一些加密函数,而是把市场上已经成熟的数据安全技术引进到数据库中,有一个清晰的加密层次结构。SQL Server 2005 支持证书(certificate),每一层都使用证书、非对称密钥和对称密钥的组合对它下

28、面的一层进行加密,提高了密钥安全性。,SQL Server的数据完整性,数据完整性的实施方法:过程型数据完整性:由缺省、规则和触发器实现。声明型数据完整性:作为数据库说明的一部分在语法中实现。实现方法是:在CREATE TABLE和ALTER TABLE定义中 使用sonstraint和default语句限制表中的值。在CREATE TABLE和ALTER TABLE语句中,约束子句有:缺省约束(default sonstraint):当向表中插入数据时,如果用户没有明确给出某列的值,SQL SERVER自动为该列输入指定值。检查约束(check sonstraint):限制插入列中的值。唯一

29、约束(unique sonstraint):保证指定列上的值唯一。主码约束(Primary key sonstraint):保证主码列上值唯一,且没有空值。参照约束(reference constraint)/外码约束(Foreign key sonstraint):要求指定的列(外码)中正被插入或更新的新值,必须在被参照表(主表)的主码列中已经存在。,第七章 安全性与完整性小结,数据库安全控制技术用户标识与鉴别存取控制审计视图密码存储DBMS的完整性控制的功能:定义功能、检查功能、防范功能DBMS的完整性控制策略:利用主码实现实体完整性利用外码实现参照完整性利用一般约束,SQL断言等实现用户定义完整性(用触发器实现特殊要求的完整性),本章练习:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号