第4章 数据库保护(精品).ppt
第第4章章 数据库保护数据库保护 4.1 SQL Server 2005的的验证模式验证模式4.2 登登录管理录管理4.3 用户用户管理管理4.4 角色管理角色管理4.5 权限管理权限管理4.6 数据库备份数据库备份4.7 数据库恢复数据库恢复4.1SQLServer2005的验证模式4.1.1 Windows 身份验证模式4.1.2 SQL Server 身体验证模式4.1.3 设置验证模式4.1.4 SQL Server 系统登录验证过程24.1.1身份验证模式Windows身份验证模式是指要登录到SQLServer系统的用户身份由Windows系统来进行验证。在Windows登录验证模式下,SQLServer回叫Windows以获得相应的登录信息,并在sysxlogins表中查找该帐户,以确定该帐户是否有权登录。在这种方式下,用户不必提供登录名或密码让SQLserver验证。SQLServer身份验证模式是指用户登录SQLServer系统时,其身份验证由Windows和SQLServer共同进行。所以SQLServer身份验证模式也称混合验证模式。34.1.3设置验证模式设置验证模式的工作只能由系统管理员来完成。使用SQLServerManagementStudio时,设置或改变验证模式的步骤如下:1)打开SQL Server Management Studio。2)在“已注册的服务器”窗口中右击要设置验证模式的服务器,然后在系统弹出的快捷菜单上选择“属性”,系统将弹出如下图7-1所示的“编辑服务器注册属性”窗口。3)服务器名称:按格式选择要注册的服务器实例。身份验证:在连接到 SQL Server 实例时,可以使用两种身份验证模式。l注意:请尽可能使用 Windows 身份验证。4)设置完成后,单击“测试”以确定设置是否正确。5)单击“确认”,关闭对话窗口。44.2登录管理4.2.1系统管理员登录账户4.2.2用T-SQL语句创建、查看、删除SQLServer登录账户4.2.3用SQLServerManagementStudio创建、查看、删除SQLServer登录账户本章首页本章首页本章首页本章首页54.2.1系统管理员登录账户SQLServer有两个默认的系统管理员登录帐户:sa和BUILTINAdministrators。这两个登录帐户具有SQLServer系统和所有数据库的全部权限。sa是一个特殊的登录名,它代表混合验证机制下SQLServer的系统管理员,sa始终关联dbo用户。BUILTINAdministrators是Windows系统的系统管理员组。具体地说,系统管理员负责下面的工作:创建登录名配置服务器创建、删除数据库无须考虑所有权和权限,可以操作各种数据库对象停止、启动服务器停止在服务器上运行的无效过程某些权限只能被系统管理员拥有并且不能被授予其他用户。这些功能是管理存储空间,管理用户进程及改变数据库选项。64.2.2 使用使用T-SQL语言创建、查看、删除语言创建、查看、删除SQL Server登录帐户登录帐户 SQL Server登录帐户的创建登录帐户的创建使用系统存储过程sp_addlogin可以创建一个登录帐户。sp_addlogin存储过程的语法形式如下:sp_addlogin login,password,default_databaselogin:要被创建的登录帐户。它是唯一必须给定值的参数,而且必须是有效的SQLServer对象名。password:新登录帐户的密码。default_database:新登录帐户访问的默认数据库。SQL Server登录帐户的查看登录帐户的查看sp_helplogins【例7-1】创建一个登录帐户为ABC,密码为123、使用的默认数据库为JWGL。EXECsp_addloginABC,123,jwgl EXECsp_addlogina1,111,jwglEXECsp_addlogina2,222,master7 登录帐户的删除登录帐户的删除删除一个登录帐户时,SQLServer必须确认这个登录帐户没有关联的用户存在于数据库系统中。如果存在用户和被删除的登录名关联,SQLServer将返回错误提示信息,指出数据库中哪个用户与被删除的登录帐户相关联。删除一个登录帐户使用系统存储过程sp_droplogin。sp_droplogin存储过程的语法形式如下:sp_droploginloginlogin:要被删除的登录帐户。【例7-2】从SQLServer中将登录帐户ABC删除掉。EXECsp_droploginABC8 创建创建SQL Server登录帐户登录帐户用SQLServerManagementStudio创建SQLServer登录帐户的具体步骤如下:1)启动SQL Server SQL Server Management Studio。分别展开“服务器”、“安全性”、“登录名”。2)右击“登录名”,选择“新建登录名”项,进入“登录名-新建”窗口。3)输入登录名,选择一种身份验证模式,如选择Windows验证模式,然后指定该帐户默认登录的数据库和默认语言(这里要注意,系统新建登录时把系统库master设为默认库,建议改成实际使用的数据库);如选择SQL Server验证模式,则需要输入登录帐户名称、密码及确认密码。点击“服务器角色”选项卡:可以查看或更改登录名在固定服务器角色中的成员身份;点击“用户映射”选项卡:以查看或修改 SQL 登录名到数据库用户的映射,并可选择其在该数据库中允许担任的数据库角色。4)单击“确定”按钮即可增加一个登录帐户。4.2.3用SQLServerManagementStudio创建、查看、删除SQLServer登录帐户9查看及删除登录帐户一个新的登录帐户增加后,可以在SQL Server Management Studio中查看其详细信息。查看一个帐户的步骤如下:1)启动SQL Server SQL Server Management Studio。分别展开“服务器”、“安全性”、“登录名”。2)右击该“登录名”下的某一登录帐户,在系统弹出的菜单上点击“属性”可进入“SQL Serve登录属性”窗口查看该登录帐户的信息;3)点击“删除”可以删除该登录帐户。104.3用户管理4.3.1数据库用户名和登录名的关系4.3.2用T-SQL语句创建、查看、删除数据库用户4.3.3使用SQLServerManagementStudio创建、查看、删除数据库用户114.3.1数据库用户名和登录名的关系登录名、数据库用户名是SQLServer中两个容易混淆的概念。登录名是访问SQLServer的通行证。每个登录名的定义存放在主人数据库的表sysxlogins中。登录名本身并不能让用户访问服务器中的数据库资源。要访问特定的数据库,还必须有数据库用户名。新的登录创建以后,才能创建用户,用户在特定的数据库内创建,必须和一个登录名相关联。用户的定义信息存放在与其相关的数据库的sysusers表中。这个表包含了该数据库的所有用户对象以及和它们相对应的登录名的标识。用户名没有密码和它相关联。大多数情况下,登录名和用户名使用相同的名称。12在SQLServer中,登录帐户和数据库用户是SQLServer进行权限管理的两种不同的对象。一个登录帐户可以与服务器上的所有数据库进行关联,而数据库用户是一个登录帐户在某个数据库中的映射,也就是说一个登录帐户可以映射到不同的数据库,产生多个数据库用户,一个数据库用户只能映射到一个登录帐户。允许数据库为每个用户对象分配不同的权限,这一特点为在组内分配权限提供了最大的自由度。137.3.2用T-SQL语句创建、查看、删除数据库用户登录帐户成功创建后,怎样才能将登录帐户映射到数据库中的用户上呢?如果使用ManagementStudio创建登录帐户,可以省略这步操作。但要注意,实际上它完成了两步不同的操作:第一步是创建登录帐户,第二步是将登录帐户映射为数据库中同名的用户。为一个登录帐户授权,最常使用的方法是创建一个新的数据库用户,然后将其与一个登录帐户对应起来。141.用用T-SQL语句创建数据库用户语句创建数据库用户使用系统存储过程sp_graWindowsdbaccess可以创建数据库用户。其具体的语法形式如下:sp_adduserlogin,name_in_db这个存储过程有两个参数,但只有第一个参数是必须的。Login:数据库用户所对应的登录名。name_in_db:为登录帐户登录在当前数据库中创建的用户名。注意:注意:只有sysadmin固定服务器角色、db_accessadmin和db_owner固定数据库角色的成员才能执行sp_adduser;如果第二参数被省略,一个和登录名相同的用户名将被添加到数据库中,通常省略这个参数;这个存储过程只对当前的数据库进行操作,所以在执行存储过程前应该首先确认当前使用的数据库是要增加用户的数据库;要创建用户名的登录帐户必须在执行存储过程前已经存在。15【例7-3】在混合验证模式下,为数据库JWGL登录帐户”ABC”和“a1”和a2创建一个同名的数据库用户。Usebookshopgoexecsp_adduserABCexecsp_addusera1execsp_addusera22.用用T-SQL语句查看数据库用户语句查看数据库用户在查询分析器中输入sp_helpuser,单击“执行”,可显示某个数据库中的有效用户。163.用用T-SQL语句删除数据库用户语句删除数据库用户当一个登录帐户不再需要访问一个数据库或对应的的登录帐户被删除时,需要将数据库内的用户名删除。用办理-SQL的sp_dropuser存储过程可以删除数据库用户。这个存储过程从数据库中将用户删除,即从sysusers表中删除用户名。但在用户定义事务内部不能执行存储过程sp_dropuser。sp_dropuser存储过程具体语法如下:sp_dropusername_in_db=name17在以上语法形式中:name:要删除的用户名。名字可以是SQLServer的用户名或存在于当前数据库中的窗口Windows的用户名或组名。注意,sp_dropuser存储过程不能删除:公众角色、dbo、数据库中的固定角色主人和tempdb数据库中的客人用户帐户窗口Windows组中的窗口Windows用户【例7-4】使用命令sp_dropuser将数据库中的“ABC”删除掉。sp_dropuserABC184.3.3使用ManagementStudio创建、查看、删除数据库用户1.使用使用SQL Server Management Studio创建数据库创建数据库用户与查看用户与查看在SQLServer的SQLServerManagementStudio中用以下步骤完成同样的任务:1)启动SQLServerSQLServerManagementStudio。2)分别展开“服务器”、“数据库”、“bookshop”、“用户”,右边“摘要”窗口可以看到该数据库的现有用户。3)右击“用户”文件夹,选择“新建数据库用户”,弹出“数据库用户-新建”的窗口。4)输入要创建的数据库用户的名字,然后“登录名”对应的文本框中输入相对应的登录名,或点击“”在系统中选择相应的登录名。5)单击“确定”按钮,将新创建的数据库用户添加到数据库中。192.使用使用SQL Server Management Studio删除数据库用户删除数据库用户在SQLServerManagementStudio中用以下的步骤删除用户名:启动SQLServerManagementStudio。展开要操作的服务器及要删除用户所在的数据库。单击“用户”,右边显示该数据库所有的库用户。右击要删除的用户,在系统弹出的快捷菜单上选择“删除”来删除这个用户。204.4角色管理管理用户的任务是要确保用户能够访问到他们需要的数据但又不能获得超出他们权限范围的数据。SQLServer2000中,用户一般是放在组中工作的。也就是说,可以将在相同数据上具有相同权限的用户放入一个组中进行管理。SQLServer具有将用户分配到组中的能力,分配给组的权限适用于组中的每一个成员。使用角色对用户进行分组管理有利于简化对用户的授权工作。在SQLServer2000中,组是通过角色来实现的,可以将角色理解为组。角色有两种:服务器角色和数据库角色。服务器角色是服务器级的一个对象,只能包含登录名。数据库角色是数据库级的一个对象,数据库角色只能包含数据库用户名而不能是登录名。7.4.1 固定服务器角色固定服务器角色7.4.2 数据库角色数据库角色217.4.1固定服务器角色1.固定服务器角色及功能固定服务器角色及功能安装完SQLServer2000后,系统自动创建了以下8个固定的服务器角色,具体名称及功能描述如下表。它在服务器级别上被定义,存在于数据库外面,它是不能被创建的。表表 固定服务器角色及功能固定服务器角色及功能角色功能sysadmin能够执行任何任务securityadmin负责系统的安全管理,能够管理和审核服务器登录名serveradmin 能够配置服务器的设置setupadmin能够安装、复制processadmin能够管理SQLServer系统的进程diskadmin能够管理磁盘文件dbcreator 能够创建和修改数据库bulkadmin能够执行大容量数据的插入数据操作222.为登录帐户指定及收回服务器角色为登录帐户指定及收回服务器角色使用sp_addsrvrolemember存储过程或ManagementStudio可为一个登录帐户指定服务器角色。使用系统存储过程为登录帐户指定及收回服务器角色、指定服务器角色的系统存储过程是sp_addsrvrolemember,具体语法如下:sp_addsrvrolemember login,rolelogin:是指登录名。role:是指服务器角色名。收回服务器角色的系统存储过程sp_dropsrvrolemember,参数含义同上。具体语法如下:sp_dropsrvrolememberlogin,role【例7-5】将登录名ABC加到sysadmin角色中。sp_addsrvrolememberABC,sysadmin23使用SQLServerManagementStudio为登录帐户指定及收回服务器角色使用SQLServerManagementStudio为服务器角色增加成员的步骤如下:启动SQLServerManagementStudio,分别展开“服务器”、“安全性”、“服务器角色”。点击“安全性”节点下的“服务器角色”,右边窗格将显示系统的8个服务器角色。右击要添加登录到的服务器角色(如sysadmin),选择“属性”,系统将弹出“服务器角色属性”窗口。如要收回某登录帐户的服务器角色,只需选择该登录帐户,然后点击“删除”即可。如要为登录帐户指定服务器角色,单击“添加”按钮,出现“添加成员”窗口。在“添加成员”窗口中选择相应的用户并单击“确定”按钮将它们加入到组中。再次单击“确定”按钮,退出“服务器角色属性”窗口。247.4.2数据库角色7.4.2 数据库角色数据库角色数据库角色分为固定数据库角色和自定义数据库角色。1.固定数据库角色及功能固定数据库角色及功能在安装完SQL Server后,系统将自动创建如表所示的10个固定的数据库角色。表 固定数据库角色及功能 角色 功能public维护默认的许可db_owner 数据库属主,在特定数据库内具有全部权限db_accessadmin 能够添加、删除数据库用户和角色db_securityadmin 可以管理全部权限、对象所有权、角色和角色成员资格db_ddladmin 能够添加、删除和修改数据库对象。db_backupoperator能够备份和恢复数据库。db_datareader 能够从任意表中读出数据。db_datawriter 能够对任意表插入、修改和删除数据。db_denydatareader 不允许从表中读数据。db_denydatawriter 不允许改变表中的数据。25public角色角色是一个特殊的数据库角色,数据库中的每位用户都是公众角色的成员,它负责维护数据库中用户的全部默认许可,不能将用户和组或角色指定公众角色。在使用Windows验证模式时,推荐使用SQLServerManagementStudio将窗口Windows组加入到指定的数据库中并为Windows组成员提供登录名和数据库用户名,在这里,用户被定义成某种数据库角色。利用这种方法,数据库管理员可以减轻创建组时的工作量。要浏览数据库固定数据库角色,可执行系统存储过程:实行sp_helpfixesrole有如下几点需要注意:有如下几点需要注意:数据库角色在数据库级别上被定义,存在于数据库之内。数据库角色存放在每个数据库sysusers表中固定数据库角色不能被删除、修改、创建固定数据库角色可以指定给其它登录帐户262.自定义数据库角色自定义数据库角色 创建自定义数据库角色创建自定义数据库角色自定义数据库角色有两种:标准角色和应用程序角色。其中应用程序角色需要设置密码。标准角色型的自定义数据库角色将已经存在的数据库用户作为它的成员。创建自定义数据库角色和许多其他任务一样,在SQLServer中有两种方法完成增加角色的工作。可以使用办理-SQL语句或ManagementStudio。使用系统存储过程创建自定义数据库角色使用系统存储过程创建自定义数据库角色创建自定义数据库角色使用的是系统存储过程sp_addrole,它只有一个参数,即要增加的角色名。这个角色名必须遵照SQLServer的命名规则,而且不能和任何用户名相同。具体语法如下:sp_addrole role,ownerrole:是指新增的数据库角色。owner:是新增数据库角色的属主。【例7-6】增加一个叫AAA的自定义数据库角色。sp_addroleAAA,dbo27使用使用SQL Server Management Studio创建自定创建自定义数据库角色义数据库角色1)启动SQL ServerSQL Server Management Studio。2)分别展开“服务器”、“数据库”、“bookshop”、“安全性”、“角色”,右边“摘要”窗口可以看到该数据库现有的数据库角色。3)右击“角色”,在随后出现的快捷菜单上选择“新建”、“新建数据库角色”,系统将弹出“数据库角色-新建”的对话窗口。4)在角色名称对应的文本框中输入角色名。如果编辑现有角色,则可对此选项进行配置。5)在所有者对应的文本框中输入角色名,或点击“”在系统弹出的“选择数据库用户或角色”窗口中从所有可用数据库用户、数据库角色的列表中选择角色的成员身份。6)在点击“添加”按钮向该角色中添加成员。如果正在创建应用程序角色,则此选项不可用。点击“删除”从“角色成员”列表中删除所选用户。7)再次单击“确定”按钮,退出“数据库角色-新建角色”窗口。28 删除自定义数据库角色删除自定义数据库角色用户自定义数据库角色可以删除,从数据库中删除“角色”和从数据库中删除用户非常相似。但是,和固定服务器角色一样,固定数据库角色不能被删除。使用系统存储过程删除自定义数据库角色使用系统存储过程删除自定义数据库角色删除自定义数据库角色的系统存储过程是sp_droprole,其语法形式如下:sp_droprole rolerole:要删除的自定义数据库角色。在执行sp_droprole时要注意的一点是:要删除的角色必须没有成员。被删除角色中的所有成员必须删除或被事先改变到其他的角色中。如果使用sp_droprole去删除一个非空的角色时,系统将会给出如下的错误信息:服务器:消息15144,级别16,状态1,过程sp_droprole,行53该角色有成员。角色必须为空白后才能除去。29使用使用SQL Server Management Studio删除自定义数据库删除自定义数据库角色角色启动SQLServerManagementStudio。展开需要操作的服务器并展开要操作的数据库。展开“角色”,右击要删除的自定义数据库角色,在系统弹出的快捷菜单中选择“删除”。确认“删除”操作,如该角色无成员,该角色将被删除,如该角色有成员,系统将给出提示。3.为数据库角色添加及删除成员为数据库角色添加及删除成员使用系统存储过程或ManagementStudio为一个数据库角色添加及删除成员。使用系统存储过程为数据库角色增加及删除成员使用系统存储过程为数据库角色增加及删除成员系统存储过程sp_addrolemembe可为数据库角色增加成员,sp_addrolemember存储过程的具体语法如下:30sp_addrolememberrole,security_accountrole:数据库角色名。security_account:数据库用户名。系统存储过程sp_droprolemembe可为数据库角色删除成员,sp_droprolemember存储过程的具体语法如下:sp_addrolememberrole,security_accountrole及security_account参数的含义同上。【例7-7】使用系统存储过程sp_addrolemember将数据库用户ABC,a1,a2作为成员添加到数据库角色AAA中,再将ABC从数据库角色AAA中删除。usebookshopexecsp_addrolememberAAA,a1execsp_addrolememberAAA,a2execsp_addrolememberAAA,ABCgosp_droprolememberAAA,ABC31 使用使用SQL Server Management Studio为数据库角色增为数据库角色增加及删除成员加及删除成员使用SQLServerManagementStudio为数据库角色增加及删除成员的具体步骤如下:启动SQLServerManagementStudio。展开要操作的服务器并展开要添加用户的数据库。单击“角色”文件夹,右边窗格出现该数据库的所有角色列表,右击某个角色并选择“属性”。系统将弹出类似图7-6那样的“数据库角色属性”对话窗口。如要删除该数据库角色的某个成员,可点击该成员,再点击“删除”即可。如要为该数据库角色添加成员,单击“添加”按钮,出现“添加角色成员”窗口。在“添加角色成员”窗口中,选择某一用户并单击“确定”按钮将它们加入到组中。在用户增加完后,单击“确定”按钮,一个数据库角色的成员就添加进去了。324.5权限管理4.5.1权限类型4.5.2管理权限334.5.1权限类型SQLServer2005中,许可有3种类型:默认权限、对象权限和语句权限。1.默认权限默认权限SQLServer中包含很多对象,每个对象都有一个属主。一般来说,对象的属主是创建该对象的用户。如果系统管理员创建了一个数据库,系统管理员就是这个数据库的属主。如果一个用户创建了一个表,这个用户就是这个表的属主。很显然,系统管理员具有这个数据库的全部操作权限,创建表的用户具有这个表全部操作权限。这就是数据库对象的默认权限。默认权限也称为暗指权限。34数据库中的用户根据它们在数据库中的角色被设定了某些缺省权限,也就意味着这些用户获得某些默认权限。这样的用户有四类:第一类,系系统统管管理理员员,可以创建和删除数据库,配置服务器。系统管理员永远拥有主人数据库;第二类,数数据据库库属属主主,可以创建和管理数据库中的对象以及管理整个数据库;第三类,对对象象属属主主,是特定对象的属主。对数据库来说,dbo就是对象属主。一个对象属主可以在对象上进行授予或回收权限的操作而且可以删除对象;第四类,数数据据库库用用户户,其默认许可取决于创建数据库用户时的设置。352.对象权限对象权限对象权限是指用户基于数据库层次上的访问和操作权限,如果没有对象的权限,用户将不能访问该对象。对象许可有五种:查询、插入、修改、删除和执行。前四个许可是用于表和视图的,执行许可只用于存储过程。select:该许可授予数据库中某个特定表的用户,具备这种许可的用户才能访问、操作该表的数据。insert:该许可授予数据库中某个特定表的用户可以向表中插入数据。update:该许可授予数据库中某个特定表的用户可以对表中的数据进行更新。delete:该许可授予数据库中某个特定表的用户可以删除表中的数据。execute:该许可授予数据库中某个特定的用户,具有这种许可的用户可以执行存储过程。363.语句语句权限权限语句权限通常授予需要在数据库中创建对象或修改对象、执行数据库和事务日志备份的用户。如果一个用户获得某个语句的权限,该用户就具有了执行该语句的权力。以下是需要进行许可设置的语句:BACKUPDTADBASE:允许用户执行备份数据库的操作。BACKLOG:允许用户执行备份事务日志库的操作。CREATEDATABASE:允许用户创建新的数据库。CREATEDEFAULT:允许用户创建缺省。CREATEPROCEDURE:允许用户执行创建存储过程的操作。CTEATEFUNCTION:允许用户创建用户定义函数。CREATERULE:允许用户创建规则。CREATETABLE:允许用户创建表。CREATEVIEW:允许用户创建视图。语句许可授予用户执行相应命令的能力,语句许可适用于创建和删除对象、备份和恢复数据库。374.5.2管理权限1.管理权限的用户管理权限的用户以下的四种用户可以对部分或全部语句授权:系统管理员系统管理员(系统管理员系统管理员):有sa帐户或具有相同权限的用户数据库的属主数据库的属主(数据库所有者数据库所有者):当前数据库的拥有者对象的属主对象的属主(物体所有者物体所有者):当前对象的拥有者数据库用户数据库用户(使用者使用者):不属于以上用户的其他用户382.权限的状态权限的状态授予权限授予权限:授予允许用户帐户执行某些操作的语句权限和对象权限禁止权限禁止权限:禁止某些用户或角色的权限,删除以前授予用户、组或角色的权限,停用从其它角色继承的权限并确保用户、组或角色不继承更高级别的组或角色的权限。撤消权限撤消权限:可以废除以前授予或禁止的权限。撤消许可类似于禁止许可,二者都是在同一级别上删除已授予的权限。但是,撤消许可是删除已授予的许可,并不妨碍用户、组或角色从更高级别继承已授予的许可。许可的授予、撤消及禁止只能在当前数据库中进行。393.用用T-SQL语言设置权限的授予、撤消和禁止语言设置权限的授予、撤消和禁止 授予权限授予权限授予权限使用的是授予语句,其语法形式如下:grant on to 其中:permission:可以是相应对象的任何有效权限的组合。可以使用关键字全部的来替代权限组合表示所有权限。object:被授权的对象。这个对象可以是一个表,视图,表或视图中的一组列,或一个存储过程。user:被授权的一个或多个用户,或组。【例7-8】授予用户ABC在数据库bookshop中创建表及对图书表具有查询、删除权的权限。grantcreatetabletoABCgrantselect,deleteonbookstoABC40 撤消权限撤消权限撤消权限使用的是撤销语句,其语法形式如下:revoke on to 上面语法中的参数同授予语句。【例7-9】撤消用户ABC在数据库bookshop中创建表及对图书表具有查询、删除权的权限。revoke create table from ABCrevoke select,delete on books from ABC41 禁止权限禁止权限禁止权限使用的是否认语句,其语法形式如下:denyonto上面语法中的参数同授予语句。【例7-10】禁止ABC对数据库中的表books查询、删除权denyselect,deleteonbookstoABC424.用用SQL Server Management Studio设置许可的授予、撤设置许可的授予、撤消和禁止消和禁止1)启动SQL ServerSQL Server Management Studio。分别展开“服务器”、“数据库”。2)依次展开要设置许可的数据库“bookshop”、“表”。3)点击“表”,再右击右边“摘要”窗口中要设置许可的一个表,点击“属性”,系统将弹出如下图的“表属性”窗口,点击“权限”选项卡,可以看到对该表具有某种权限的该数据库用户的权限情况。4)点击“添加”,系统将弹出“选择用户或角色”的对话窗口,点击“浏览”选择要设置“授予”、“具有授予权限”及“拒绝”许可的数据库用户。5)对该用户进行Select,Insert,References,Delete,Update许可权限的设置。可以将各类权限设置为“授予”、“具有授予权限”、“允许”或“拒绝”,或者不进行任何设置。选中“拒绝”将覆盖其他所有设置。如果未进行任何设置,将从其他组成员身份中继承权限(如果有的话)。6)单击“确定”,完成许可的设置。434.6数据库备份数据库备份是指系统管理员定期或不定期地将数据库部分或全部内容复制到磁带或另一个磁盘上保存起来的过程。这些复制的数据拷贝称为后备副本。当数据库遭到破坏时,可以利用后备副本进行数据库的恢复,但只能恢复到备份时的状态。要使数据库恢复到发生故障时刻前的状态,必须重新运行自备份以后到发生故障前所有的更新事务。一旦数据库遭到破坏,就需要花很大的工作量来进行恢复。而随着时间的推移,存储数据量的逐步增加,数据被破坏或丢失后重新修复的可能性就越小。正确、及时地进行数据备份能减少数据丢失后恢复数据库的工作量。所以为了避免数据在灾难后无法恢复,必须对数据库进行备份。444.6.1备份设备备份设备(backupdevice)是指SQLServer中存储数据库和事务日志备份拷贝的载体。备份设备可以被定义成本地的磁盘文件、远程服务器上的磁盘文件、磁带或者命名管道。创建备份时,必须选择存放备份数据的备份设备。当建立一个备份设备时,需要给其分配一个逻辑名和一个物理名。物理名是操作系统用来标识备份设备的名称。逻辑名是用来标识物理备份设备的别名或公用名。逻辑设备名称永久地存储在SQLServer的系统表中。使用逻辑备份设备名的优点是引用它比引用物理名简单。逻辑名最多30个字符并且必须遵守SQLServer的命名约定。备份或还原数据库时,可以交替使用物理名或逻辑名。45使用SQLServerManagementStudio建立备份设备使用SQLServerManagementStudio建立备份设备采用以下步骤:展开服务器组,然后展开服务器。展开“管理”文件夹,右击“备份”,然后单击“新建备份设备”命令。屏幕将显示如图14-1的“备份设备属性”窗口,并表明是“新设备”。在“名称”框中输入该备份设备的名称,这是备份设备的逻辑名。如果建立一个磁盘备份设备,单击“文件名”,执行下列操作之一以确定备份设备的物理名。如果要建立一个磁带备份设备,单击“磁带驱动器名”,再单击要用作备份设备的磁带设备。(如果窗口中没有列出磁带设备,则表明本地计算机无法检测到磁带设备。)单击“确定”按钮,完成建立备份设备的操作。464.6.2备份类型SQLServer支持的备份类型包括(4类):完整数据库备份备份包括事务日志在内的整个数据库。差异数据库备份在完整数据库备份之间执行差异数据库备份。事务日志备份日志备份序列提供了连续的事务信息链,可支持从数据库、差异或文件备份中快速恢复数据。数据库文件和文件组备份47完整数据库备份完整数据库备份完整数据库备份是指所有的数据库对象、数据和事务日志都将被备份。完整数据库备份非常容易实施,只需要很简单的操作。通常按照一个常规的时间间隔进行备份。在还原数据库时,只需用一步简单的操作即可完成数据库的恢复。还原进程重写现有数据库,如果现有数据库不存在则创建一个。已还原的数据库将与备份完成时的数据库状态一致,但不包括任何未提交的事务。与事务日志备份和差异数据库备份相比,完整数据库备份中的每个备份使用的存储空间更多。因此,完整数据库备份完成备份操作需要更多的时间,所以完整数据库备份的创建频率通常比差异数据库或事务日志备份低。另一方面,由于完整数据库备份不能频繁地创建,因此,不能最大程度地恢复丢失的数据。48差异备份差异备份差异数据库备份只记录自上次完整数据库备份后发生更改的数据。差异数据库备份比完整数据库备份小而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。使用差异数据库备份可将数据库还原到差异数据库备份完成时的那一点。若要将数据库恢复到精确的故障点时的状态,必须使用事务日志备份。在执行差异数据库备份时注意如下几点:创建定期的数据库备份。在每个数据库备份之间定期创建差异数据库备份。应该在两个差异数据库备份的时间间隔内执行事务日志备份,把数据损失的风险降到最小。49事务日志备份事务日志备份事务日志是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点或恢复到故障点时的状态。采用事务日志备份,在故障发生时尚未提交的事务将会丢失。所有在故障发生时已经完成的事务都将会被恢复。还原事务日志备份时,SQLServer重做事务日志中记录的所有更改。当SQLServer到达事务日志的最后时,数据库已恢复到与开始执行事务日志备份操作前那一刻完全相同的状态。如果数据库已经恢复,则SQLServer将回滚备份操作开始时尚未完成的所有事务。一般情况下,事务日志备份比完整数据库备份使用的资源少。因此可以比完整数据库备份更经常地创建事务日志备份。经常备份将减少丢失数据的危险。事务日志备份有时比完整数据库备份大。例如,数据库的事务率很高,从而导致事务日志迅速增大。在这种情况下,应更经常地创建事务日志备份。50数据库文件和文件组备份数据库文件和文件组备份SQLServer2000支持备份或还原数据库中的个别文件或文件组。这是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库(VLDB)中。如果可用的备份时间不足以支持完整数据库备份,则可以在不同的时间备份数据库的子集。文件备份和还原操作必须与事务日志备份一起使用。例如,某站点需要花三小时备份数据库,并且每天只能用两个小时执行备份。该站点可在一个晚上备份一半文件或文件组,并在第二个晚上备份另一半。如果包含数据库文件或文件组的磁盘出现故障,那么该站点可以只还原丢失的文件或文件组。该站点还必须进行事务日志备份,并且在备份文件或文件组之后必须还原所有事务日志备份。还可以从完整数据库备份集中还原文件和文件组。这将加快恢复速度,因为只还原已损坏的文件或文件组,而不是整个数据库。511.在SQLServerManagementStudio中进行完整数据库备份2.在SQL Server Management Studio中进行文件和文件组备份4.6.3使用SQLServerManagementStudio进行备份524.7数据库恢复在数据库系统运行时,可能会出现各种各样的,比如,磁盘损坏、电源故障、软件错误和恶意破坏等。在发生故障时,数据库中的数据数据很可能丢失或遭到破坏。SQLServer系统采取一系列措施保证在任何情况下保持事务的原子性和永久性,确保数据尽可能不丢失、不破坏。系统能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态,DBMS的这种能力称为数据库的可恢复性(Recovery)。53故障类型和恢复模式数据库的故障可以用事务的故障表示,也就是数据库的故障具体体现为事务执行的成功与失败。1.常见的故障事务故障事务故障又可分为两种:一类是可以预期的事务故障。另一类是非预期的事务故障。系统故障引起系统停止运转随之要求重新启动的事件称为系统故障。介质故障在发生介质故障和遭受病毒破坏时,磁盘上的物理数据库遭到毁灭性破坏。542.数据库恢复模式.简单恢复(SimpleRecovery)简单恢复就是指在进行数据库恢复时仅使用了数据库备份或差异备份,而不