数据库安全性与完整性课件.ppt

上传人(卖家):三亚风情 文档编号:3539364 上传时间:2022-09-14 格式:PPT 页数:111 大小:602.05KB
下载 相关 举报
数据库安全性与完整性课件.ppt_第1页
第1页 / 共111页
数据库安全性与完整性课件.ppt_第2页
第2页 / 共111页
数据库安全性与完整性课件.ppt_第3页
第3页 / 共111页
数据库安全性与完整性课件.ppt_第4页
第4页 / 共111页
数据库安全性与完整性课件.ppt_第5页
第5页 / 共111页
点击查看更多>>
资源描述

1、 仲恺仲恺数据库原理及应用数据库原理及应用Principles and Applications of the Database 第第6 6章章 数据库安全性和完整性数据库安全性和完整性仲恺农业工程学院仲恺农业工程学院 计算机科学与工程学院计算机科学与工程学院第第6 6章章 数据库安全性和完整性数据库安全性和完整性 v本章导读本章导读 本章主要介绍数据库的安全性和完整性,包括本章主要介绍数据库的安全性和完整性,包括数据库安全性的定义,数据库安全性控制采取数据库安全性的定义,数据库安全性控制采取的一些措施,数据库完整性的定义,完整性约的一些措施,数据库完整性的定义,完整性约束条件的类型,完整性控

2、制机制,并用束条件的类型,完整性控制机制,并用SQL语语句给出了如何描述授权、角色、建立视图、约句给出了如何描述授权、角色、建立视图、约束以及触发器的方式等。束以及触发器的方式等。第第6 6章章 数据库安全性和完整性数据库安全性和完整性v重点:重点:1安全性的基本概念安全性的基本概念 2完整性的基本概念完整性的基本概念v难点:难点:1域完整性控制方法域完整性控制方法 2实体完整性控制方法实体完整性控制方法 3.参照完整性控制方法参照完整性控制方法第第6 6章章 数据库安全性和完整性数据库安全性和完整性v本章要点本章要点 安全性和完整性的基本概念安全性和完整性的基本概念 数据库系统的数据库系统的

3、6种安全性技术种安全性技术 域完整性控制方法域完整性控制方法 实体完整性控制方法实体完整性控制方法 参照完整性控制方法参照完整性控制方法第第6 6章章 数据库安全性和完整性数据库安全性和完整性6.1 概述概述6.2 数据库的安全性数据库的安全性6.3 数据库的完整性数据库的完整性6.4 SQL的完整性控制的完整性控制本章小结本章小结6.1 6.1 概述概述 数据库的数据保护主要包括数据库的安全性和完数据库的数据保护主要包括数据库的安全性和完整性保护机制。整性保护机制。安全性:安全性:就是要保证数据库中数据的安全,防止就是要保证数据库中数据的安全,防止未授权用户随意修改数据库中的数据,确保数据未

4、授权用户随意修改数据库中的数据,确保数据的安全。的安全。完整性:完整性:是数据库的一个重要特征,也是保证数是数据库的一个重要特征,也是保证数据库中的数据切实有效、防止错误、实现商业规据库中的数据切实有效、防止错误、实现商业规则的一种重要机制。则的一种重要机制。6.1 6.1 概述概述防范对象:防范对象:安全性的防范对象安全性的防范对象:非法用户和非法操作非法用户和非法操作完整性的防范对象完整性的防范对象:是不合法的语义数据是不合法的语义数据第第6 6章章 数据库安全性和完整性数据库安全性和完整性6.1 概述概述6.2 数据库的安全性数据库的安全性6.3 数据库的完整性数据库的完整性6.4 SQ

5、L的完整性控制的完整性控制本章小结本章小结6.2 6.2 数据库的安全性数据库的安全性 安全性问题安全性问题是计算机系统中普遍存在的一个问题,是计算机系统中普遍存在的一个问题,而在数据库系统中显得尤为突出。而在数据库系统中显得尤为突出。原因:原因:数据库系统中大量数据集中存放,而且为许数据库系统中大量数据集中存放,而且为许多最终用户直接共享。数据库系统建立在操作系统之多最终用户直接共享。数据库系统建立在操作系统之上,而操作系统是计算机系统的核心,因此数据库系上,而操作系统是计算机系统的核心,因此数据库系统的安全性与计算机系统的安全性息息相关。统的安全性与计算机系统的安全性息息相关。6.2 6.

6、2 数据库的安全性数据库的安全性 在一般计算机系统中,安全措施是一层一层设置的,在一般计算机系统中,安全措施是一层一层设置的,下图是常见的计算机系统安全模型。下图是常见的计算机系统安全模型。用户用户DBMS OS DB用户标识用户标识和鉴别和鉴别存取控制存取控制操作系统操作系统安全保护安全保护密码存储密码存储6.2 6.2 数据库的安全性数据库的安全性 6.2.1 用户标识与鉴别用户标识与鉴别 6.2.2 存取控制存取控制 6.2.3 视图视图 6.2.4 数据加密数据加密 6.2.5 跟踪审计跟踪审计 6.2.6 统计数据库的安全统计数据库的安全6.2.1 用户标识与鉴别用户标识与鉴别 用户

7、标识与鉴别用户标识与鉴别是系统提供的最外层安全保护是系统提供的最外层安全保护措施。措施。当用户进入数据库系统时,需要提供用户的标当用户进入数据库系统时,需要提供用户的标识,系统根据标识鉴别此用户是不是合法用户:识,系统根据标识鉴别此用户是不是合法用户:v对于合法的用户,进一步开放数据库的访问权限;对于合法的用户,进一步开放数据库的访问权限;v对于非法用户,则拒绝该用户对数据库进行存取操对于非法用户,则拒绝该用户对数据库进行存取操作。作。6.2.1 用户标识与鉴别用户标识与鉴别用户标识与鉴别的方法比较多,常用的有下几种:用户标识与鉴别的方法比较多,常用的有下几种:1输入用户名标识合法身份输入用户

8、名标识合法身份2回答用户口令标识身份回答用户口令标识身份3通过回答随机数的运算结果标识合法身份通过回答随机数的运算结果标识合法身份4通过个人特征鉴别标识合法身份通过个人特征鉴别标识合法身份6.2 6.2 数据库的安全性数据库的安全性 6.2.1 用户标识与鉴别用户标识与鉴别 6.2.2 存取控制存取控制 6.2.3 视图视图 6.2.4 数据加密数据加密 6.2.5 跟踪审计跟踪审计 6.2.6 统计数据库的安全统计数据库的安全6.2.2 存取控制存取控制 数据库安全性所关心的主要是数据库安全性所关心的主要是DBMS的存取的存取控制机制控制机制。存取控制是确保具有授权资格的用户。存取控制是确保

9、具有授权资格的用户访问数据库的权限,同时使得所有未被授权的人访问数据库的权限,同时使得所有未被授权的人员无法访问数据库的机制。员无法访问数据库的机制。1存取控制机制的构成部分存取控制机制的构成部分(1)定义用户权限:定义用户权限:用户权限是指用户对于数据对象用户权限是指用户对于数据对象能够执行的操作种类。进行用户权限定义,系统必须提供能够执行的操作种类。进行用户权限定义,系统必须提供有关用户定义权限的语言。有关用户定义权限的语言。(2)系统进行权限检查:系统进行权限检查:每当用户发出存取数据库每当用户发出存取数据库的操作请求后,的操作请求后,DBMSDBMS首先查找数据字典,进行合法权限检首先

10、查找数据字典,进行合法权限检查,如果用户的操作请求没有超出其数据操作权限,则准查,如果用户的操作请求没有超出其数据操作权限,则准予执行其数据操作;否则,拒绝其执行此操作。予执行其数据操作;否则,拒绝其执行此操作。6.2.2 存取控制存取控制2存取机制的类别存取机制的类别(1)自主存取控制自主存取控制:在自主存取控制方法中,用户对在自主存取控制方法中,用户对于不同的对象有不同的存取权限;不同的用户对同一对象于不同的对象有不同的存取权限;不同的用户对同一对象的存取权限也不同;用户也可以将自己拥有的权限传授给的存取权限也不同;用户也可以将自己拥有的权限传授给其他用户。其他用户。(2)强制存取控制强制

11、存取控制:在强制存取控制中,每一个数在强制存取控制中,每一个数据对象被标以一定的密级;每一个用户也被授予某个级别据对象被标以一定的密级;每一个用户也被授予某个级别的访问许可证;对于任意一个对象,只有具有合法许可证的访问许可证;对于任意一个对象,只有具有合法许可证的用户才可以存取。与自主存取控制相比,强制存取控制的用户才可以存取。与自主存取控制相比,强制存取控制比较严格。比较严格。6.2.2 存取控制存取控制3.3.自主访问控制方法自主访问控制方法(1)用户分类与权限)用户分类与权限 对于一个数据库,不同的用户有不同的访问要求和对于一个数据库,不同的用户有不同的访问要求和使用权限。使用权限。一般

12、可以将数据库的用户分为四类:一般可以将数据库的用户分为四类:数据库管理员数据库管理员数据库对象的属主数据库对象的属主一般数据库用户一般数据库用户公共用户公共用户6.2.2 存取控制存取控制 数据库管理员数据库管理员 (Database Administrator,DBA)拥有支配整个数据库资源的特权,对数据库拥有支配整个数据库资源的特权,对数据库拥有最大的特权,因而也对数据库负有特别的责拥有最大的特权,因而也对数据库负有特别的责任。任。DBADBA特权命令包括给各个独立的帐户、用户或特权命令包括给各个独立的帐户、用户或者用户组授予特权和回收特权,以及把某个适当者用户组授予特权和回收特权,以及把

13、某个适当的安全分类级别指派给某个用户帐户。的安全分类级别指派给某个用户帐户。6.2.2 存取控制存取控制数据库对象的属主数据库对象的属主 是数据库的创建者,他除了一般数据库用户拥是数据库的创建者,他除了一般数据库用户拥有的权力外,还可以授予或收回其他用户对其所创有的权力外,还可以授予或收回其他用户对其所创建的数据库的存取权。建的数据库的存取权。一般数据库用户一般数据库用户 就是通过授权可对数据库进行操作的用户。就是通过授权可对数据库进行操作的用户。6.2.2 存取控制存取控制公共用户公共用户 是为了方便共享数据操作而设置的,它代表全是为了方便共享数据操作而设置的,它代表全体数据库用户,如果把某

14、个数据对象的某项操作授体数据库用户,如果把某个数据对象的某项操作授权给公共用户,则一个合法的数据库用户都能进行权给公共用户,则一个合法的数据库用户都能进行该项数据操作。该项数据操作。6.2.2 存取控制存取控制 用户使用数据库的方式称为权限。使用数据用户使用数据库的方式称为权限。使用数据库的权限分为二类:访问数据特权和修改数据库库的权限分为二类:访问数据特权和修改数据库模式的特权。模式的特权。访问数据特权包括:访问数据特权包括:读数据权限、插入数据权限、修改数据权限和删除数读数据权限、插入数据权限、修改数据权限和删除数据权限。据权限。修改数据库模式的特权包括修改数据库模式的特权包括:创建和删除

15、索引的索引权限,创建新表的资源权限,创建和删除索引的索引权限,创建新表的资源权限,允许修改表结构的修改权限,允许撤销关系表的撤销允许修改表结构的修改权限,允许撤销关系表的撤销权限等。权限等。6.2.2 存取控制存取控制(2)SQL的数据控制功能的数据控制功能 SQL对自主存取控制提供了支持,其对自主存取控制提供了支持,其DCL主要是主要是GRANT(授权)语句和(授权)语句和REVOKE(收权)语句。(收权)语句。授权授权 由于不同的用户对数据库具有不同的存取权,因由于不同的用户对数据库具有不同的存取权,因此为了保证用户只能访问他有权存取的数据,必须对此为了保证用户只能访问他有权存取的数据,必

16、须对每个用户授予不同的数据库存取权。每个用户授予不同的数据库存取权。授授 权权 在在SQL中,授权语句有两种:中,授权语句有两种:授予权限语句授予权限语句和和授予角色语句授予角色语句。一个角色是一组被命名的零个或多个特权。授权一个角色是一组被命名的零个或多个特权。授权一个角色给一个用户,则允许该用户使用被授权的角一个角色给一个用户,则允许该用户使用被授权的角色所拥有的每一个特权。用户与角色之间存在多对多色所拥有的每一个特权。用户与角色之间存在多对多的联系;一个用户允许被授予多个角色使用,同一个的联系;一个用户允许被授予多个角色使用,同一个角色的使用被授权予多个用户。一个角色的使用也可角色的使用

17、被授权予多个用户。一个角色的使用也可以被授权予另一个角色。以被授权予另一个角色。授予权限语句授予权限语句语句基本形式为:语句基本形式为:GRANT 权限权限ON 数据对象数据对象TO受权者受权者WITH GRANT OPTION 数据对象数据对象:=基表基表视图视图属性属性 受权者受权者:=PUBLIC授权授权ID 语义:语义:将某作用在指定操作对象上的操作权限,限授将某作用在指定操作对象上的操作权限,限授予指定的用户。(即数据库对象的访问权限的管理)予指定的用户。(即数据库对象的访问权限的管理)如果指定如果指定WITH GRANT OPTIONWITH GRANT OPTION子句,则获得某

18、种权限子句,则获得某种权限的用户可以把这种权限在授予其他用户。如没有指定的用户可以把这种权限在授予其他用户。如没有指定该子句,获得授权的用户将不能传播权限该子句,获得授权的用户将不能传播权限(转授转授)。授予权限语句授予权限语句【例例6-1】在数据库在数据库XSBOOK中,将表中,将表STUDENT的的SELECT操作权限授予所有的用户。操作权限授予所有的用户。注意:注意:PUBLICPUBLIC是一个特殊的保留字,代替该数据库系是一个特殊的保留字,代替该数据库系统的全体用户。对于大部分可以公开的数据,可以一统的全体用户。对于大部分可以公开的数据,可以一次性地授权给次性地授权给PUBLICPU

19、BLIC,而不必对每个用户逐个授权,而不必对每个用户逐个授权。GRANT SELECT ON TABLE STUDENT TO PUBLIC;授予权限语句授予权限语句【例例6-26-2】在数据库在数据库XSBOOKXSBOOK中,将表中,将表STUDENTSTUDENT的借书证的借书证号、姓名字段的号、姓名字段的UPDATEUPDATE权限授予给权限授予给liuliu。【例例6-36-3】将对表将对表STUDENTSTUDENT的所有操作特权授予的所有操作特权授予liuliu。GRANT UPDATE(借书证号,姓名)(借书证号,姓名)ON STUDENT TO liu;GRANT ALL P

20、RIVILEGES ON TABLE STUDENT TO liu;授予权限语句授予权限语句【例例6-4】将对表将对表STUDENT中借书证号和专业名的中借书证号和专业名的INSERT特权授予特权授予liu,并允许他将此特权转授给,并允许他将此特权转授给其他用户。其他用户。GRANT INSERT(借书证号,专业名)(借书证号,专业名)ON STUDENT TO liu WITH GRANT OPTION;授予角色语句授予角色语句该语句基本形式为:该语句基本形式为:GRANT 角色角色ID,角色,角色ID TO受权者受权者WITH ADMIN OPTION该语句将一个或多个角色的使用授予该语句

21、将一个或多个角色的使用授予,若有若有WITH ADMIN OPTION,则受权者可将此,则受权者可将此角色转授给其他角色转授给其他。授予角色语句授予角色语句 在下列语句中,在下列语句中,Accounting_role,Import_role都是都是己建立的角色。己建立的角色。【例例6-5】将角色将角色Accounting _role和和Import _role授予授予所有的用户。所有的用户。GRANT Accounting _role,Import_role TO PUBLIC;授予角色语句授予角色语句【例例6-6】将角色将角色Accounting _role授予用户授予用户zhang,并允许

22、他将此角色转授给其他人。并允许他将此角色转授给其他人。GRANT Accounting _role TO zhang WITH ADMIN OPTION;6.2.2 存取控制存取控制 当用户将某些权限授给其他用户后,有时还需当用户将某些权限授给其他用户后,有时还需要把权限收回。收权需要使用要把权限收回。收权需要使用REVOKE语句。语句。收回权限的收回权限的REVOKE语句:语句:收回角色的收回角色的REVOKE语句:语句:收回权限收回权限REVOKE 权限权限ON 数据对象数据对象 FROM 受权者受权者,受权者受权者REVOKE 角色角色IDFROM 受权者受权者,受权者受权者6.2.2

23、存取控制存取控制【例例6-7】将将liu对对STUDENT表的表的INSERT权限收回。权限收回。REVOKE INSERT ON STUDENT FROM liu6.2.2 存取控制存取控制(3)自主存取控制的不足之处)自主存取控制的不足之处 自主存取控制能够通过授权机制有效地控制用户自主存取控制能够通过授权机制有效地控制用户对敏感数据的存取,但也存在着一定的缺陷,其主要对敏感数据的存取,但也存在着一定的缺陷,其主要问题是系统对权限的授予状况无法进行有效的控制,问题是系统对权限的授予状况无法进行有效的控制,因而可能造成数据的无意泄漏。因而可能造成数据的无意泄漏。但是,强制存取控制方法可以有效

24、地解决这一问题。但是,强制存取控制方法可以有效地解决这一问题。6.2.2 存取控制存取控制 所谓所谓MAC是指系统为保证更高程度的安全性,是指系统为保证更高程度的安全性,它不是用户能直接感知或进行控制的。它不是用户能直接感知或进行控制的。MAC适用于适用于那些对数据有严格而固定密级分类的部门,例如军那些对数据有严格而固定密级分类的部门,例如军事部门或政府部门。事部门或政府部门。4强制存取控制方法(强制存取控制方法(MAC)在在MACMAC中,中,DBMSDBMS所管理的全部实体被分为所管理的全部实体被分为主体主体和和客体客体两大类。两大类。6.2.2 存取控制存取控制 主体主体系统中的活动实体

25、,既包括系统中的活动实体,既包括DBMSDBMS所管理所管理的实际用户,也包括代表用户的各进程。的实际用户,也包括代表用户的各进程。客体客体系统中的被动实体,是受主体操纵的,包系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等等。括文件、基表、索引、视图等等。6.2.2 存取控制存取控制 当某一用户(或一主体)以标记当某一用户(或一主体)以标记label注册注册入系统时,系统要求他对任何客体的存取必须遵入系统时,系统要求他对任何客体的存取必须遵循如下规则:循如下规则:(1 1)仅当主体的许可证级别大于或等于客体的密级)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的

26、客体;时,该主体才能读取相应的客体;(2 2)仅当主体的许可证级别等于客体的密级时,该)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。主体才能写相应的客体。6.2.2 存取控制存取控制一般强制存取控制采用以下几种方法实现:一般强制存取控制采用以下几种方法实现:(1)限制访问控制)限制访问控制(2)过程控制)过程控制(3)系统限制)系统限制6.2 6.2 数据库的安全性数据库的安全性 6.2.1 用户标识与鉴别用户标识与鉴别 6.2.2 存取控制存取控制 6.2.3 视图视图 6.2.4 数据加密数据加密 6.2.5 跟踪审计跟踪审计 6.2.6 统计数据库的安全统计数据库的安全

27、6.2.3 视图视图 视图技术是当前数据库技术中保持数据库安全性视图技术是当前数据库技术中保持数据库安全性的重要手段之一。通过为不同的用户定义不同的视图,的重要手段之一。通过为不同的用户定义不同的视图,可以将要保密的数据对无权存取的用户隐藏起来,从可以将要保密的数据对无权存取的用户隐藏起来,从而自动地给数据提供一定程度的安全保护。例如,给而自动地给数据提供一定程度的安全保护。例如,给某用户定义了一个只读视图,并且这个视图的数据来某用户定义了一个只读视图,并且这个视图的数据来源于关系源于关系R R,则此用户只能读,则此用户只能读R R中的有关信息,数据库中的有关信息,数据库中一切其他信息对他都是

28、隐藏的。中一切其他信息对他都是隐藏的。6.2.3 视图视图【例例6-8】允许一个用户查询学生表允许一个用户查询学生表STUDENT的记的记录,但是只允许他查询计算机专业学生的情况。录,但是只允许他查询计算机专业学生的情况。CREATE VIEW STUDENT_SUBJECT AS SELECT 借书证号,姓名,专业名,性别,出生时借书证号,姓名,专业名,性别,出生时间,借书数间,借书数 FROM STUDENT WHERE 专业名专业名计算机计算机使用这个视图使用这个视图STUDENT_SUBJECTSTUDENT_SUBJECT的用户看到的只是基的用户看到的只是基本表本表STUDENTST

29、UDENT的一个的一个“水平子集水平子集”,或称行子集。,或称行子集。6.2 6.2 数据库的安全性数据库的安全性 6.2.1 用户标识与鉴别用户标识与鉴别 6.2.2 存取控制存取控制 6.2.3 视图视图 6.2.4 数据加密数据加密 6.2.5 跟踪审计跟踪审计 6.2.6 统计数据库的安全统计数据库的安全6.2.4 数据加密数据加密 数据加密技术是防止数据库中数据在存储或数据加密技术是防止数据库中数据在存储或者传输中失密的有效手段。者传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数加密的基本思想是根据一定的算法将原始数据(明文)变换成不可直接识别的格式(密文),据(明文)变

30、换成不可直接识别的格式(密文),从而使得不知道解密算法的人无法获知数据的内从而使得不知道解密算法的人无法获知数据的内容。这样可以保证只有掌握了密钥的用户才能访容。这样可以保证只有掌握了密钥的用户才能访问数据,而且即使数据被非法地从数据库中窃取,问数据,而且即使数据被非法地从数据库中窃取,或者在数据传输过程中被截取,窃取者都无法知或者在数据传输过程中被截取,窃取者都无法知道密码数据的含义。道密码数据的含义。6.2.4 数据加密数据加密 数据加密的主要方法有两种:数据加密的主要方法有两种:1替换方法替换方法该方法使用密钥(该方法使用密钥(Encryption KeyEncryption Key)将

31、明文中的每)将明文中的每一个字符转换为密文中的字符。一个字符转换为密文中的字符。2置换方法置换方法该方法仅将明文的字符按不同的顺序重新排列。该方法仅将明文的字符按不同的顺序重新排列。6.2 6.2 数据库的安全性数据库的安全性 6.2.1 用户标识与鉴别用户标识与鉴别 6.2.2 存取控制存取控制 6.2.3 视图视图 6.2.4 数据加密数据加密 6.2.5 跟踪审计跟踪审计 6.2.6 统计数据库的安全统计数据库的安全6.2.5 跟踪审计跟踪审计 跟踪审计(跟踪审计(Audit Trial)是一种监视措施,数)是一种监视措施,数据库运行中,据库运行中,DBMS跟踪用户对一些敏感数据的存跟踪

32、用户对一些敏感数据的存取活动,把用户对数据库的操作自动记录下来放入取活动,把用户对数据库的操作自动记录下来放入审计日志(审计日志(Audit Log)中,有许多)中,有许多DBMS的跟踪的跟踪审计记录文件与系统的运行日志合在一起。审计记录文件与系统的运行日志合在一起。系统能系统能利用这些审计跟踪的信息,重现导致数据库现状的利用这些审计跟踪的信息,重现导致数据库现状的一系列事件。一系列事件。6.2.5 跟踪审计跟踪审计 跟踪审计的记录一般包括以下内容:请求(源跟踪审计的记录一般包括以下内容:请求(源文本)、操作类型(如修改、查询等)、操作终文本)、操作类型(如修改、查询等)、操作终端标识与操作者

33、标识、操作日期和时间、操作所端标识与操作者标识、操作日期和时间、操作所涉及的对象(表、视图、记录、属性等)、数据涉及的对象(表、视图、记录、属性等)、数据的前映象和后映象。的前映象和后映象。DBMSDBMS提供相应的语句供施加提供相应的语句供施加和撤销跟踪审计之用。和撤销跟踪审计之用。6.2 6.2 数据库的安全性数据库的安全性 6.2.1 用户标识与鉴别用户标识与鉴别 6.2.2 存取控制存取控制 6.2.3 视图视图 6.2.4 数据加密数据加密 6.2.5 跟踪审计跟踪审计 6.2.6 统计数据库的安全统计数据库的安全6.2.6 统计数据库的安全统计数据库的安全 统计数据库是一种特殊类型

34、的数据库,它和统计数据库是一种特殊类型的数据库,它和一般的数据库相比,有很多共同点,但是也有许一般的数据库相比,有很多共同点,但是也有许多独特之处。多独特之处。统计数据库,它回答给用户的只能是统计信统计数据库,它回答给用户的只能是统计信息。如国家的人口统计数据库、经济统计数据库息。如国家的人口统计数据库、经济统计数据库等。统计数据库存储了大量敏感的数据,但只给等。统计数据库存储了大量敏感的数据,但只给用户提供这些原始数据的统计数据(如平均值、用户提供这些原始数据的统计数据(如平均值、总计等),而不允许用户查看单个的原始数据。总计等),而不允许用户查看单个的原始数据。6.2.6 统计数据库的安全

35、统计数据库的安全 用户使用合法的统计查询可以推断出他不应了解用户使用合法的统计查询可以推断出他不应了解的数据。的数据。例如,一个学生想要知道另一个学生例如,一个学生想要知道另一个学生A A的成绩,他的成绩,他可以通过查询包含可以通过查询包含A A在内的一些学生的平均成绩,在内的一些学生的平均成绩,然后对于上述学生集合然后对于上述学生集合P P,他可用自己的学号取代,他可用自己的学号取代A A后得集合后得集合P P的平均成绩。通过这样两次查询得到的平均成绩。通过这样两次查询得到的平均成绩的差和自己的成绩,就可以推断出学生的平均成绩的差和自己的成绩,就可以推断出学生A A的成绩。的成绩。6.2.6

36、 统计数据库的安全统计数据库的安全 为了堵塞这类漏洞,必须对数据库的访问进为了堵塞这类漏洞,必须对数据库的访问进行推断控制。现在常用的方法有数据扰动、查询行推断控制。现在常用的方法有数据扰动、查询控制和历史相关控制等。这些方法虽然都获得了控制和历史相关控制等。这些方法虽然都获得了应用,取得了很好的效果,但是迄今为止,统计应用,取得了很好的效果,但是迄今为止,统计数据库的安全问题尚未彻底解决。数据库的安全问题尚未彻底解决。第第6 6章章 数据库安全性和完整性数据库安全性和完整性6.1 概述概述6.2 数据库的安全性数据库的安全性6.3 数据库的完整性数据库的完整性6.4 SQL的完整性控制的完整

37、性控制本章小结本章小结6.3 数据库的完整性数据库的完整性。数据库的完整性是指数据库的完整性是指数据库中数据的正确性和数据库中数据的正确性和相容性相容性,即为了防止数据库中存在不符合语义的数,即为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。据,防止错误信息的输入和输出。例如:例如:学生的学号一定是唯一的,学号的长度是学生的学号一定是唯一的,学号的长度是1313至至1515个个字符串;学生的年龄是整数,取值范围为字符串;学生的年龄是整数,取值范围为11114545;当一个用户向数据库插入一个新的学生记录或修改当一个用户向数据库插入一个新的学生记录或修改一个学生的数据时必须满足这

38、些条件。一个学生的数据时必须满足这些条件。6.3 数据库的完整性数据库的完整性 数据库的完整性保证了真实反映现实世界,凡数据库的完整性保证了真实反映现实世界,凡是已经失真的数据都可以说其完整性受到了破坏,是已经失真的数据都可以说其完整性受到了破坏,这种情况下就不能再使用数据库,否则可能造成严这种情况下就不能再使用数据库,否则可能造成严重的后果。重的后果。完整性受破坏的常见原因:完整性受破坏的常见原因:1错误的数据错误的数据2错误的更新操作错误的更新操作3并发访问并发访问4各种硬件故障各种硬件故障5人为的破坏人为的破坏6.3 数据库的完整性数据库的完整性 6.3.1 完整性的语义约束完整性的语义

39、约束 6.3.2 完整性语义检查完整性语义检查6.3.1 完整性的语义约束完整性的语义约束。完整性约束条件作用的对象可以是列、元组、关系完整性约束条件作用的对象可以是列、元组、关系三种。三种。列约束:列约束:主要是列类型、取值范围、精度、排序主要是列类型、取值范围、精度、排序等约束条件等约束条件元组约束:元组约束:是元组中各个字段间的联系的约束。是元组中各个字段间的联系的约束。关系的约束:关系的约束:是若干元组间、关系集合上以及关系是若干元组间、关系集合上以及关系间的联系的约束。间的联系的约束。6.3.1 完整性的语义约束完整性的语义约束 完整性约束条件的类型可以分为两大类型:完整性约束条件的

40、类型可以分为两大类型:静态约束静态约束和和动态约束动态约束。1静态约束静态约束 静态约束是指数据库每一确定状态时的数据对静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理象所应满足的约束条件,它是反映数据库状态合理性的约束,这是最重要的一类完整性约束。性的约束,这是最重要的一类完整性约束。6.3.1 完整性的语义约束完整性的语义约束根据约束作用的对象的不同,又可分为下面三种:根据约束作用的对象的不同,又可分为下面三种:静态列约束静态列约束 对一个列的取值域等的说明或限制,这是最常对一个列的取值域等的说明或限制,这是最常见、最容易实现的一类完整性约束,它包括以下

41、几个见、最容易实现的一类完整性约束,它包括以下几个方面:方面:对数据类型的约束,例如,数据的类型、长度、对数据类型的约束,例如,数据的类型、长度、单位、精度等。单位、精度等。对数据格式的约束,例如,学生的学号的格式中对数据格式的约束,例如,学生的学号的格式中前四位表示入学年份,中间三位为院号前四位表示入学年份,中间三位为院号+系号,后三系号,后三位为班级号位为班级号+顺序编号。顺序编号。6.3.1 完整性的语义约束完整性的语义约束 对取值范围或取值集合的约束,例如,大学本科学对取值范围或取值集合的约束,例如,大学本科学生年龄范围的取值范围为生年龄范围的取值范围为1145。对空值的约束,空值表示

42、未定义或未知的值,与零对空值的约束,空值表示未定义或未知的值,与零值和空格不同。有的列允许空值,有的不允许,值和空格不同。有的列允许空值,有的不允许,例如,规定学生的姓名不允许取空值;学号成绩例如,规定学生的姓名不允许取空值;学号成绩可以为空值。可以为空值。其他约束,例如,关于列的排序说明、组合列等。其他约束,例如,关于列的排序说明、组合列等。6.3.1 完整性的语义约束完整性的语义约束(2)静态元组约束静态元组约束 一个元组是由若干列值组成的,静态元组约束规一个元组是由若干列值组成的,静态元组约束规定组成一个元组的各个列之间的约束关系。定组成一个元组的各个列之间的约束关系。例如,一个学生的科

43、目成绩列,规定每科成绩取例如,一个学生的科目成绩列,规定每科成绩取值不得低于值不得低于0 0,也不得高于,也不得高于100100。(3)静态关系约束静态关系约束静态关系约束反映了一个关系中各个元组之间静态关系约束反映了一个关系中各个元组之间或者若干关系之间存在的联系或约束。它包括:或者若干关系之间存在的联系或约束。它包括:6.3.1 完整性的语义约束完整性的语义约束 实体完整性约束。即关键字段的值不为空。实体完整性约束。即关键字段的值不为空。参照完整性约束。即一个关系的外码的取值与另参照完整性约束。即一个关系的外码的取值与另一个关系的关键字的值有关。一个关系的关键字的值有关。函数依赖约束。大部

44、分函数依赖约束都在关系模函数依赖约束。大部分函数依赖约束都在关系模式中定义。式中定义。统计约束。即某个字段值与一个关系多个元组的统计约束。即某个字段值与一个关系多个元组的统计值之间的约束关系。例如对学生平均成绩的统计值之间的约束关系。例如对学生平均成绩的约束等,这里的平均成绩就是统计值。约束等,这里的平均成绩就是统计值。6.3.1 完整性的语义约束完整性的语义约束 动态约束是指数据库从一种状态转变为另一种动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间满足的约束条件,它反映了状态时,新、旧值之间满足的约束条件,它反映了数据库状态改变时应遵守的约束。按照约束对象不数据库状态改变时应遵

45、守的约束。按照约束对象不同,它又分为下面三种。同,它又分为下面三种。1动态约束动态约束(1)动态列约束动态列约束(2)动态元组约束动态元组约束(3)动态关系约束动态关系约束6.3.1 完整性的语义约束完整性的语义约束 动态列约束规定修改列定义或列值时应满足动态列约束规定修改列定义或列值时应满足的约束条件,它包括:的约束条件,它包括:修改列定义时的约束。例如,将允许空值的列修改列定义时的约束。例如,将允许空值的列改为不允许空值时,如果该列目前已存在空值,改为不允许空值时,如果该列目前已存在空值,则拒绝这种修改。则拒绝这种修改。修改列值时的约束。修改列值时需要参照其旧修改列值时的约束。修改列值时需

46、要参照其旧值,并且新旧值之间需要满足某种约束条件。例值,并且新旧值之间需要满足某种约束条件。例如,学生的年龄只能增长。如,学生的年龄只能增长。(1)动态列约束动态列约束6.3.1 完整性的语义约束完整性的语义约束 动态元组约束是指修改某个元组的值时元组动态元组约束是指修改某个元组的值时元组中的各个字段之间要满足某种约束条件。例如,中的各个字段之间要满足某种约束条件。例如,职工津贴不得高于个人基本工资的职工津贴不得高于个人基本工资的20%20%等。等。(2)动态元组约束动态元组约束(3)动态关系约束动态关系约束 动态关系约束是加在关系变化时的限制条件,动态关系约束是加在关系变化时的限制条件,例如

47、,事务一致性、原子性等约束条件。例如,事务一致性、原子性等约束条件。6.3 数据库的完整性数据库的完整性 6.3.1 完整性的语义约束完整性的语义约束 6.3.2 完整性语义检查完整性语义检查6.3.2 完整性语义检查完整性语义检查 现代数据库技术采用对数据完整性的语现代数据库技术采用对数据完整性的语义约束和检查来保护数据库的完整性,义约束和检查来保护数据库的完整性,实现方式有两种:一种是通过定义和使实现方式有两种:一种是通过定义和使用完整性约束规则,另一种是通过触发器和用完整性约束规则,另一种是通过触发器和存储过程来实现。存储过程来实现。第第6 6章章 数据库安全性和完整性数据库安全性和完整

48、性6.1 概述概述6.2 数据库的安全性数据库的安全性6.3 数据库的完整性数据库的完整性6.4 SQL的完整性控制的完整性控制本章小结本章小结6.4 SQL的完整性控制的完整性控制 SQL SQL中的完整性约束主要分为三类:域完整性、中的完整性约束主要分为三类:域完整性、实体完整性和参照完整性。但是,实体完整性和参照完整性。但是,SQLSQL尚不支持动态尚不支持动态完整性约束。完整性约束。6.4.1 域完整性域完整性 6.4.2 实体完整性实体完整性 6.4.3 参照完整性参照完整性6.4.1 域完整性域完整性 域完整性又称为列完整性,指列数据输入的有域完整性又称为列完整性,指列数据输入的有

49、效性。实现域完整性的方法可通过定义相应的约效性。实现域完整性的方法可通过定义相应的约束、规则等方法实现。束、规则等方法实现。1列约束列约束 定义列约束规定某个属性的值必须符合某种数定义列约束规定某个属性的值必须符合某种数据类型并且取自某个数据定义域。域完整性约束据类型并且取自某个数据定义域。域完整性约束施加于单个数据上。施加于单个数据上。(1)长途电话号码格式为:)长途电话号码格式为:9999999999;(2)仓库库存量)仓库库存量0;(3)图书管理系统中允许读者当前在借图书量最多为)图书管理系统中允许读者当前在借图书量最多为20本。本。6.4.1 域完整性域完整性 域完整性可以使用域完整性

50、可以使用CHECK约束、约束、NOT NULL约约束、束、UNIQUE约束在表定义的时候实现。约束在表定义的时候实现。CHECK约束:约束:是字段输入时的验证规则,表示一个是字段输入时的验证规则,表示一个字段的输入内容必须满足字段的输入内容必须满足CHECK约束的条件,若不约束的条件,若不满足,则数据无法正常输入。满足,则数据无法正常输入。NOT NULL约束:约束:约束表示列值的非空性,此列不约束表示列值的非空性,此列不允许为空;允许为空;UNIQUE约束:约束:表示列值唯一性。表示列值唯一性。6.4.1 域完整性域完整性【例例6-9】定义表定义表STUDENT的同时,定义字段的非的同时,定

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库安全性与完整性课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|