数据库应用技术(SQLServer2012).ppt

上传人:少林足球 文档编号:4210830 上传时间:2019-10-27 格式:PPT 页数:95 大小:2.33MB
返回 下载 相关 举报
数据库应用技术(SQLServer2012).ppt_第1页
第1页 / 共95页
数据库应用技术(SQLServer2012).ppt_第2页
第2页 / 共95页
数据库应用技术(SQLServer2012).ppt_第3页
第3页 / 共95页
数据库应用技术(SQLServer2012).ppt_第4页
第4页 / 共95页
数据库应用技术(SQLServer2012).ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《数据库应用技术(SQLServer2012).ppt》由会员分享,可在线阅读,更多相关《数据库应用技术(SQLServer2012).ppt(95页珍藏版)》请在三一文库上搜索。

1、数据库应用技术(SQL Server 2012),第11章 SQL Server安全管理,11.1. SQL Server数据库安全概述 11.2.服务器的安全性管理 11.3.数据库安全性管理 11.4.数据备份与恢复 11.5. 实践案例,主要内容,【知识要求】:掌握登录名、数据库角色、服务器角色等相关知识 【能力要求】:1.熟练掌握登录模式的设置方法 2.掌握用户角色的设置方法 3.掌握数据的备份和恢复方法,知识与能力要求,在数据库系统的日常运维中,安全性是最为重要,也是最具有挑战性的一个方面。任何一个DBA都希望服务器足够的安全,在不增加成本的情况下保证数据万无一失。但事实上是,只要用

2、户能够访问数据,就会有安全漏洞,因此大家应该对安全性重新认识,安全性并不是保证系统完全不受攻击,而是把风险减少,并对风险采取必要的应对措施。 SQL Server 2012的安全有两方面内容:其一,是防止非法登录者或非授权用户对SQL Server数据库或数据造成破坏;其二,有时合法用户不小心对数据库的数据做了不正确的操作,或者保存数据库文件的磁盘遭到损坏,或者SQL Server 2012服务器因某种不可预见的事情而导致崩溃,数据库需要恢复到损坏之前应采取的措施。在SQL Server 2012中,通过其内置的各种权限验证来保障前者的安全,提供数据库备份和还原方案来解决后者造成的损失。,11

3、.1. SQL Server数据库安全概述,11.1.1 登录验证方式,在SQL Server 2012中,要访问数据库服务器或数据库第一步就要进行登录验证。在SQL Server 2012中,有两种验证方式:一种是Windows验证方式,另一种是Windows和SQLServer混合验证方式。 (1)Windows验证方式就是完全采用Windows服务器的验证,只要能够登录到Windows操作系统的用户,就可以登录到SQL Server系统。 (2)混合验证方式比Windows验证方式更加灵活。因为Windows验证方式只允许Windows用户登录到SQL Server系统,而混合验证方式则

4、不但允许Windows用户登录到SQL Server系统,而且也允许独立的SQL Server 用户登录到SQL Server系统。 这样,某些在Windows系统没有登录账号的人也可以登录到SQL Server系统。,11.1. SQL Server数据库安全概述,在第一次安装SQL Server 2012的时候,需要指定验证模式。对于已经指定验证模式的SQL Server 2012 服务器, 还可以进行验证模式的修改。 【案例12-1】 设置数据库服务器验证模式为SQL Server和Windows身份验证模式。 操作步骤如下: (1)打开“SQL Server Management St

5、udio”窗口,在“对象资源管理器”窗格中右击要修改的SQL服务器,在弹出的快捷菜单上选择“属性”命令,打开如图11-1所示的“服务器属性”对话框。,图11-1 设置SQL Server的验证模式,11.1. SQL Server数据库安全概述,(2)在“选择页”栏中选择“安全性”选项,在右侧的“详细信息”窗格中选择相应的“SQL Server和Windows身份验证模式”后,单击“确定”按钮即可。 注意:修改验证模式后,必须首先停止SQL Server服务,然后重新启动SQL Server,才能使设置生效。,11.1. SQL Server数据库安全概述,V11-1登录验证方式设置.wmv,

6、11.1.2 角色,SQL Server 2012的角色与Windows中的用户组概念相似,在SQL Server 2012中可以理解为一些权限的集合。 在SQL Server 2012中,具有两种类型的角色:服务器角色和数据库角色。服务器角色决定登录到SQL Server 2012服务器的用户对服务器中数据库的操作权限。数据库角色决定数据库用户对数据库中对象具有的操作权限。因此,系统管理员给适当的用户分配相应的角色就是SQL Server 2012服务器和数据库安全的关键之一。,11.1. SQL Server数据库安全概述,11.1.3 许可权限,许可权限是指授予用户对数据库中的具体对象的

7、操作权力或SQL语句的使用权力。 在SQL Server 2012中,用户能够访问的具体对象(如数据表、视图、存储过程等)是需要明确授权的。 一般情况下,任何用户都具有数据表或视图的数据的读(Select)权限,但对于插入(Insert)、更新(Update)和删除(Delete)权限,则需要明确授予。 系统管理员或数据库(对象)拥有者给予适当的用户以适当的权限是保证数据库安全的重要措施。,11.1. SQL Server数据库安全概述,11.2 服务器的安全性管理,服务器的安全性是通过设置系统登录账户的权限进行管理的。用户在连接到SQL Server 2012时与登录账户相关联。在SQL S

8、erver 2012中有两类登录账户:一类是登录服务器的登录账号(login name);另外一类是使用数据库的用户账号(user name)。 登录账号是指能登录到SQL Server 2012的账号,它属于服务器的层面,本身并不能让用户访问服务器中的数据库,而登录者要求使用服务器中的数据库时,必须要有用户账号才能存取数据库。 就如同公司门口先刷卡进入(登录服务器),然后再拿钥匙打开自己的办公室(进入数据库)一样。用户名要在特定的数据库内创建并关联一个登录名(当一个用户创建时,必须关联一个登录名)。 用户定义的信息存放在服务器的每个数据库的sysusers表中,用户设有密码同其相关联。SQL

9、 Server通过授权给用户指定可以访问的数据库对象的权限。,SQL Server 2012中有一个超级登录账号sa。这个账号具有操作SQL Server服务器的一切权限。也正因为如此,保证这个账号的安全就是一个十分重要的问题。要保护SQL Server 2012服务器的安全,首要的问题就是要为sa账号设置合适的密码保证sa账户的安全。由于sa权限较高,为保证数据库安全,可根据需要新建具有一定权限的账号。,11.2 服务器的安全性管理,11.2.1 查看登录账号,在安装SQL Server 2012以后,系统默认创建几个登录账号。 打开“SQL Server Management Studio

10、”窗口,在“对象资源管理器”窗格中展开要查看的SQL Server服务器结点,再展开“安全性”结点,展开并选中“登录名”结点,即可看到系统创建的默认登录账号及已建立的其他登录账号,如图11-2所示 。,11.2 服务器的安全性管理,图11-2 查看服务器登录账号,其中,A195/K81,实际上就是计算机名(或域名称)操作系统系统管理员账户名:允许Windows Server的K81 账号作为SQL Server登录账号使用。 sa:SQL Server 2012系统管理员登录账号,该账号拥有最高的管理权限,可以执行服务器范围内的所有操作。,11.2 服务器的安全性管理,11.2.2创建一个登录

11、账号,【案例12-2】 创建名为stuadm的登录账号,默认登录TestDB数据库。 操作步骤如下: (1)在“SQL Server Management Studio”窗口的“对象资源管理器”窗格中,依次展开SQL服务器、“安全性”、“登录名”结点,右击“登录名”结点(或右击右侧的“详细区域”),在弹出的快捷菜单中选择“新建登录名”命令,打开“SQL Server登录属性”对话框,如图11-3所示。,11.2 服务器的安全性管理,V11-2登录账号管理.wmv,(2)在“登录名”文本框中输入要创建的登录账号的名称:stuadm,选择需要的身份验证方式,这里选择“SQL Server身份验证”

12、,接着输入密码,然后选择“默认库”:TestDB,表示该登录账号默认登录TestDB数据库。 注意:一个登录账号可以登录不止一个数据库,这里设置的仅仅是默认登录数据库。 如果选择了“Windows身份验证”单选按钮,则必须先在Windows的用户管理中先创建该用户,否则会提示错误。 (3)在如图11-3所示的对话框中,选择“服务器角色”选项,在此选项中,可设置登录账号所属的服务器角色。,11.2 服务器的安全性管理,图11-3 新建登录账号,11.2 服务器的安全性管理,角色(Role)是一组用户所构成的组,可分为服务器角色与数据库角色。以下介绍服务器角色。 服务器角色是负责管理与维护SQL

13、Server 2012的组,一般指定需要管理服务器的登录账号属于服务器角色。SQL Server 2012在安装过程中定义几个固定的服务器角色,其具体权限如表12-1所示。,11.2 服务器的安全性管理,表12-1 内建服务器角色,11.2 服务器的安全性管理,(4)在如图11-3所示的对话框中,选择“用户映射”选项,在此选项中选择登录账号可以访问的数据库,还可以选择用户在这个数据库中的数据库角色。 (5)设置完毕后,单击“确定”按钮,即可完成该登录账号的创建。 注:在步骤(2)中,如果选择“Windows身份验证”单选按钮,则“登录名”文本框后面的“搜索”按钮被激活,单击可打开“选择用户和组

14、”对话框,再单击“高级”按钮打开如图11-4所示“搜索结果”拦,单击“立即查找”按钮可以搜索到当前Windows系统中的用户和用户组,可以选择这些用户作为SQL Server的登录账号。,11.2 服务器的安全性管理,图11-4 选择Windows系统用户作为SQL Server的登录账号,11.2 服务器的安全性管理,11.2.3 更改、删除登录账号属性,按照查看登录账号的方法打开图11-2所示的窗口,右击需要更改属性的登录名,在弹出的快捷菜单中选择“属性”命令,打开“登录属性”对话框,即可更改或删除登录账号及账号属性(如密码、角色、数据库访问等)。,11.2 服务器的安全性管理,11.2.

15、4 禁止登录账号,如果要暂时禁止一个使用SQL Server身份验证的登录账号连接到SQL Server 2012,只需要修改该账户的登录密码就行了。 如果要暂时禁止一个使用Windows身份验证的登录账户连接到SQL Server,则应当使用SQL Server Management Studio或执行T-SQL语句来实现。,11.2 服务器的安全性管理,操作步骤如下: (1)在“SQL Server Management Studio”窗口中按照查看登录账号的方法打开如图11-2所示的窗口。 (2)在“详细信息”窗格中右击要禁止的登录账号,在弹出的快捷菜单中选择“属性”命令,打开“登录属性

16、”对话框。 (3)在“登录属性”对话框中,选择“状态”选项,然后选择“禁用”单选按钮,如图11-5所示。 (4)单击“确定”按钮,使所做的设置生效。,图11-5 禁止登录账号,11.2 服务器的安全性管理,11.2.5 删除登录账号,如果要永久禁止使用一个登录账号连接到SQL Server,就应当将该登录账号删除,可以使用SQL Server Management Studio来完成。操作步骤如下: (1)在“SQL Server Management Studio”窗口中按照查看登录账号的方法打开如图11-2所示的窗口。 (2)在“详细信息”窗格中右击要删除的登录账号,在弹出的快捷菜单中选择

17、“删除”命令。 (3)在打开的对话框中单击“确定”按钮,确认登录账号的删除操作。,11.2 服务器的安全性管理,11.3.1 数据库用户,一个SQL Server的登录账号只有成为某个数据库的用户时,对该数据库才有访问权限。 每个登录账号在一个数据库中只能有一个用户账号,但每个登录账号可以在不同的数据库中各有一个用户账号。如果在新建登录账号过程中,指定它对某个数据库具有存取权限,则在该数据库中将自动创建一个与该登录账号同名的用户账号。 注意:登录账号具有对某个数据库的访问权限,并不表示该登录账号对该数据库具有存取的权限,如果要对数据库的对象进行插入、更新等操作,还需要设置用户账号的权限。,11

18、.3 数据库安全性管理,1创建数据库的用户 【案例12-3】 为TestDB数据库创建名为stuadm的数据库用户。 操作步骤如下: (1)在“SQL Server Management Studio”窗口中,依次展开SQL服务器、“数据库”结点,再展开要管理的数据库结点TestDB,然后再依次展开“安全性”、“用户”结点,右击“用户”结点,在弹出的快捷菜单中选择“新建用户”命令,打开“数据库用户-新建”对话框,如图11-6所示。,11.3 数据库安全性管理,V11-3 数据库用户管理.wmv,图11-6 新建用户,11.3 数据库安全性管理,(2)在如图11-6所示的对话框中,在“用户名”文

19、本框中输入用户名,由于任何数据库用户都必须对应一个登录名,所以在“登录名”文本框中还要填写有效的登录名(可以单击“”按钮查找SQL服务器上有效的登录名)。 (3)进一步设置“默认架构”、“成员身份”和“拥有的架构”。 (4)设置完毕后,单击“确定”按钮,即可在TestDB数据库中创建一个新的用户账号。,11.3 数据库安全性管理,2修改数据库的用户 在数据库中建立一个数据库用户账号时,要为该账号设置 某种权限,可以通过为它指定适当的数据库角色来实现。修改 所设置的权限时,只需要修改该账号所属的数据库角色就可以了。 操作步骤如下: (1)在“SQL Server Management Studi

20、o”窗口中,依次展开SQL服务器、“数据库”、“TestDB”、“安全性”、“用户”结点,并选择“用户”结点。 (2)在“详细信息”窗格中右击要修改的用户账号,在弹出的快捷菜单中选择“属性”命令。 (3)打开“数据库用户- TestDB”对话框,在“常规”选项中可以重新选择用户账号所属的数据库角色,这与新建用户相似,这种方式需要预先建立好相应的数据库角色。,11.3 数据库安全性管理,更详细的数据库权限设置需要在“安全对象”选项中设置,这种设置方法与微软以前版本的SQL Server 7.0及SQL Server 2000有较大区别。 操作步骤如下: (1)在“数据库用户-TestDB”对话框

21、中选择“安全对象”选项,单击“添加”按钮。 (2)打开“添加对象”对话框,选择“特定对象”单选按钮,单击“确定”按钮,打开“选择对象”对话框。,11.3 数据库安全性管理,更详细的数据库权限设置需要在“安全对象”选项中设置,这种设置方法与微软以前版本的SQL Server 7.0及SQL Server 2000有较大区别。 操作步骤如下: (1)在“数据库用户-TestDB”对话框中选择“安全对象”选项,单击“添加”按钮。 (2)打开“添加对象”对话框,选择“特定对象”单选按钮,单击“确定”按钮,打开“选择对象”对话框。,图11-7 “数据库用户”对话框,11.3 数据库安全性管理,3删除数据

22、库的用户 删除数据库用户步骤与修改数据库用户方式相似,只是在右击要修改账号,在弹出的快捷菜单中选择“删除”命令,然后继续后续操作即可。,11.3 数据库安全性管理,11.3.2 数据库角色,角色是一个强大的工具,它可以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除权限适用于该角色中的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。 和登录账号类似,用户账号也可以分成组,称为数据库角色(DataBase roles)。数据库角色应用于单个数据库。在SQL Server中,数据库角色可分为两种:数据库角色和应用程序角色。数据库

23、角色是由数据库成员所组成的组,此成员可以是用户或者其他的数据库角色。应用程序角色用来控制应用程序存取数据库,它本身并不包括任何成员。,11.3 数据库安全性管理,1查看数据库角色 在创建一个数据库时,系统默认创建10个固定的标准角色。 在“SQL Server Management Studio”窗口中,依次展开SQL服务器、“数据库”、“TestDB”、“安全性”、“角色”、“数据库角色”结点,并选择“数据库角色”结点,这时可在右侧“详细信息”窗格中显示默认的10个数据库角色,见表12-2。,11.3 数据库安全性管理,表12-2 SQL Server 2012中的固定数据库角色,11.3

24、数据库安全性管理,2创建、删除新的角色 操作步骤如下: (1)按照查看数据库角色的方式打开“数据库角色”窗口。 (2)然后根据需要右击“数据库角色”或“应用程序角色”结点,在弹出的快捷菜单中选择“新建数据库角色”或“应用程序角色”命令,则打开“数据库角色新建”对话框或“应用程序角色新建”对话框,如图11-8所示。,11.3 数据库安全性管理,图11-8 “数据库角色-新建”对话框,11.3 数据库安全性管理,(3)在该对话框中的“角色名称”文本框中输入角色的名称,在“所有者”文本框中输入所有者(或单击“”按钮查找有效所有者);接着选择所有者架构,添加角色成员;最后单击“确定”按钮。 如果要对角

25、色进行详细权限设置,可以在“安全对象”选项中进行设置,具体方法与设置数据库用户详细权限相似。 3应用程序角色 编写数据库应用程序时,可以定义应用程序角色,让应用程序的操作者能用该应用程序来存取SQL Server的数据。也就是说,应用程序的操作者本身并不需要在SQL Server上有登录账号以及用户账号,仍然可以存取数据库,这样可以避免操作者自行登录SOLServer 2012。,11.3 数据库安全性管理,4public数据库角色 public数据库角色是每个数据库最基本的数据库角色,每个用户可以不属于其它9个固定数据库角色,但是至少属于public数据库角色。当在数据库中添加新用户时,SQ

26、L Server 2012会自动将新用户账号加入public数据库角色中。,11.3 数据库安全性管理,11.3.3 管理权限,用户是否具有对数据库存取的权力,要看其权限设置而定。但是,它还要受其角色的权限的限制。 1权限的种类 在SQL Server 2012中,权限分为三类:对象权限、语句权限和隐含权限。 (1)对象权限:对象权限是指用户对数据库中的表、视图、存储过程等对象的操作权限,相当于数据库操作语言的语句权限,如是否允许查询、添加、删除和修改数据等。,11.3 数据库安全性管理,对象权限的具体内容包括以下三个方面: 对于表和视图,是否允许执行SELECT、INSERT、UPDATE以

27、及DELETE语句。 对于表和视图的字段,是否允许执行SELECT、UPDATE语句。 对于存储过程,是否可以执行EXECUTE语句。,11.3 数据库安全性管理,(2)语句权限:语句权限相当于数据定义语言的语句权限,这种权限专指是否允许执行下列语句:CREATE TABLE、CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE VIEW、BACKUP DATABASE、BACKUP LOG。 (3)隐含权限:隐含权限是指由SQL Server 2012预定义的服务器角色、数据库所有者(dbo)和数据库对象所有者所拥有的权限,隐含权限相当于内置权

28、限,并不需要明确地授予这些权限。例如,服务器角色sysadmin的成员可以在整个服务器范围内从事任何操作,数据库所有者(dbo)可以对本数据库进行任何操作。,11.3 数据库安全性管理,2权限的管理 在上面介绍的三种权限中,隐含权限是由系统预定义的,这类权限是不需要也不能够进行设置的。因此,权限的设置实际上就是指对对象权限和语句权限的设置。权限可以由数据库所有者和角色进行管理。权限管理的内容包括以下三个方面的内容: 授予权限:即允许某个用户或角色对一个对象执行某种操作或某种语句。,11.3 数据库安全性管理,拒绝访问:即拒绝某个用户或角色访问某个对象。即使该用户或角色被授予这种权限,或者由于继

29、承而获得这种权限,仍然不允许执行相应的操作。 取消权限:即不允许某个用户或角色对一个对象执行某种操作或某个语句。不允许与拒绝是不同的,不允许执行某操作时,可以通过加入角色来获得允许权;而拒绝执行某操作时,就无法再通过角色来获得允许权了。 三种权限冲突时,拒绝访问权限起作用。,11.3 数据库安全性管理,3用户和角色的权限规则 (1)用户权限继承角色的权限:数据库角色中可以包含许多用户,用户对数据库对象的存取权限也继承该角色。 假如用户user1属于角色role1,角色role1已经取得了对表table1的SELECT权限,则用户user1也自动取得对表table1的SELECT权限。 如果ro

30、le1对table1没有INSERT权限,user1取得了对表table1的INSERT权限,则user1最终也取得对表table1的INSERT权根。,11.3 数据库安全性管理,但是拒绝是优先的,只要role1和user1之一有拒绝权限,则该权限就是拒绝的。 (2)用户分属不同角色:如果一个用户分属于不同的数据库角色,如用户userl既属于角色role1,又属于角色role2,则用户user1的权限基本上是以role1和role2的并集为准。但是只要有一个拒绝,则用户user1的权限就是拒绝的。,11.3 数据库安全性管理,11.4.1 备份和还原的基本概念,备份是指制作数据库结构、对象和

31、数据的复制,以便在数据库遭到破坏时能够修复数据库,还原则是指将数据库备份加载到服务器中的过程。 SQL Server 2012提供了一套功能强大的数据备份和还原工具,数据备份和还原用于保护数据库中的关键数据。在系统发生错误时,可以利用数据的备份来还原数据库中的数据。,11.4 数据库的备份与还原,在下述情况下,需要使用数据库的备份和还原: 存储介质损坏时,例如存放数据库数据的硬盘损坏。 用户操作错误时,例如非恶意地或恶意地修改或删除数据。 整个服务器崩溃时,例如操作系统被破坏,造成计算机无法启动。 需要在不同的服务器之间移动数据库时,把一个服务器上的某个数据库备份下来,然后还原到另一个服务器中

32、去。,由于SQL Server 2012支持在线备份,所以通常情况下可以一边进行备份,一边进行其他操作。但是,在备份过程中不允许执行以下操作: 创建或删除数据库文件。 创建索引。 执行非日志操作。 自动或手工缩小数据库或数据库文件大小。,11.4 数据库的备份与还原,如果以上各种操作正在进行当中,且准备进行备份,则备份处理将被终止;如果在备份过程中,打算执行以上任何操作,则操作将会失败而备份继续进行。 还原是将遭受破坏、丢失的数据或出现错误的数据库还原到原来的正常状态。这一状态是由备份决定的,但是为了维护数据库的一致性,在备份中未完成的事务并不进行还原。,备份和还原的工作主要是由数据库管理员来

33、完成的。实际上,数据库管理员日常比较重要和频繁的工作就是对数据库进行备份和还原。 如果在备份或还原过程中发生中断,则可以重新从中断点开始执行备份或还原。这在备份或还原一个大型数据库时极有价值。,11.4 数据库的备份与还原,11.4.2 数据备份的类型,在SQL Server 2000中有四种备份模式,分别为数据库备份(database backup)、事务日志备份(transaction log backup)、差异备份(differential database backup)以及文件和文件组备份(file and file group backup)。在SQL Server 2012中略

34、有不同,SQL Server 2012中先把备份分为两大类:数据库备份、文件和文件组备份,数据库备份有分为:完整、差异、事务日志,其实质与SQL Server 2000中相似。,11.4 数据库的备份与还原,1完整数据库备份 数据库完整备份,包括所有的数据以及数据库对象。实际上备份数据库的过程就是首先将事务日志写到磁盘上,然后根据事务创建相同的数据库和数据库对象以及复制数据的过程。 由于是对数据库的完全备份,所以这种备份类型不仅速度较慢,而且将占用大量磁盘空间。,11.4 数据库的备份与还原,因此,在进行数据库备份时,常将其安排在晚间进行,因为此时整个数据库系统几乎不进行其他事务操作,从而可以

35、提高数据库备份的速度。 在对数据库进行完全备份时,所有未完成的事务或者发生在备份过程中的事务都不会被备份。如果使用数据库备份类型,则从开始备份到开始还原这段时间内发生的任何针对数据库的修改将无法还原。,2差异数据库备份 差异数据库备份是指将最近一次数据库备份以来发生的数据变化备份起来,因此,差异备份实际上是一种增量数据库备份。 与完整数据库备份相比,差异数据库备份由于备份的数据量较小,所以备份和还原所用的时间较短。通过增加差异数据库备份的备份次数,可以降低丢失数据的风险,但是它无法像事务日志备份那样提供到失败点的无数据损失备份。,11.4 数据库的备份与还原,数据库备份一般在下列要求或条件下使

36、用: (1)数据不是非常重要,尽管在备份之后还原之前数据被修改,但这种修改是可以忍受的。 (2)通过批处理或其他方法,在数据库还原之后可以很轻易地重新实现在数据损坏前发生的修改。 (3)数据库变化的频率不大。,3事务日志备份 事务日志备份是指对数据库发生的事务进行备份,包括 从上次进行事务日志备份、差异备份和数据库完全备份之后, 所有已经完成的事务。在以下情况卞常选择事务日志备份: (1)不允许在最近一次数据库备份之后发生数据丢失或损坏的情况。 (2)存储备份文件的磁盘空间很小或者留给进行备份操作的日寸间有限。例如,兆字节级的数据库需要很大的磁盘空问和备份时间。,11.4 数据库的备份与还原,

37、(3)准备把数据库还原到发生失败的前一点。 (4)数据库变化较为频繁的情况。 事务日志备份需要的磁盘空间和备份时间都比差异数据库备份少得多,正是由于这个优点,所以在备份时常采用这样的策略,即每天进行一次差异数据库备份,而以一个或几个小时的频率备份事务日志。这样就可以将数据库还原到任意一个创建事务日志备份的时刻。,但是,创建事务日志备份相对比较复杂。因为在使用事务日志对数据库进行还原操作时,还必须有一个完整数据库备份,而且事务日志备份还原时必须按一定的顺序进行。 例如,在上周末对数据库进行了完整数据库备份,在从周一到周末的每一天都进行一次事务日志备份,那么若打算对数据库进行还原,则首先还原完整数

38、据库备份,然后按照顺序还原从周一到本周末的事务日志备份。,11.4 数据库的备份与还原,在实际中为了最大限度地减少数据库还原时间以及降低数据损失量,一般经常综合使用数据库备份、事务日志备份和差异备份,从而采用下面的备份方案: (1)有规律地进行数据库备份,比如每晚进行备份。 (2)较小的时间间隔进行差异备份,比如三个小时或四个小时。 (3)在相邻的两次差异备份之间进行事务日志备份,可以每10分钟或30分钟一次。,11.4 数据库的备份与还原,这样在进行还原时,就可以先还原最近一次的数据库备份,接着进行差异备份的还原,最后进行事务日志备份的还原。 在多数情况下,用户希望数据库能还原到数据库失败的

39、那一时刻,这时应该采用下面的方法: (1)如果能够访问数据库事务日志文件,则应备份当前正处于活动状态的事务日志。 (2)还原最近一次数据库备份。 (3)接着,还原最近一次差异备份。 (4)按顺序还原自差异备份以来进行的事务日志备份。 但是,如果无法备份当前数据库正在进行的事务,则只能把数据库还原到最后一次事务日志备份的状态,而不是数据库的失败点。,11.4 数据库的备份与还原,4文件和文件组备份 文件或文件组备份是指对数据库文件或数据库文件组进行备份,它不像完整的数据库备份那样同时也进行事务日志份。 使用该备份方法可提高数据库还原的速度,因为它仅对遭到破坏的文件或文件组进行还原。 在使用文件或

40、文件组进行还原时,要求有一个自上次备份以来的事务日志备份来保证数据库的一致性。所以,在进行完文件或文件组备份后,应再进行事务且志备份,否则备份在文件或文件组备份中的所有数据库变化将无效。,11.4 数据库的备份与还原,11.4.3 还原模式,在SQL Server 2012中有三种数据库还原模式,他们分别是简单还原(simple recovery)、完全还原(full recovery)和批日志还原(bulk-logged recovery)。 1简单还原 简单还原就是指在进行数据库还原时仅使用了完整数据库备份或差异备份,而不涉及事务日志备份。简单还原模式可使数据库还原到上一次备份的状态。但由

41、于不使用事务日志备份来进行还原,所以无法将数据库还原到失败点状态。当选择简单还原模式时,常使用的备份策略是:首先进行数据库备份,然后进行差异备份。,11.4 数据库的备份与还原,2完全还原 完全数据库还原模式是指,通过使用数据库备份和事务日志备份,将数据库还原到发生失败的时刻,因此几乎不造成任何数据丢失。这成为应对因存储介质损坏而丢失数据的最佳方法。为了保证数据库的这种还原能力,所有的批数据操作,比如SELECT INTO、创建索引都被写入日志文件。选择完全还原模式时常使用的备份策略是:首先进行完整数据库备份,然后进行差异数据库备份,最后进行事务日志备份。如果准备让数据库还原到失败点,则必须对

42、数据库失败前正处于运行状态的事务进行备份。,11.4 数据库的备份与还原,3批日志还原 批日志还原在性能上要优于简单还原和完全还原模式。它能尽最大努力减少批操作所需要的存储空间。这些批操作主要是SELECT INTO、批装载操作(如批插入操作)、创建索引、针对大文本或图像的操作(如WRITETEXT及UPDATETEXT)。选择批日志还原模式所采用的备份策略与完全还原所采用的备份策略基本相同。,11.4 数据库的备份与还原,11.4.4 数据库的备份,在进行备份以前首先必须创建备份设备。备份设备是用来存储数据库、事务日志、文件或文件组备份的存储介质,备份设备可以是硬盘、磁带或管道。 SQL S

43、erver 2012只支持将数据库备份到本地磁带机,而不是备份到网络上的远程磁带机。当使用磁盘时,SQL Server允许将本地主机硬盘和远程主机上的硬盘作为备份设备,备份设备在硬盘中是以文件的方式存储的。,11.4 数据库的备份与还原,1用SQL Server Management Studio管理备份设备 (1)使用SQL Server Management Studio创建备份设备的操作步骤如下: 在“SQL Server Management Studio”窗口的“对象资源管理器”窗格中,依次展开要管理的服务器、“服务器对象”、“备份设备”结点,右击“备份设备”结点,在弹出的快捷菜单中

44、选择“新建备份设备”命令,如图11-9所示。,11.4 数据库的备份与还原,图11-9 新建备份设备页面,11.4 数据库的备份与还原, 在打开的如图11-10所示的“备份设备”对话框中,填写备份设备名称和设备类型,由于没有安装磁带机所以磁带机不可选,只能选择文件,单击“文件”文本框后的“”按钮,在打开的对话框中设置文件名。,11.4 数据库的备份与还原,图11-10 “备份设备”对话框,11.4 数据库的备份与还原, 然后单击“确定”按钮,完成创建备份设备。 注意:如果在Windows的NTFS文件系统中创建备份设备文件,该文件所在目录需要具有SQL Server 2012系统用户具有读和写

45、的用户权限,否则会提示权限不够的错误。创建备份设备主要针对使用诸如磁带机一类的备份设备,如果备份设备是本地磁盘上的文件,则可以不需要建立备份设备。,11.4 数据库的备份与还原,(2)使用SQL Server Management Studio删除备份设备的操作步骤如下: 在“SQL Server Management Studio”窗口的“对象资源管理器”窗格中,依次展开要管理的服务器、“服务器对象”、“备份设备”结点,右击要删除的备份设备,在弹出的快捷菜单中选择“删除”命令,即可删除备份设备。,11.4 数据库的备份与还原,2系统数据库备份操作 在备份用户数据库的同时,如果需要还原整个系统

46、,则还需要备份系统数据库。这使得在系统或数据库发生故障(例如硬盘发生故障)时可以重建系统。下列系统数据库的定期备份很重要:master数据库、msdb数据库、model数据库。 注意:不可能备份tempdb系统数据库,因为每次启动SQL Server 2012实例时都重建tempdb数据库。SQL Server 2012实例在关闭时将永久删除tempdb数据库中的所有数据。,11.4 数据库的备份与还原,3数据库备份 在SQL Server 2012中可以使用BACKUP DATABASE语句创建数据库备份,也可以使用SQL Server Management Studio以图形化的方法进行备

47、份,这里只介绍使用SQL Server Management Studio进行备份。在SQL Server 2012中无论是数据库备份,还是事务日志备份、差异备份、文件或文件组备份都执行相同的步骤。 使用SQL Server Management Studio进行备份的操作步骤如下: (1)在“SQL Server Management Studio”窗口的“对象资源管理器”窗格中,依次展开要管理的服务器、“数据库”结点,右击要备份的数据库,在弹出的快捷菜单中选择“任务”“备份”命令,如图11-11所示,打开“备份数据库”对话框,如图11-12所示。,11.4 数据库的备份与还原,V11-4

48、数据库备份.wmv,图11-11 备份数据库操作,11.4 数据库的备份与还原,图11-12 “备份数据库”对话框,(2)在“备份数据库”对话框中,选择要备份的数据库、备份模式、备份设备,输入备份名称,单击“确定”按钮即可继续数据库备份。,11.4 数据库的备份与还原,11.4.5 数据库的还原,利用SQL Server Management Studio还原数据库的方法和操作步骤如下: (1)在“SQL Server Management Studio”窗口的“对象资源管理器”窗格中,依次展开要管理的服务器、“数据库”结点,右击要还原的数据库,在弹出的快捷菜单中选择“任务”“还原”“数据库”

49、命令,打开“还原数据库”对话框,如图11-13所示。,11.4 数据库的备份与还原,V11-5 数据库还原.wmv,图11-13 “还原数据库”对话框,11.4 数据库的备份与还原,(2)在“还原数据库”对话框中,设置“目标数据库”、“源数据库”、需要的“备份集”后,单击“确定”按钮即可还原数据库。 注意:以上介绍的仅是手工备份和还原数据库,如果要让SQL Server 2012系统自动定时备份数据库,则需要使用SQL Server 2012系统提供的维护计划功能才能实现,不过只有SQL Server 2012企业版才提供维护计划的功能,其他版本是没有的。,11.4 数据库的备份与还原,11.4.6备份与还原计划,通常,选择哪种类型的备份是依赖所要求的还原能力(如将数据库还原到失败点)、备份文件的大小(如完成数据库备份、只进行事务日志的备份或是差异数据库备份)以及留给备份的时间等来决定。常用的备份方案有:仅进行数据库备份,或在进行数据库备份的同时进行事务日志备份,或使用完整数据库备份和差异数据库备份。,11.4 数据库的备份与还原,选用何种备份方案将对备份和还原产生直接影响,而且决定了数据库在遭到破坏前后的一致性水平。所以在做决策时,必须考虑到以下几个问题: (1)如果只进行数据库备份,那么将无法还原最

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1