欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    SQL安全,管理备份与恢复2.docx

    • 资源ID:1938140       资源大小:1.31MB        全文页数:41页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SQL安全,管理备份与恢复2.docx

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

    注意事项

    本文(SQL安全,管理备份与恢复2.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开