《数据库系统原理与应用(第二版)》课件第5章.ppt

上传人(卖家):momomo 文档编号:7333414 上传时间:2023-11-28 格式:PPT 页数:39 大小:1,014.50KB
下载 相关 举报
《数据库系统原理与应用(第二版)》课件第5章.ppt_第1页
第1页 / 共39页
《数据库系统原理与应用(第二版)》课件第5章.ppt_第2页
第2页 / 共39页
《数据库系统原理与应用(第二版)》课件第5章.ppt_第3页
第3页 / 共39页
《数据库系统原理与应用(第二版)》课件第5章.ppt_第4页
第4页 / 共39页
《数据库系统原理与应用(第二版)》课件第5章.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、第五章 数据库安全性和完整性5.1 数据库的安全性数据库的安全性5.2 SQL Server数据库的安全性数据库的安全性5.3 完整性完整性数据库安全性和完整性数据库安全性和完整性 数据库安全性和完整性数据库安全性和完整性 安全措施一般是一级一级层层设置的,例图所示。安全措施一般是一级一级层层设置的,例图所示。5.1 数据库的安全性 5.1.1安全性控制的一般方法安全性控制的一般方法1用户标识和鉴定用户标识和鉴定 标识和鉴定一个用户最常用的方法是用一个用户名或者标识和鉴定一个用户最常用的方法是用一个用户名或者用户标识号来标明用户身份,系统鉴别此用户是否是合用户标识号来标明用户身份,系统鉴别此用

2、户是否是合法用户。若是,则可进入下步的核实;若不是,则不能法用户。若是,则可进入下步的核实;若不是,则不能进入系统。进入系统。数据库安全性和完整性数据库安全性和完整性 2存取控制存取控制 存取权限由数据对象和操作类型两个要素组成。存取权限由数据对象和操作类型两个要素组成。定义一个用户的存取权限就是要定义这个用户定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作。可以在哪些数据对象上进行哪些类型的操作。在数据库系统中,定义存取权限称为授权在数据库系统中,定义存取权限称为授权(AuthorizationAuthorization)。这些授权定义经过编译)。这些授权定义经

3、过编译后存放在数据字典中。后存放在数据字典中。数据库安全性和完整性数据库安全性和完整性 在数据库中,为了保证用户只能访问他有权存取的数据,在数据库中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。对于通过鉴定进入系必须预先对每个用户定义存取权限。对于通过鉴定进入系统的用户(即合法用户),系统根据他的存取权限定义对统的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作他的各种操作请求进行控制,确保他只执行合法操作。数据对象操作类型模 式模式建立、修改、检索外模式建立、修改、检索内模式建立、修改、检索数据表查找、插入、修改、删除属性

4、列查找、插入、修改、删除表表5-1 关系数据库系统中的存取权限关系数据库系统中的存取权限数据库安全性和完整性数据库安全性和完整性 用户名用户名数据对象名数据对象名允许的操作类型允许的操作类型刘勇刘勇关系关系BookSelect张伟张伟关系关系BookAll张伟张伟关系关系ReaderAll张伟张伟关系关系BorrowUpdate丁钰丁钰关系关系BorrowSelect丁钰丁钰关系关系BorrowInsert表表5-2 一个授权表的实例一个授权表的实例数据库安全性和完整性数据库安全性和完整性 用户名数据对象名允许的操作类型刘勇关系BookSelect张伟关系BookAll张伟关系ReaderAl

5、l张伟关系BorrowSelect张伟关系Borrow.BdateUpdate丁钰关系Borrow.BookidSelect丁钰关系Borrow.CardidSelect表表5-3 一个授权表的实例一个授权表的实例 数据库安全性和完整性数据库安全性和完整性 用户名数据对象名允许的操作类型存取谓词刘勇关系BookSelectPublish=“中国水利水电出版社”张伟关系BookAll 张伟关系ReaderAll 张伟关系BorrowSelect 张伟关系Borrow.BdateUpdate 丁钰关系Borrow.BookidSelect 丁钰关系Borrow.CardidSelect 表表5-4

6、 一个授权表的实例一个授权表的实例数据库安全性和完整性数据库安全性和完整性 3定义视图定义视图 进行存取的控制,不仅可以通过授权与收回权力来实进行存取的控制,不仅可以通过授权与收回权力来实现,还可以通过定义用户的外模式来提供一定的安全现,还可以通过定义用户的外模式来提供一定的安全保护功能。在关系系统中,就是为不同的用户定义不保护功能。在关系系统中,就是为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取同的视图,通过视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。定程度的安全保护。数据库安

7、全性和完整性数据库安全性和完整性 4审计审计 审计追踪使用的是一个专用文件或数据库,系统自动审计追踪使用的是一个专用文件或数据库,系统自动将用户对数据库的所有操作记录在上面,利用审计追将用户对数据库的所有操作记录在上面,利用审计追踪的信息,就能重现导致数据库现有状况的一系列事踪的信息,就能重现导致数据库现有状况的一系列事件,以找出非法存取数据的人。件,以找出非法存取数据的人。数据库安全性和完整性数据库安全性和完整性 5数据加密数据加密 对于高度敏感性数据,例如财务数据、军事数据和国对于高度敏感性数据,例如财务数据、军事数据和国家机密,除以上安全性措施外,还可以采用数据加密家机密,除以上安全性措

8、施外,还可以采用数据加密技术,以密码形式存储和传输数据。这样企图通过不技术,以密码形式存储和传输数据。这样企图通过不正常渠道获取数据,例如,利用系统安全措施的漏洞正常渠道获取数据,例如,利用系统安全措施的漏洞非法访问数据,或者在通信绕路上窃取数据,那么只非法访问数据,或者在通信绕路上窃取数据,那么只能看到一些无法辨认的二进制代码。用户正常检索数能看到一些无法辨认的二进制代码。用户正常检索数据时,首先要提供密码钥匙,由系统进行译码后,才据时,首先要提供密码钥匙,由系统进行译码后,才能得到可识别的数据。能得到可识别的数据。数据库安全性和完整性数据库安全性和完整性 5.1.2 数据库用户的种类数据库

9、用户的种类数据库用户按其操作权限的大小可分为三类:数据库用户按其操作权限的大小可分为三类:1 1数据库系统管理员数据库系统管理员:数据库系统管理员(数据库系统管理员(DBADBA)具有数)具有数据库中全部的权限,当用户以系统管理员身份进行操据库中全部的权限,当用户以系统管理员身份进行操作时,系统不对其权限进行检验作时,系统不对其权限进行检验.2 2普通用户普通用户:普通用户只具有增、删、改、查数据库数普通用户只具有增、删、改、查数据库数据的权限据的权限 数据库安全性和完整性数据库安全性和完整性 5.2 SQL Server数据库的安全性数据库的安全性 SQL ServerSQL Server的

10、安全性管理包括以下几个方面:数据库的安全性管理包括以下几个方面:数据库登录管理、数据库用户管理、数据库角色管理以及数登录管理、数据库用户管理、数据库角色管理以及数据库权限的管理。据库权限的管理。返回首页返回首页数据库安全性和完整性数据库安全性和完整性 数据库安全性和完整性数据库安全性和完整性 5.2.1 SQL Server 2005安全管理机制1.1.主体主体WindowsWindows级别的主体:包括级别的主体:包括WindowsWindows域登录名、域登录名、WindowsWindows本地登录名。本地登录名。服务器级别的主体:服务器级别的主体:SQL ServerSQL Server

11、登录名。登录名。数据库级别的主体:数据库用户、数据库角色、数据库级别的主体:数据库用户、数据库角色、应用程序角色。应用程序角色。2 2安全对象安全对象服务器(服务器(ServerServer);数据库();数据库(DatabaseDatabase);架构);架构(SchemaSchema););对象(对象(TableTable、ViewView、IndexIndex、TriggerTrigger、ProcedureProcedure、FunctionFunction等)。等)。数据库安全性和完整性数据库安全性和完整性表视图存储过程.架构用户 登录名包含在被拥有映射为架构(架构(SchemaSc

12、hema)是数据库对象()是数据库对象(TableTable、ViewView、IndexIndex、TriggerTrigger、ProcedureProcedure、FunctionFunction等)的集合,其中的每等)的集合,其中的每个对象的名称都是唯一的个对象的名称都是唯一的 对象之间的关系对象之间的关系数据库安全性和完整性数据库安全性和完整性3 3角色角色服务器范围的角色 固定服务器角色固定服务器角色描述描述bulkadminbulkadmin运行运行BULK INSERTBULK INSERT语句语句dbcreatordbcreator创建和修改数据库创建和修改数据库diskad

13、mindiskadmin管理磁盘文件管理磁盘文件processadminprocessadmin管理管理SQL ServerSQL Server进程进程securityadminsecurityadmin管理和审计服务器登录管理和审计服务器登录serveradminserveradmin配置服务器设置配置服务器设置setupadminsetupadmin配置复制和链接服务器配置复制和链接服务器sysadminsysadmin执行全部活动执行全部活动数据库安全性和完整性数据库安全性和完整性数据库范围的角色 固定数据库角色固定数据库角色描述描述db_accessadmindb_accessadmi

14、n可以添加或删除用户可以添加或删除用户db_backupoperatordb_backupoperator可以执行可以执行DBCCDBCC、CHECKPOINTTCHECKPOINTT、BACKUPBACKUP语句语句db_datareaderdb_datareader可以查询数据库内任何用户表中的数据可以查询数据库内任何用户表中的数据db_datawriterdb_datawriter可以更改数据库内任何用户表中的数据可以更改数据库内任何用户表中的数据db_ddladmindb_ddladmin可以执行所有的数据定义语句,但不能使用授权命令。可以执行所有的数据定义语句,但不能使用授权命令。d

15、b_denydatareaderdb_denydatareader不能查询数据库内任何用户表中的数据不能查询数据库内任何用户表中的数据db_denydatawriterdb_denydatawriter不能更改数据库内任何用户表中的数据不能更改数据库内任何用户表中的数据db_ownerdb_owner在数据库中有全部权限在数据库中有全部权限db_securityadmindb_securityadmin可以管理全部权限、对象所有权、角色和角色成员资格。可以管理全部权限、对象所有权、角色和角色成员资格。5.2.2身份验证模式SQL Server 2005SQL Server 2005提供了两种身

16、份验证模式:提供了两种身份验证模式:WindowsWindows身身份验证模式和混合验证模式份验证模式和混合验证模式 .在在WindowsWindows身份验证模式中,身份验证模式中,SQL ServerSQL Server使用使用WindowsWindows操操作系统中的信息验证用户身份,这种方式是作系统中的信息验证用户身份,这种方式是SQL Server SQL Server 20052005默认的验证方式,它比混合模式安全默认的验证方式,它比混合模式安全 在混合模式中,在混合模式中,SQL Server 2005SQL Server 2005使用使用WindowsWindows身份验证身

17、份验证或或SQL ServerSQL Server自己的验证机制验证用户身份。对于数据自己的验证机制验证用户身份。对于数据库管理员来说,这种方式更方便数据库对象的授权管理库管理员来说,这种方式更方便数据库对象的授权管理 数据库安全性和完整性数据库安全性和完整性数据库安全性和完整性数据库安全性和完整性5.2.3登录管理登录管理 登录名是数据库使用者访问数据库时的账户标识,有四登录名是数据库使用者访问数据库时的账户标识,有四种类型的登录名:种类型的登录名:SQL Server SQL Server 登录名、登录名、Windows Windows 登录登录名、证书映射登录名和非对称密钥映射登录名名、

18、证书映射登录名和非对称密钥映射登录名 1用T-SQL创建登录名 CREATE LOGIN CREATE LOGIN 登录名登录名 WITH PASSWORD=,DEFAULT_DATABASE=FROM WINDOWS,DEFAULT_DATABASE=默认数据库默认数据库 ,DEFAULT_LANGUAGE=,DEFAULT_LANGUAGE=默认语言默认语言,CHECK_EXPIRATION=ON,CHECK_EXPIRATION=ON,CHECK_POLICY=ON MUST_CHANGECHECK_POLICY=ON MUST_CHANGE例例5-15-1:创建:创建SQL Serve

19、rSQL Server登录名。登录名。CREATE LOGIN CSMZXY WITH PASSWORD=123456CREATE LOGIN CSMZXY WITH PASSWORD=123456,DEFAULT_DATABASE=DEFAULT_DATABASE=BOOKSYSBOOKSYS例例5-25-2:从:从WindowsWindows域帐户创建登录名。域帐户创建登录名。CREATE LOGIN WORKGROUPSTUDENT FROM WINDOWSCREATE LOGIN WORKGROUPSTUDENT FROM WINDOWS数据库安全性和完整性数据库安全性和完整性数据库安

20、全性和完整性数据库安全性和完整性2.使用SQL Server Management Studio创建登录名 在对象资源管在对象资源管理器中,选择理器中,选择要管理的服务要管理的服务器并展开,展器并展开,展开开“安全性安全性”结点,右键单结点,右键单击击“登录名登录名”,在弹出菜单中在弹出菜单中选择选择“新建登新建登录名录名”选项。选项。数据库安全性和完整性数据库安全性和完整性5.2.4用户管理用户是访问某个特定数据库的主体。数据库用户可以和已用户是访问某个特定数据库的主体。数据库用户可以和已有的登录名进行映射有的登录名进行映射 1用T-SQL创建用户CREATE USER CREATE USE

21、R 用户名用户名 FOR|FROM FOR|FROM 登录名登录名 WITH WITH DEFAULT_SCHEMA=DEFAULT_SCHEMA=架构名架构名 例例5-35-3创建数据库创建数据库BookSysBookSys的用户:用户名的用户:用户名CSMZXYCSMZXY,并将其,并将其映射到前面创建的登录名映射到前面创建的登录名“CSMZXYCSMZXY”,默认架构为,默认架构为dbodboUSE BookSysUSE BookSysGOGOCREATE USER CSMZXY FOR CSMZXY WITH DEFAULT_SCHEMA CREATE USER CSMZXY FOR

22、CSMZXY WITH DEFAULT_SCHEMA=DBO=DBO数据库安全性和完整性数据库安全性和完整性2使用SQL Server Management Studio创建用户5.2.4用户管理在对象资源管理在对象资源管理器,选择要创建器,选择要创建用户的数据库并用户的数据库并展开,再展开展开,再展开“安全性安全性”结点,结点,右击右击“用户用户”,在弹出菜单中选在弹出菜单中选择择“新建用户新建用户”命令,打开如图命令,打开如图所示的所示的“数据库数据库用户用户-新建新建”对话对话框框 5.2.5架构管理数据库安全性和完整性数据库安全性和完整性1架构的概念 架构是形成单个命名空间的数据库实体

23、的集合,命名架构是形成单个命名空间的数据库实体的集合,命名空间是一个集合,其中每个元素的名称都是唯一的。架空间是一个集合,其中每个元素的名称都是唯一的。架构是数据库对象的命名空间构是数据库对象的命名空间 2使用完全限定对象名称 引入架构后,访问数据库对象,如果使用完全限定对引入架构后,访问数据库对象,如果使用完全限定对象名称,应该采用如下模式:象名称,应该采用如下模式:服务器名服务器名.数据库名数据库名.架构名架构名.数据对象名数据对象名 数据库安全性和完整性数据库安全性和完整性3用T-SQL创建架构下面的语句在下面的语句在BookSysBookSys数据库中创建名为数据库中创建名为“MySc

24、hemaMySchema”的的架构。架构。USE BookSysUSE BookSysGOGOCREATE SCHEMA MySchema AUTHORIZATION USER1CREATE SCHEMA MySchema AUTHORIZATION USER1GOGOAUTHORIZATION USER1AUTHORIZATION USER1指定架构的拥有者为指定架构的拥有者为用户用户user1user1,如果没有指定架构的拥有者,如果没有指定架构的拥有者,默认为默认为dbo dbo 4使用SQL Server Management Studio创建架构数据库安全性和完整性数据库安全性和完整

25、性在对象资源管理器,在对象资源管理器,选择要创建用户的数选择要创建用户的数据库并展开,再展开据库并展开,再展开“安全性安全性”结点,右结点,右击击“架构架构”,在弹出,在弹出菜单中选择菜单中选择“新建架新建架构构”命令,打开如图命令,打开如图所示的所示的“架构架构-新建新建”对话框对话框 数据库的完整性是指数据的正确性和相容性。数据库的完整性是指数据的正确性和相容性。数据库是否具备完整性关系到数据库系统能否真实地数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要反映现实世界,因此维护数据库的完整性是非常重要的。的。数据的完整性与安全性是数据库保护的两个

26、不同方面。数据的完整性与安全性是数据库保护的两个不同方面。数据库安全性和完整性数据库安全性和完整性5.3 数据库完整性5.3.1 完整性约束条件完整性约束条件 完整性约束条件作用的对象可以有列级、元组级和关完整性约束条件作用的对象可以有列级、元组级和关系级三种粒度。其中对列的约束主要指对其取值类型、系级三种粒度。其中对列的约束主要指对其取值类型、范围、精度和排序等的约束条件。对元组的约束是指范围、精度和排序等的约束条件。对元组的约束是指对记录中各个字段间的联系的约束。对关系的约束是对记录中各个字段间的联系的约束。对关系的约束是指对各记录间或关系之间的联系的约束。指对各记录间或关系之间的联系的约

27、束。数据库安全性和完整性数据库安全性和完整性 静态列级约束是对一个列的取值域的说明,这是静态列级约束是对一个列的取值域的说明,这是最常见最简单同时也最容易实现的一类完整性约束,最常见最简单同时也最容易实现的一类完整性约束,包括以下几方面:包括以下几方面:(1 1)对数据类型的约束,包括数据的类型、长度、)对数据类型的约束,包括数据的类型、长度、单位和精度等。单位和精度等。(2 2)对数据格式的约束。)对数据格式的约束。(3 3)对取值范围或取值集合的约束。)对取值范围或取值集合的约束。(4 4)对空值的约束。)对空值的约束。(5 5)其他约束。)其他约束。数据库安全性和完整性数据库安全性和完整

28、性1静态列级约束 一个元组是由若干个列值组成的,静态元组一个元组是由若干个列值组成的,静态元组约束就是规定组成一个元组的各个列之间的约约束就是规定组成一个元组的各个列之间的约束关系。束关系。静态元组约束只局限在单个元组上,因此静态元组约束只局限在单个元组上,因此比较容易实现。例如在图书借阅表中可以规定:比较容易实现。例如在图书借阅表中可以规定:还书日期还书日期 借书日期。借书日期。数据库安全性和完整性数据库安全性和完整性2静态元组约束数据库安全性和完整性数据库安全性和完整性3静态关系约束在一个关系的各个元组之间或者若干关系之间常常存在各在一个关系的各个元组之间或者若干关系之间常常存在各种联系或

29、约束。常见的静态关系约束有以下四种:种联系或约束。常见的静态关系约束有以下四种:(1)实体完整性约束。)实体完整性约束。(2)参照完整性约束。)参照完整性约束。(3)函数依赖约束。)函数依赖约束。(4)统计约束。)统计约束。数据库安全性和完整性数据库安全性和完整性4动态列级约束 动态列级约束是修改列定义或列值时要满足的约束条动态列级约束是修改列定义或列值时要满足的约束条件,包括以下两方面:件,包括以下两方面:(1 1)修改列定义时的约束。)修改列定义时的约束。(2 2)修改列值时的约束。)修改列值时的约束。5动态元组约束 动态元组约束是指修改某个元组时需要参照其旧值,动态元组约束是指修改某个元

30、组时需要参照其旧值,并且新旧值之间需要满足某种约束条件。并且新旧值之间需要满足某种约束条件。6动态关系约束 动态关系约束是加在关系变化前后状态上的限制条件。动态关系约束是加在关系变化前后状态上的限制条件。例如,事务一致性、原子性等约束条件。例如,事务一致性、原子性等约束条件。表表5-5 完整性约束条件完整性约束条件粒度状态列级元组级关系级静态列定义类型格式值域空值元组值应满足的条件实体完整性约束参照完整性约束函数依赖约束统计约束动态改变列定义或列值元组新旧值之间应满足的约束条件关系新旧状态间满足的约束条件数据库安全性和完整性数据库安全性和完整性5.3.2 完整性控制完整性控制数据库安全性和完整

31、性数据库安全性和完整性完整性约束的定义完整性约束的定义完整性约束条件的检查完整性约束条件的检查对违背了完整性约束条件的操作应采取的措施对违背了完整性约束条件的操作应采取的措施DBMSDBMS的完整性控制机制应具有三个方面的功能:的完整性控制机制应具有三个方面的功能:1完整性约束的定义在SQL语言中,CREATE TABLE语句提供了定义完整性的功能。详细语法格式请参照第3章的3.2节 2完整性约束条件的检查检查是否违背完整性约束的时机通常是在一条语句检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查,我们称这类约束为执行完后立即检查,我们称这类约束为立即执行的立即执行的约束约束 在某

32、些情况下,完整性检查需要延迟到整个事务执行在某些情况下,完整性检查需要延迟到整个事务执行结束后再执行,称这类约束为结束后再执行,称这类约束为延迟执行的约束延迟执行的约束 数据库安全性和完整性数据库安全性和完整性数据库安全性和完整性数据库安全性和完整性3对违背了完整性约束条件的操作应采取的措施对于违反实体完整性规则和用户定义的完整性规则的操作对于违反实体完整性规则和用户定义的完整性规则的操作一般都是采用拒绝执行的方式进行处理一般都是采用拒绝执行的方式进行处理 对于违反参照完整性的操作,并不都是简单的拒绝执行,对于违反参照完整性的操作,并不都是简单的拒绝执行,有时还需要采取另一种方法有时还需要采取

33、另一种方法 级联修改(级联修改(CascadesCascades)受限修改(受限修改(RestrictedRestricted)置空值修改(置空值修改(NullifiesNullifies)(1)删除被参照关系的元组时的考虑 受限删除受限删除 (RestrictedRestricted)级联删除级联删除 (CascadesCascades)置空值删除置空值删除 (NullifiesNullifies)(2)修改被参照关系中主码的考虑(3)外码是否可以接受空值 外码是否可以接受空值是由其语义来决定外码是否可以接受空值是由其语义来决定 数据库安全性和完整性数据库安全性和完整性数据库安全性和完整性数据库安全性和完整性5.3.3 SQL Server的完整性1实体完整性在在SQL ServerSQL Server中是通过说明某个属性或属性集构成中是通过说明某个属性或属性集构成关系的主码来实现关系的实体完整性关系的主码来实现关系的实体完整性 2参照完整性在在SQL ServerSQL Server是通过外码来实现参照完整性是通过外码来实现参照完整性 3用户定义的完整性列值非空(列值非空(NOT NULLNOT NULL短语)。短语)。列值惟一(列值惟一(UNIQUEUNIQUE短语)。短语)。检查列值是否满足一个布尔表达式(检查列值是否满足一个布尔表达式(CHECKCHECK短语)短语)

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

当前位置:首页 > 大学
版权提示 | 免责声明

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


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

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


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