1、工程9: CJGL数据库的平安管理对任何企业组织来说,数据的平安性最为重要。平安性主要是指允许那些具有相应的数据访问权限的用户,能够登录到SQL Server并访问数据以及对数据库对象实施各种权限范围内的操作。但是要拒绝所有的非授权用户的非法操作。因此平安性管理与用户管理是密不可分的。SQL Server 2005 提供了内置的平安性和数据保护。SQL Server 2005 的平安性管理是建立在认证Authentication 和访问许可permission 两者机制上的认证,是指来确定登录SQL Server 的用户的登录账号和密码是否正确以此来验证其是否具有连接SQL Server 的权
2、限,但是通过认证阶段并不代表能够访问SQL Server 中的数据用户,只有在获取访问数据库的权限之后才能够对效劳器上的数据库进行权限许可下的各种操作,主要是针对数据库对象,如表、视图、存储过程等。这种用户访问数据库权限的设置是通过用户帐号来实现的,同时在SQL Server 中角色作为用户组的代替物大大地简化了平安性管理。能力目标: 能够配置效劳器的身份验证模式; 能够创立并配置登录账户; 能够为登录账户配置数据库访问许可; 能够为数据库用户指定数据访问权限; 能够通过角色设置批量实现用户权限管理。知识目标: 熟悉SQL Server 2005的平安机制; 掌握效劳器登录账户的管理方法; 掌
3、握数据库用户的权限管理方法; 理解角色的作用;工作任务: 效劳器登录账户管理; 数据库用户管理。任务1:效劳器登录账户管理【任务描述】:用户要访问数据库,必须具备登录SQL Server效劳器的权限,可以通过两种途径登录效劳器:一是通过Windows系统用户身份;二是通过有效的SQL Server账户身份。用户如果不通过默认账户登录,那么必须为其创立登录账户。 子任务1:创立登录账户Win_User,通过Windows身份验证,并映射到CJGL数据库;子任务2:创立登录账户Sql_User,通过SQL Server身份验证,并映射到CJGL数据库;【预备知识】1、SQL Server 2005
4、身份验证机制平安身份验证用来确认登录SQL Server的用户的登录账号和密码的正确性,由此来检验该用户是否具有连接SQL Server效劳器的权限。任何用户在使用SQL Server效劳器之前,必须经过身份验证。SQL Server 2005提供了两种身份验证模式,分别是Windows身份验证和SQL Server身份验证。1.1 Windows身份验证SQL Server效劳器运行于Windows效劳器之上,而Windows作为网络操作系统,本身具备管理登录、验证用户是否合法的能力,因此Windows身份验证模式就是用户通过自己合法的Windows账户和口令进行验证,只要用户具备登录操作系
5、统的权限,即可连接SQL Server效劳器1.2 SQL Server身份验证启用该模式通常也称为“混合验证模式,该认证模式下,用户连接SQL Server效劳器必须提供登录名和密码,这些登录信息存储在系统表syslogins中,与Windows账号无关。注意:如果SQL Serve效劳器启用了混合验证模式,那么不但可以通过SQL Server账号登录,也可以请求Windows验证,然后通过Windows账户登录。Windows身份验证平安性要比SQL Server验证高的多,因为SQL Server效劳器相比,操作系统具有更高的平安机制。【任务实施】子任务1:创立登录账户Win_User,
6、通过Windows身份验证,并映射到CJGL数据库;1、创立Windows系统账户,账户名为Win_User,步骤如下:1在“桌面右键单击,选择“管理,翻开计算机管理窗口;2展开“本地用户和组节点,右键单击“用户,选择“新用户命令,如下所示:3然后在弹出的新用户对话框中输入用户名及密码,如下所示:4单击“创立按钮。2、将SQL Serve身份验证方式改为“Windows验证:1以系统管理员账户登录SQL Server效劳器,如下所示:2在效劳器节点上右键单击,选择“属性,如下所示:3在弹出的效劳器属性窗口中,选择“平安性节点,然后在右边选中“Windows身份验证模式,如下所示:4更改后,必须
7、重启效劳器才能是设置生效,如下所示:5单击“确定后,在效劳器节点上右键单击,选择“重新启动,如下所示:3、将Win_User设置为SQL Server登录账户1展开选择效劳器节点下的“平安性节点,在“登录名节点右键单击,选择“新建登录名2在弹出的“登录名窗口中,单击“搜索按钮如果要输入登录名,必须确保输入正确,如下所示:3在弹出的“选择用户和组对话框中,单击“高级按钮,如下所示:4然后单击“立即查找按钮,在下面列出的对象中选择“Win_User,如下所示:5单击“确定按钮,这时候在登录名文本框中会出现“FANXINGANGWin_User这里的FANXINGANG视具体机器而定6用户映射即使该
8、登录账户具有访问数据库的权限:在“登录名窗口中,选择“用户映射项,然后在数据库列表中选择“CJGL,“数据库角色成员身份保持默认。如下所示:7将Win_User设置为SQL Server登录账户后,可以通过Windows系统的切换用户方式,以Win_User登录操作系统,然后再连接SQL Server效劳器,过程略。8登录账号创立成功后,可以通过该账号进行连接SQL Server效劳器,登录效劳器后,只能访问CJGL数据库,而不具备访问其他数据库的权限。比方要向访问“BooK数据库,将会出现以下错误:子任务2:创立登录账户Sql_User,通过SQL Server身份验证,并映射到CJGL数据
9、库;1、将SQL Server效劳器身份验证方式改为“SQL Server和Windows身份验证模式,过程同上;2、重启效劳器后,如上述过程翻开“登录名窗口,然后在登录名文本框中输入“SQL_User,选中“SQL Server身份验证单项按钮,输入密码及确认密码。如下所示:3、用户映射方式同上,不再赘述。任务2:数据库用户管理【任务描述】创立了登录账户后,实际上只具备了连接效劳器的权限,即便在创立登录账户的时候进行了用户映射,默认状态下,映射后的数据库用户的数据库角色是“public,仍旧不具备访问用户定义对象的权限,因此需要为数据库创立相应用户并赋予相应权限。子任务1:为CJGL数据库创
10、立用户“DB_User,该用户通过登录账户“SQL_User登录效劳器;子任务2:对用户“DB_User进行权限设置,其权限如下表所示“*表示具备权限:平安对象权限SELECTINSERTUPDATEDELETEdepartment*Class*Student*Course*Teacher*Timetable*score*子任务3:创立数据库角色“User_Role,其平安对象及权限设置为上表所示,并将数据库用户“DB_User的数据库角色设置为“User_Role【预备知识】1、数据库用户与架构1.1 数据库用户登录名:效劳器方的一个实体,使用一个登录名只能进入效劳器,但是不能让用户访问效劳
11、器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中数据库用户名:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。SQL SERVER把登录名与用户名的关系称为映射。用登录名登录SQL SERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名关联的用户名,假设存在就使用此用户的权限访问此数据库,假设不存在就是用guest用户访问此数据库。一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个数据库中只
12、能有一个用户名通过该登录名登录。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库。登录名只是进入大楼的钥匙,而用户名那么是进入房间的钥匙。一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。连接SQL Server效劳器使用的是登录名而不是数据库用户名。SQLSERVER中有几个特殊的登录名和用户名:我们常见的dbo(用户名)是指以sa(登录名)或windows administration(Windows集成验证登录方式)登录的用户,也就是说数据库管理员在SQL SERVER中的用户名就叫dbo,而不叫 sa,这一点看起来有点蹊跷,因为通常用户名与
13、登录名相同(不是强制相同,但为了一目了然通常都在创立用户名时使用与登录名相同的名字),例如创立了一个登录名称为me,那么可以为该登录名me在指定的数据库中添加一个同名用户,使登录名me能够访问该数据库中的数据.当在数据库中添加了一个用户me 后,之后以me登录名登录时在该数据库中创立的一切对象(表,函数,存储过程等)的所有者都为me,如me.table1,me.fn_test(),而不是dbo.table1,dbo.fn_test()。SQL Server中还有一个特殊的数据库角色public,它存在于每一个数据库中,包括系统数据库,如master、msdb、model和用户数据库,数据库的所
14、有用户都属于public角色,并且不能从public角色中删除。在SQLSERVER数据库中,guest帐户是特殊的用户帐户。如果用户使用USE database语句访问的数据库中没有与此用户关联的帐户,此用户就与guest用户相关联。1.2 架构schema以往 SQL Server 内的对象命名是“效劳器.数据库.用户名.对象,但SQL Server 2005版本后的对象命名改为“效劳器.数据库.Schema.对象。这让你规划数据库对象命名时更有弹性。架构是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。数据库引擎权限层次结构之间的关系图在 SQL S
15、erver 2005 中,架构独立于创立它们的数据库用户而存在,亦即用户与架构别离,这种机制具有以下优点: 多个用户可以通过角色成员身份或 Windows 组成员身份拥有一个架构。这扩展了允许角色和组拥有对象的用户熟悉的功能。 极大地简化了删除数据库用户的操作:删除数据库用户不需要重命名该用户架构所包含的对象。因而,在删除创立架构所含对象的用户后,不再需要修改和测试显式引用这些对象的应用程序。 用户与架构schema分开,让数据库内各对象再绑在某个用户账号上,可以解决之前版本“用户离开公司问题,也就是在拥有该对象的用户离开公司,或离开该职务时,必要大费周章地改该用户所有的对象属于新的用户所有。
16、 另外,也可让 DBA 在安装某个套装软件时,设置该套装软件所用的数据库对象都属于某个特定的架构,容区别。也就是说,在单一数据库内,同部门或目的的对象,可以通过架构区分同的对象命名原那么与权限。 可以用比早期版本中的粒度更大的粒度管理架构和架构包含的对象的权限。2、效劳器角色和数据库角色2.1 效劳器角色是固化在SQL Server效劳器中的角色,每个效劳器角色都有其隐含的权限。使用系统存储过程sp_srvrolepermission可以浏览每个固定效劳器角色的权限。该系统过程的语法形式为:sp_srvrolepermissionsrvrolename = role_name固定效劳器角色权限
17、说明Sysadmin被赋予了SQL Server中的任何权限Serveradmin向该效劳器角色中添加其他登录运行dbcc pintable命令(从而使表常驻于主内存中)运行系统过程sp_configure(以显示或更改系统选项)运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)使用shutdown命令关掉数据库效劳器运行系统过程sp_tableoption为用户自定义表设置选项的值Setupadmin向该效劳器角色中添加其他登录添加、删除或配置链接的效劳器执行一些系统过程,如sp_serveroptionSecurityadmin向该效劳器角色中添加其他登
18、录读取SQL Server的错误日志运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统平安相关。)Processadmin向该效劳器角色中添加其他登录执行KILL命令(以取消用户进程)Dbcreator向该效劳器角色中添加其他登录运行CREATE DATABA
19、SE和ALTER DATABASE语句使用系统过程sp_renamedb来修改数据库的名称Diskadmin向该效劳器角色中添加其他登录运行如下系统过程:sp_ddumpdevice和sp_dropdevice。运行DISK INIT语句2.2 数据库角色数据库角色被限制在一个数据库内,数据库角色分为两类:固定数据库角色和用户定义数据库角色。固定数据库角色包括如下几类:固定数据库角色权限说明db_owner可以执行数据库中技术所有动作的用户db_accessadmin可以添加、删除用户的用户db_datareader可以查看所有数据库中用户表内数据的用户db_datawriter可以添加、修改
20、或删除所有数据库中用户表内数据的用户db_ddladmin可以在数据库中执行所有DDL操作的用户db_securityadmin可以管理数据库中与平安权限有关所有动作的用户db_backoperator可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)db_denydatareader不能看到数据库中任何数据的用户db_denydatawriter不能改变数据库中任何数据的用户除了上表中列出的固定数据库角色之外,还有一种特殊的固定数据库角色,名为public。public角色是一种特殊的固定数据库角色,数据库的每个合法用户都属于该角色。它为数
21、据库中的用户提供了所有默认权限。这样就提供了一种机制,即给予那些没有适当权限的所有用户以一定的(通常是有限的)权限。public角色为数据库中的所有用户都保存了默认的权限,因此是不能被删除的。一般情况下,public角色允许用户进行如下的操作: 使用某些系统过程查看并显示master数据库中的信息 执行一些不需要一些权限的语句(例如PRINT)3、平安对象与权限管理平安对象是指授权用户可以访问的对象集合。权限是指授权用户在拥有的平安对象上可以执行的操作。权限管理包括权限的授予、拒绝和收回,可以通过SSMS向导和T-SQL语句实现权限管理。【任务实施】子任务1:为CJGL数据库创立用户“DB_U
22、ser,该用户通过登录账户“SQL_User登录效劳器;注意:开始本任务之前,需将CJGL数据库用户SQL_User任务1-子任务2创立删除,因为一个登录名只允许一个数据库用户绑定!1展开数据库CJGL,展开其“平安性节点,选择“新建用户命令,如下所示:2在弹出的“数据库用户窗口中,在用户名文本框中输入“DB_User,如下所示:3单击登录名文本框右边的选择按钮,翻开“选择用户名对话框。如下所示:4单击“浏览按钮,翻开“查找对象对话框,在对象列表中选择“SQL_User见任务1-子任务2,如下所示:5依次单击“确定按钮,将创立数据库用户DB_User,但是该用户目前没有任何实际权限!子任务2:
23、对用户“DB_User进行权限设置,其权限如下表所示“*表示具备权限:平安对象权限SELECTINSERTUPDATEDELETEdepartment*Class*Student*Course*Teacher*Timetable*score*任务分析:子任务1中创立的数据库用户DB_User因为不具备实际权限,因此以该用户身份登录效劳器后,在CJGL数据库中没有任何可用表及视图对象,如下所示:要想为DB_User分配平安对象及权限,必须以管理员账号登录效劳器,因为DB_User尚不具备权限管理的权限!1、通过SSMS向导完成权限的设置1以Windows管理员账号登录SQL Server效劳器;
24、2展开CJGL数据库的“平安性节点,展开“用户节点;3在用户“DB_User上右键单击,选择“属性命令;如下所示:4在弹出的“数据库用户窗口中,选择“平安对象页,如下所示:5在“平安对象栏下单击“添加按钮;6在弹出的“添加对象对话框中,选择“特定类型的所有对象单项按钮,然后单击“确定按钮。如下所示:7在弹出的“选择对象类型对话框中选中“表,然后单击“确定按钮。如下所示:8回到“平安对象页后,依次选中平安对象,然后在下面的权限选择列表中选中相应的权限。如下所示以department平安对象为例9将所有平安对象的权限设置完成后,单击“确定按钮即可。2、利用T-SQL语句完成权限设置1以Window
25、s管理员账号登录SQL Server效劳器;2在查询窗口中输入如下T-SQL语句:-为DB_User用户授予department表的查询、插入、更新权限GRANT SELECT,INSERT,UPDATE ON department TO DB_User GO-为DB_User用户授予class表的查询、插入、更新权限GRANT SELECT,INSERT,UPDATE ON class TO DB_User GO-为DB_User用户授予student表的查询、插入、更新、删除权限GRANT SELECT,INSERT,UPDATE,DELETE ON student TO DB_User
26、GO-为DB_User用户授予course表的查询、插入权限GRANT SELECT,INSERT ON course TO DB_User GO-为DB_User用户授予teacher表的查询、插入、删除权限GRANT SELECT,INSERT,DELETE ON teacher TO DB_User GO-为DB_User用户授予timetable表的查询权限GRANT SELECT ON timetable TO DB_User GO-为DB_User用户授予score表的查询权限GRANT SELECT ON score TO DB_User GO3假设要收回权限,那么需要REVOK
27、E语句实现,比方收回DB_User在class表的插入权限:REVOKE INSERT ON class FROM DB_User4假设要拒绝某个用户的权限,那么需要DENY语句实现,比方拒绝DB_User在class表的插入权限:DENY INSERT ON class TO DB_User子任务3:创立数据库角色“User_Role,其平安对象及权限设置为上表所示,并将数据库用户“DB_User的数据库角色设置为“User_Role任务分析:假设有N位用户访问CJGL数据库,并且所有用户都拥有相同的平安对象和权限,那么作为DBA,是否需要一一为每个用户进行子任务2那样的设置?数据库角色解决
28、了这个难题,DBA只要将所有用户都参加到相同的数据库角色,即可免去一一设置权限的繁殖劳动!1展开CJGL数据库的“平安性节点,展开“角色节点;2在“数据库角色节点上右键单击,选择“新建数据库角色,如下所示:3在“数据库角色窗口中,在角色名称文本框中输入“User_Role,如下所示:4然后选择“平安对象页,如子任务2所示,将相关平安对象及权限设置完成;5角色创立好后,翻开用户“DB_User的“属性窗口,在“数据库角色选择列表中选中“User_Role,然后单击“确定按钮即可。如下所示:习题9一、选择题1. 一个系统管理员正在考虑应该使用一种平安模型。所有需要访问SQLServer的用户都有W
29、indowsNT的帐户,而且SQLServer被安装在和用户帐户域相同域中的一个stand alone server上。所有的用户都使用TCP/IP和效劳器连接。系统管理员应该使用哪种平安模式?A. 混合平安模式。B. NT验证模式。C. 同时使用模式和混合平安模式。2. 一个系统管理员正在考虑应该使用一种平安模型。用户使用多种网络协议对网络进行访问,而且SQL Server所在的效劳器是网络上唯一的一台Windows NT效劳器。系统管理员应该使用哪种平安模式?A. 混合平安模式。B. NT验证模式。C. 同时使用混合平安模式和NT验证模式。3.当系统管理员将他的效劳器配制成NT验证模式后,
30、用户开始对他抱怨说他们无法使用他们的WindowsNT登录名访问效劳器。下面哪两个选项是最可能导致这种情况发生的原因?A.系统管理员没有重新启动管理所有平安请求的SQL Server Agent效劳。B.系统管理员没有重新启动SQL Server效劳。C.系统管理员没有为任何用户授予对效劳器进行管理的访问权。D.系统管理员没有使用SQL Server Management Studio对Windows NT帐户的登录名进行映射。4.下面哪种网络库可用于NT验证模式?A. TCP/IP Sockets。B. SPX。C. Named Pipes。D. All of the above。5. 关于
31、平安性模式的信息保存在哪里?A.注册表 6.系统管理员在为他新的助手Dave创立帐户时遇到了问题。Dave需要管理效劳器上的两个数据库,但无权访问其余的数据库。效劳器当前被配置使用标准平安模式,系统管理员怎样才能最好地完成这项任务?A.给Dave提供sa登录名的口令。B.为Dave新建一个登录名,在相应的数据库上用db_changeowner,使Dave成为数据库的属主。C.为Dave新建一个登录名,在相应的数据库上将dbo作为这个登录名的别名。D.使用SQL Server Management Studio给Dave分配数据库属主的权限。7. 假定Guest用户存在,下面哪种情况导致登录名使
32、用Guest访问数据库?A.在目标数据库上登录名没有被分配用户和别名。B.登录用户有一个分配的用户名,但想以guest登录使用只读权限。C.登录名没有对应的WindowsNT帐户。D.登录名在数据库中没有分配用户,但使用dbo作为别名。8.哪个数据库拥有sysusers表?A.所有用户定义的数据库拥有sysusers表。B.所有数据库拥有sysusers表。C. Master数据库。D. 这个系统表保存在Windows NT的注册表中。9. 哪个数据库拥有syslogins表?A.所有用户定义的数据库拥有syslogins表。B.所有数据库拥有syslogins表?C. Master数据库。D
33、. 这个系统表保存在Windows NT的注册表中。10. 一个叫John的数据库用户创立了一个名为Inventory的表,并且需要为用户Jennifer提供访问表的权限。John使用了正确的Grant命令。Jennifer使用哪条语句才能从表中Select出所有的记录?A. Select * from Inventory。D. Select * from John(Inventory)。11. Norm想允许Cliff能够在他的表Beverages上进行授权,想让Cliff只能给其他用户授予Select权限,并且Cliff只有Select权限,Norm应该使用下面哪条语句?A. Grant
34、Select on Beverages to Cliff with grant option。B. Grant Select on Beverages to Cliff 。C. Grant all on Beverages to Cliff with grant option。D. Grant Select on Beverages to Cliff, public with grant option。12. 经过进一步的考虑,Norm现允许Cliff在表Beverage上进行Select操作不太可靠,他怎样将权限收回呢?A. Revoke Select on Beverages to Cli
35、ff。B. Revoke Select on Beverages from Cliff。C. Revoke Select on Beverages from Cliff with cascade。D. Revoke Select on Beverages from public。工程10: CJGL数据库的备份与恢复人为错误、硬件损坏、文件丧失或是系统错误等都可能造成数据库系统数据丧失甚至数据库崩溃,为了防止发生此类问题,应该定期备份数据库,尤其是存储重要数据的数据库。当备份数据库以后,如果发生问题,可以通过数据恢复来复原数据库,将损失降到最低,或将停止效劳的时间尽量缩短,保证数据库系统的正常
36、运转。能力目标: 能够进行数据库的完整备份; 能够进行数据库的差异备份; 能够根据需要选择数据库的恢复模式; 能够利用数据库备份进行数据库恢复; 能够制定日常维护方案。知识目标: 掌握备份与恢复原理; 熟悉数据库恢复模式; 掌握数据库备份恢复方法; 了解DBA日常工作范围。工作任务: 备份CJGL数据库; 利用备份进行恢复; 制定日常维护方案。任务1:备份CJGL数据库【任务描述】:数据库备份是DBA的日常工作之一,也是最重要的工作之一,这关系到企业的正常运转。 子任务1:为CJGL数据库创立备份;子任务2:为CJGL创立差异备份;子任务3:创立如下维护方案:【预备知识】数据库管理员DBA都有
37、可能遇到数据库崩溃的时候,轻那么使企业正常业务系统不能运转,重那么导致企业灾难性损失,因此数据备份是DBA最重要的职责之一。SQL Server数据库系统主要由两类文件组成,分别是数据文件和日志文件,其中数据文件存储数据,日志文件记录所有事务及每个事务对数据库的修改。事务日志是数据库的重要组件,如果系统出现故障,它将成为最新数据的唯一来源。删除或移动日志文件之前,必须完全了解此操作带来的后果。1、数据库恢复模式恢复模式是数据库的一个属性,用于控制数据库备份和恢复的根本行为,可以通过设置数据库属性选择数据库的恢复模式。恢复模式包括以下3种:1简单恢复模式此模式下的数据库备份,不会备份事务日志,因
38、此管理简单。在简单恢复模式下,系统会自动截断事务日志,以删除所有不活动的日志文件,所以备份效率较高。但是,该模式下数据库只能恢复到最近的一次备份,而其间发生的变化无法恢复。简单恢复模式不适合生产系统,因为对于企业而言,丧失最新发生的数据是不可接受的。应当采用完整恢复模式。2完整恢复模式此模式完整记录了所有的事务,并保存所有的事务日志记录,直到将它们备份。完整恢复模式能够将数据库恢复到故障时间点如果故障发生后备份了日志尾部3大容量日志恢复模式此模式是完整恢复模式的补充,与完整恢复模式完全记录所有事务相比,大容量日志恢复模式只对大容量操作进行最小记录尽管会完全记录其他事务。大容量日志恢复模式保护大
39、容量操作不受媒体故障的危害,提供最正确性能并占用最小日志空间。但是,大容量日志恢复模式会增加这些大容量复制操作丧失数据的风险,因为大容量日志操作阻止再次捕获对每个事务逐一所做的更改。如果日志备份包含大容量日志操作,那么无法复原到该日志备份中的时点,而只能复原整个日志备份。2、数据备份2.1 数据库备份类型备份一般包括3种方式:数据备份、差异备份以及在完整恢复模式和大容量日志恢复模式下的事务日志备份。1数据备份:这是最完整的数据库备份方式,它会将数据库内所有的对象完整地拷贝到指定的设备上。由于它是备份完整内容,因此通常会需要花费较多的时间,同时也会占用较多的空间。2差异备份:差异数据库备份只会针
40、对自从上次完全备份后有变动的局部进行备份处理,这种备份模式必须搭配完全数据库备份一起使用,最初的备份使用完全备份保存完整的数据库内容,之后那么使用差异备份只记录有变动的局部。由于差异数据库备份只备份有变动的局部,因此比起完全数据库备份来说,通常它的备份速度会比拟快,占用的空间也会比拟少。对于数据量大且需要经常备份的数据库,使用差异备份可以减少数据库备份的负担。假设是使用完全备份搭配差异备份来备份数据库,那么在复原数据库的内容时,必须先加载前一个完全备份的内容,然后再加载差异备份的内容。3事务日志备份:事务日志备份是针对自从上次备份后有变动的局部进行备份处理,而不是针对上次完全备份后的变动。假设
41、是使用完全备份配合事务日志来备份数据库,那么在复原数据库内容时,必须先加载前一个完全备份的内容,然后再按顺序复原每一个事务日志备份的内容。2.2 备份设备SQL Server将备份创立在备份设备上,如磁盘或磁带媒体,备份或复原操作中使用的磁盘或磁带称为“备份设备。注意:将备份与数据库文件放在同一磁盘驱动器会有一定风险,如果磁盘发生故障,那么无法恢复数据库!备份设备的标识可以通过物理设备名称或逻辑名称,其中物理设备名称是操作系统用来标识备份设备的名称,通常包括物理路径及名称,比方D:backupfull.bak。而逻辑名称是用户定义的别名,用来标识物理备份设备。【任务实施】子任务1:为CJGL数
42、据库创立备份;虽然可以直接使用物理设备名称比方磁盘目录进行备份与恢复操作,但更好的方法是事先创立逻辑设备与虚拟目录相似,然后利用逻辑设备名称进行备份与恢复。1、创立备份设备1展开SQL Server效劳器的“对象资源管理器,展开“效劳器对象,然后右键单击“备份设备,选中“新建备份设备命令,翻开备份设备对话框,如下所示:2输入备份设备名称“CJGL_Backup,然后单击“文件目录右边的按钮,翻开定位文件对话框,选择文件存放的物理路径,输入文件名称“,如下所示:3单击“确定按钮完成设备创立。2、完整备份1翻开“CJGL数据库属性窗口,选中“选项页,将数据库恢复模式选择为“完整,如下所示:2右键选
43、中“CJGL数据库,选中“任务备份命令,翻开数据库备份对话框,如下所示:3在备份数据库窗口的“常规页中,单击“目标中的“删除按钮备份不保存在默认目录中,然后单击“添加按钮,弹出“选择备份目标对话框,如下所示:4选择“备份设备,然后在下拉列表中选择CJGL_Backup,将备份创立到该设备;5依次单击“确定按钮后,将开始备份数据库该过程时间视数据库规模而定,备份完成后,将弹出“备份已完成对话框,如下所示:6单击确定后,将完成数据库的完整备份。3、大容量日志备份、简单备份备份过程与上述过程类似,不再赘述。子任务2:为CJGL创立差异备份;差异备份是在完整备份的根底上进行,如果没有完整备份,那么创立
44、不了差异备份。备份过程与上述过程类似,只是在选择备份类型的时候要选中“差异。子任务3:创立如下维护方案:注意:创立维护方案之前,必须保证SQL Server Agent效劳代理效劳启动。1、创立收缩数据库任务1展开SQL Server效劳器,展开“管理节点,在“维护方案上右键单击,选择“新建维护方案,如下所示:2在弹出的“新建维护方案对话框中输入维护方案名称“MaintenancePlan,如下所示:3单击“确定后,在“对象资源管理器下方会出现工具箱,如下所示:4在工具箱中选中“收缩数据库任务,按住鼠标左键,将其拖放到右边维护方案设计窗口中,这时将出现一个任务框。如下所示:5在此任务框上,右键
45、单击,选择“编辑命令,翻开“收缩数据库任务对话框,如下所示:6在选择数据库的下拉列表中选中“CJGL数据库如下所示:7然后指定在500MB时执行数据库收缩操作,收缩后保存10%可用空间,并选择“将释放的空间归还操作系统,如下所示:8单击“确定后,收缩数据库任务框将变成如下所示:2、创立备份数据库任务1从工具箱中将“备份数据库任务拖放到设计窗口中,如下所示:2在备份数据库任务框上右键单击,然后选择“编辑命令,翻开备份数据库任务对话框;3在选择数据库的下拉列表中选中“CJGL数据库后,备份数据库任务对话框将显示配置选项,如下所示:4备份类型选择“差异,备份目标选择“磁盘,备份文件夹选择“D:Backup,然后单击“确定按钮。3、设置多个任务的先后顺序假设每次执行该维护方案,先执行收缩数据库任务,然后再执行数据库备份任务。1选中“收缩数据库任务框;2在出现的绿色箭头上按住鼠标左键,将其拖放到“备份数据库任务框,如下所示:4、配置作业方案属性1