数据库技术及应用第9章sqlserver的数据库保护技术.ppt_第1页
数据库技术及应用第9章sqlserver的数据库保护技术.ppt_第2页
数据库技术及应用第9章sqlserver的数据库保护技术.ppt_第3页
数据库技术及应用第9章sqlserver的数据库保护技术.ppt_第4页
数据库技术及应用第9章sqlserver的数据库保护技术.ppt_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

第9章 SQL Server的数据库保护技术,9.1 SQL Server的安全体系结构和安全认证模式 9.2 SQL Server的用户和角色管理 9.3 SQL Server的权限管理 9.4 SQL Server的数据库完整性及实现方法 9.5 SQL Server的并发控制机制 9.6 SQL Server的数据恢复机制 习题9,9.1 SQL Server的安全体系结构和安全认证模式,9.1.1 SQL Server的安全体系结构 SQL Server提供以下四层安全防线,用户要想获得SQL Server数据库及其对象,必须通过这四层安全防线。 1. Windows NT操作系统的安全防线 2. SQL Server的运行安全防线 3. SQL Server数据库的安全防线 4. SQL Server数据库对象的安全防线,9.1.2 SQL Server的安全认证模式 安全认证是指数据库系统对用户访问数据库系统时所输入的账号和口令进行确认的过程。 1. Windows(S)安全认证模式 Windows(S)安全认证模式是指SQL服务器通过使用Windows网络用户的安全性来控制用户对SQL服务器的登录访问。,2. 混合安全认证模式 混合安全认证模式允许使用Windows(S)安全认证模式或SQL Server安全认证模式。,9.1.3 设置SQL Server的安全认证模式 使用SQL Server的企业管理器能选择需要的安全认证模式,其步骤为: 在企业管理器中扩展开SQL服务器组,用鼠标右键单击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,如图9-1所示。 在弹出的SQL服务器属性对话框中,选择“安全性”选项卡,如图9-2所示。,图9-1 SQL服务器的弹出菜单,图9-2 SQL Server属性的“安全性”选项卡, 在“安全性”选项卡中有一个安全性栏,它包括两个单选项: 单击“SQL Server 和 Windows(S)”为选择混合安全认证模式。 单击“仅Windows(W)”则为选择集成安全认证模式。,9.2 SQL Server的用户和角色管理,SQL Server 2000的安全防线中突出两种管理:一是对用户或角色的管理,即控制合法用户使用数据库;二是对权限管理,即控制具有数据操作权的用户进行合法的数据存取操作。,用户是具有合法身份的数据库使用者,角色是具有一定权限的用户组合。SQL Server的用户或角色分为二级: (1) 服务器级用户或角色。 (2) 数据库级用户或角色。,9.2.1 登录的管理 登录(亦称Login用户,即SQL服务器用户)通过账号和口令访问SQL Server的数据库。 1. 查看安全性文件夹的内容 使用企业管理器可以创建、查看和管理登录。登录存放在SQL服务器的安全性文件夹中。,图9-3 SQL Server 的安全性文件夹,通过该窗口可以看出“安全性”文件夹包括四个文件夹:登录文件夹、服务器角色文件夹、链接服务器文件夹和远程服务器文件夹,其中: (1) 登录文件夹:用于存储和管理登录用户。 (2) 服务器角色文件夹:用于存储和管理角色。 (3) 链接服务器文件夹:用于存储和管理连接的服务器。 (4) 远程服务器文件夹:用于存储管理远程服务器信息。,2. 创建一个登录用户 要创建一个登录用户,其操作步骤为: 用鼠标右键单击登录文件夹,出现如图9-4所示的弹出菜单,在弹出的菜单中选择“新建登录”选项后,弹出“登录属性”对话框。 选择“常规”选项卡,输入用户的一般特征。 选择“服务器角色”选项卡,确定用户所属服务器的角色。,图9-4 登录对话框中的“常规”选项卡,图9-5 Windows系统具有的默认登录用户,图9-6 “服务器角色”选项卡,图9-7 “数据库访问”选项卡, 选择“数据库访问”选项卡,确定用户能访问的数据库,并确定用户所属的数据库角色。 操作完成后,单击“确定”按钮,即完成了创建登录用户的工作。,9.2.2 数据库用户的管理 1. dbo用户 dbo用户即数据库拥有者或数据库创建者,dbo在其所拥有的数据库中拥有所有的操作权限。 2. guest用户 如果guest用户在数据库存在,则允许任意一个登录用户作为guest用户访问数据库,其中包括那些不是数据库用户的SQL服务器用户。,3. 创建新的数据库用户 要在图书_读者数据库中创建一个“User1”数据库用户,其步骤为: 在企业管理器中扩展SQL服务器及数据库文件夹。用鼠标右键单击用户文件夹,在弹出的菜单中选择“新建数据库用户”项,出现新建数据库用户对话框,如图9-8所示。,图9-8 创建数据库用户, 在“登录名”中选择一个SQL服务器登录用户名(本例为“login1”),并在它下面的用户名栏中输入数据库用户名,本例为“user2”。最后,在下面的数据库角色栏中选择该数据库用户参加的角色。 单击“确定”按钮。,9.2.3 服务器级角色的管理 服务器级角色建立在SQL服务器上。服务器级角色是系统预定义的,也称Fixed Server Roles,即固定的服务器角色。 登录用户可以通过两种方法加入到服务器角色中: (1) 在创建登录时,通过服务器角色选项卡中的服务器角色选项,确定登录用户应属于的角色,该方法在前面已介绍过。 (2) 对已有登录通过参加或移出服务器角色的方法进行角色增加或移去操作。,图9-9 服务器角色的弹出菜单,图9-10 “服务器角色属性”对话框的“常规”选项卡,图9-11 “服务器角色属性”对话框的“权限”选项卡,9.2.4 数据库角色的管理 1. 在数据库角色中增加或移去用户 在企业管理器中,向数据库角色添加或移去用户的方法是: 展开一个SQL服务器、数据库文件夹和指定的数据库文件夹,选中“角色”文件夹后,在右侧窗口中就会出现该数据库已有的角色。 选中要加入的角色,如db_owner角色,单击鼠标右键,在弹出的菜单中选择“属性”项,如图9-12所示。,图9-12 “数据库角色属性”对话框, 在弹出的“数据库角色属性”对话框中,单击“添加”按钮后,则出现选择该数据库用户的对话框,选择出要加入角色的用户,单击“确定”按钮,关闭选择数据库用户对话框后,会发现新选的用户名出现在“数据库角色属性”对话框中。 如果在数据库角色中要移去一个用户,可先在用户栏中选中它,然后单击“删除”按钮即可。 单击“确定”按钮退出设置界面。,2. 创建新的数据库角色 创建数据库角色的步骤为: 在企业管理器中打开SQL服务器组、服务器、数据库文件夹和特定的数据库文件夹。 用鼠标选中角色子文件夹后,右边的细节窗口中将显示该数据库中的角色,用鼠标右键单击任意角色,并在弹出的菜单中选择“新建数据库角色”项,如图9-13所示。, 在弹出的“数据库角色属性新建角色”对话框中,可以在“名称”栏中输入新角色名,可以在用户栏增加或移去角色中的用户,还可以确定数据库角色的类型。 单击“确定”按钮完成。,图9-13 “数据库角色属性新建角色”对话框,9.3 SQL Server的权限管理,9.3.1 SQL Server权限种类 SQL Server有两类权限:对象权限和语句权限。 1. 对象权限 对象权限针对数据库对象设置,它由数据库对象拥有者授予、废除或撤消。对象权限适用的数据库对象和Transact-SQL语句在表9-1中列出。,表9-1 对象权限适用的对象和语句,2. 语句权限 语句权限针对数据库设置,它只能由Sa或dbo授予、废除或撤消。语句权限适用的Transact-SQL语句和功能如表9-2所示。,表9-2 语句权限适用的语句和权限说明,9.3.2 对象权限的管理 对象权限的管理可以通过以下两种方法实现: (1) 通过对象管理它的用户及操作权。 (2) 通过用户管理对应的数据库对象及操作权。 具体使用哪种方法要视管理的方便性来决定。,1. 通过对象授予、撤消和废除用户权限 如果要一次为多个用户(角色)授予、撤消和废除对某一个数据库对象的权限时,应采用通过对象的方法实现。 2. 通过用户或角色授予、撤消和废除对象权限 如果要为一个用户或角色同时授予、撤消或者废除多个数据库对象的使用权限,则可以通过用户或角色的方法进行。,图9-14 对象权限对话框,图9-15 “数据库角色属性图书_读者”对话框,9.3.3 语句权限的管理 在SQL Server 2000的企业管理器中,还提供了管理语句权限的方法,其操作步骤为: 展开一个SQL服务器、数据库文件夹,用鼠标右键单击指定的数据库文件夹,例如图书_读者数据库。在弹出的菜单中选择“属性”项,弹出数据库属性对话框,如图9-16所示。,图9-16 管理数据库语句权限, 选择“权限”选项卡,单击表中的各复选小方块可分别对各用户或角色授予、撤消和废除数据库的语句操作 权限。 单击“确定”按钮。,9.4 SQL Server的数据库完整性及实现方法,9.4.1 SQL Server的数据完整性的种类 SQL Server 2000中的数据完整性包括域完整性、实体完整性和参照完整性三种。 1. 域完整性 域完整性为列级和元组级完整性,它为列或列组指定一个有效的数据集,并确定该列是否允许为空。,2. 实体完整性 实体完整性为表级完整性,它要求表中所有的元组都应该有一个惟一的标识符,这个标识符就是平常所说的主码。 3. 参照完整性 参照完整性是表级完整性,它维护参照表中的外码与被参照表中主码的相容关系。,9.4.2 SQL Server数据完整性的两种方式 SQL Server使用声明数据完整性和过程数据完整性两种方式实现对数据库完整性的控制。 1. 声明数据完整性 声明数据完整性通过在对象定义中定义、系统本身自动强制来实现。 2. 过程数据完整性 过程数据完整性通过使用脚本语言(主语言或Transact-SQL)定义,系统在执行这些语言时强制完整性实现。过程数据完整性包括触发器和存储过程等。,9.4.3 SQL Server实现数据完整性的具体方法 SQL Server实现数据完整性的主要方法有四种:约束、缺省、规则和触发器。 1. SQL Server 2000约束的类型 约束通过限制列中的数据、行中的数据和表之间数据来保证数据完整性。表9-3列出了SQL Server 2000约束的五种类型和其完整性功能。,表9-3 约束类型和完整性功能,2. 声明数据完整性约束的定义 声明数据完整性约束可以在创建表(CREATE TABLE)和修改表(ALTER TABLE)语句中定义。 约束分列级约束和表级约束两种:列级约束定义时,直接跟在列后,与列定义子句之间无“,”分隔;元组级约束和表级约束要作为语句中的单独子句,与列定义子句或其他子句之间用“,”分隔。,使用CREATE语句创建约束的语法形式如下: CREATE TABLE 表名(,列名 类型列级约束,n ,表级约束,n),其中: 列级约束:= CONSTRAINT约束名 PRIMARY KEY CLUSTERED| NONCLUSTERED | UNIQUE CLUSTERED| NONCLUSTERED | FOREIGN KEY REFERENCES被参照表(主码) | DEFAULT 常量表达式| CHECK逻辑表达式,表级约束:= CONSTRAINT约束名 PRIMARY KEY CLUSTERED| NONCLUSTERED(列名组) | UNIQUE CLUSTERED| NONCLUSTERED(列名组) | FOREIGN KEY (外码) REFERENCES 被参照表(主码) | CHECK (约束条件),3. 缺省和规则 缺省(DEFAULT)和规则(RULE)都是数据库对象。当它们被创建后,可以绑定到一列或几列上,并可以反复使用。 4. 触发器 触发器是一种高功能、高开支的数据完整性方法。触发器具有INSERT、UPDATE和DELETE三种类型。一个表可以具有多个触发器。,9.5 SQL Server的并发控制机制,9.5.1 SQL Server的事务类型 SQL Server的事务分为两种类型:系统提供的事务和用户定义的事务。 (1) 系统提供的事务是指在执行某些语句时,一条语句就是一个事务,它的数据对象可能是一个或多个表(视图),也可能是表(视图)中的一行数据或多行数据。,(2) 用户定义的事务以BEGIN TRANSACTION语句开始,以COMMIT(事务提交)或ROLLBAK(回滚)结束。,9.5.2 SQL Server的空间管理及锁的级别 1. 行和行级锁 表中的行可以是锁定的最小空间资源。行级锁是指事务操作过程中,锁定一行或若干行数据。由于行级锁占用的数据资源最少,它避免了数据被占用但不使用的现象,因而行级锁是最优锁。,2. 页和页级锁 在SQL Server中,除行外的最小数据单位是页。一个页有8 KB,所有的数据、日志和索引都放在页上。为了管理方便,表中的行不能跨页存放,一行的数据必须在同一个页上。,3. 簇和簇级锁 页之上的空间管理单位是簇,一个簇有八个连续的页。 簇级锁指事务占用一个簇,这个簇不能被其他事务占用。,4. 表级锁 表级锁是一种主要的锁。表级锁是指事务在操纵某一个表的数据时锁定了这些数据所在的整个表,其他事务不能访问该表中的数据。当事务处理的数量比较大时,一般使用表级锁。 5. 数据库级锁 数据库级锁是指锁定整个数据库,防止其他任何用户或者事务对锁定的数据库进行访问。这种锁的等级最高,因为它控制整个数据库的操作。,9.5.3 SQL Server锁的类型 SQL Server的基本锁是共享锁(S锁)和排它锁(X锁)。除基本锁之外,还有三种特殊锁: (1) 意向锁包括意向共享锁(IS锁)、意向排它锁(IX锁)和共享意向排它锁(SIX锁)。 (2) 修改锁是为修改操作提供的页级排它锁。 (3) 模式锁是为保证系统模式(表和索引结构)不被删除和修改而设置的锁。,一般情况下,SQL Server能自动提供加锁功能,而不需要用户专门设置,这些功能表现在以下几个方面: (1) 当用SELECT语句访问数据库时,系统能自动用共享锁访问数据;在使用INSERT、UPDATE和DELETE语句增加、修改和删除数据时,系统会自动给使用数据加排它锁。 (2) 系统可用意向锁使锁之间的冲突最小化。,(3) 当系统修改一个页时,会自动加修改锁。 (4) 当操作涉及到参考表或者索引时,SQL Server会自动提供模式锁。,9.6 SQL Server的数据恢复机制,9.6.1 SQL Server的数据备份形式和操作方式 1. SQL Server的三种数据备份形式 (1) 完全备份,即海量备份,将数据库完全复制到备份文件中。 (2) 事务日志备份:是备份发生在数据库上的事务。 (3) 增量备份:指备份最近一次完全备份以后数据库发生变化的数据。,2. 数据库进行备份和恢复操作的方式 根据对SQL服务器的占用方式,数据库的备份和恢复操作可分为以下两种方式: (1) 静态的备份和恢复方式:在进行数据备份或恢复操作时,SQL服务器不接受任何应用程序的访问请求,只执行备份或恢复操作。 (2) 动态的备份和恢复方式:在进行数据备份或恢复操作时,SQL服务器同时接受应用程序的访问请求。,9.6.2 SQL Server的数据备份或恢复策略 1. 使用完全备份的策略 使用完全备份的最大优点是能够简便数据库的恢复操作,它只需要将最近一次的备份恢复即可。 2. 在完全备份基础上使用事务日志备份的策略 事务日志备份必须与数据库的完全备份联合使用,才能实现数据备份和恢复功能。,3. 同时使用三种备份的策略 在同时使用数据库完全备份和事务日志备份的基础上,再以增量备份作为补充,可以在发生数据丢失时将损失减少到最小。,9.6.3 SQL Server的数据备份方法 SQL Server的数据备份可以通过执行Transact-SQL语句、系统存储过程或者使用SQL Server的企业管理器实现。本书仅介绍使用企业管理器进行数据备份和数据恢复的方法。 1. 备份设备的管理 执行备份的第一步是创建备份设备。,图9-17 “备份设备属性新设备”对话框,2. 备份数据库 设置备份数据库任务的操作步骤为: 进入数据库备份对话框。, 在“常规”选项卡中可以完成以下操作:在数据库框中选择要备份的数据库;在名称框中为备份取一个便于识别的名称;选择备份方法,可选择完全备份、差异备份(增量备份)、事务日志、文件或文件组之一;为磁盘备份设备或备份文件选择目的地,即通过列表右边的“添加”按钮或“删除”按钮确定备份文件的存放位置,列表框中显示要使用的备份设备或备份文件;在重写栏中选择将备份保存到备份设备时的覆盖模式;在调度栏中设置数据库备份计划。,图9-18 数据库备份的“常规”选项卡和“选项”选项卡, 设定备份计划需要执行的操作。 选中“常规”选项卡中的调度复选框,单击文本框右边的“”按钮,弹出“编辑调度”对话框,如图9-19所示。 设置“选项”选项卡的内容。,图9-19 “编辑调度”对话框,9.6.4 SQL Server的数据恢复方法 1. 调出数据库恢复对话框 在SQL Server 2000的企业管理器中,用鼠标右键单击要进行数据恢复的数据库。在弹出的菜单中选

温馨提示

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

评论

0/150

提交评论