數(shù)據(jù)庫安全性控制.ppt_第1頁
數(shù)據(jù)庫安全性控制.ppt_第2頁
數(shù)據(jù)庫安全性控制.ppt_第3頁
數(shù)據(jù)庫安全性控制.ppt_第4頁
數(shù)據(jù)庫安全性控制.ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第 8 章,第8章 SQL Server 2005數(shù)據(jù)庫控制與維護(hù),數(shù)據(jù)庫應(yīng)用教程,8.2.1 SQL Server的安全機(jī)制,8.2.2 服務(wù)器登錄帳號(hào)的管理,8.2.3 數(shù)據(jù)庫用戶管理,8.2 數(shù)據(jù)庫的安全性控制,8.2.4 管理權(quán)限,8.2 數(shù)據(jù)庫的安全性管理,一個(gè)機(jī)構(gòu)建立數(shù)據(jù)庫的目的是為了數(shù)據(jù)庫中的數(shù)據(jù)能夠被機(jī)構(gòu)中的用戶共享訪問,但數(shù)據(jù)庫中的數(shù)據(jù)不能被破壞,重要數(shù)據(jù)(如銀行賬號(hào)的密碼)也只能由具有特殊權(quán)力的人員訪問,因此數(shù)據(jù)庫系統(tǒng)必須能夠預(yù)防來自機(jī)構(gòu)內(nèi)部或外部的人對(duì)數(shù)據(jù)的故意破壞或竊取。可見,安全性是數(shù)據(jù)庫設(shè)計(jì)的重要組成部分。,所謂數(shù)據(jù)庫的安全性:是指保護(hù)數(shù)據(jù)以防止因不合法的使用而造成數(shù)據(jù)的泄密和破壞。為保證數(shù)據(jù)庫的安全性,需要采取一定的安全保護(hù)措施。,SQL Server的安全模型,增刪 改查,增刪 改查,增刪 改查,增刪 改查,增刪 改查,增刪 改查,數(shù)據(jù)庫用戶,數(shù)據(jù)庫用戶,數(shù)據(jù)庫用戶,登錄帳號(hào),SQLserver三層安全管理,數(shù)據(jù)表1 數(shù)據(jù)表2,DB1,數(shù)據(jù)表1 數(shù)據(jù)表2,DB2,數(shù)據(jù)表1 數(shù)據(jù)表2,DB3,8.2.1 SQL Server的安全機(jī)制,SQL Server 2000的安全機(jī)制包括身份驗(yàn)證和權(quán)限驗(yàn)證兩個(gè)方面 。,1SQL Server的身份驗(yàn)證模式,用戶要想訪問SQL Server數(shù)據(jù)庫中的數(shù)據(jù),必須以合法身份登錄到SQL Server服務(wù)器上,SQL Server或者操作系統(tǒng)對(duì)用戶的身份進(jìn)行驗(yàn)證,這一階段稱為身份驗(yàn)證階段(Authentication)。SQL Server身份驗(yàn)證有兩種模式:Windows身份驗(yàn)證模式和混合身份驗(yàn)證模式。,在企業(yè)管理器,展開“服務(wù)器組”節(jié)點(diǎn),在其中的某個(gè)SQL Server服務(wù)器上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“編輯SQL Server注冊(cè)屬性”菜單項(xiàng),將會(huì)打開 “已注冊(cè)的SQL Server屬性”對(duì)話框。在該對(duì)話框中可以設(shè)置身份驗(yàn)證模式。,登錄方式,登錄驗(yàn)證有兩種方式: SQL身份驗(yàn)證:適合于非windows平臺(tái)的用戶或Internet用戶, 需要提供帳戶和密碼 Windows身份驗(yàn)證:適合于windows平臺(tái)用戶,不需要提供密碼,和windows集成驗(yàn)證 登錄帳戶相應(yīng)有兩種::SQL 帳戶和Windows帳戶,創(chuàng)建登錄賬戶,使用SQL語句創(chuàng)建兩種模式下的登錄帳戶 添加WINDOWS登錄帳戶 添加SQL登錄帳戶,EXEC sp_grantlogin windows域名域帳戶,EXEC EXEC sp_addlogin 帳戶名,密碼,創(chuàng)建登錄賬戶,添加Windows登錄帳戶 /windows用戶為S01,SDXY表示域 如是本機(jī),SDXY為計(jì)算機(jī)名 EXEC sp_grantlogin SDXYS01 添加SQL登錄帳戶 /登錄名為zhangsan,密碼為1234 EXEC sp_addlogin zhangsan, 1234 GO,演示:創(chuàng)建登錄帳戶,創(chuàng)建數(shù)據(jù)庫用戶,創(chuàng)建了登錄帳戶,只能登錄到SQL Server系統(tǒng),但還不能訪問某個(gè)數(shù)據(jù)庫。如果希望訪問某個(gè)數(shù)據(jù)庫,必須要成為該數(shù)據(jù)庫的一個(gè)用戶。 創(chuàng)建數(shù)據(jù)庫用戶需要調(diào)用系統(tǒng)存儲(chǔ)過程sp_grantdbaccess 在empDB中添加兩個(gè)用戶,EXEC sp_grantdbaccess 登錄帳戶,數(shù)據(jù)庫用戶,USE empDB - S01DBUser為數(shù)據(jù)庫用戶名 EXEC sp_grantdbaccess SDXYS01,S01DBUser EXEC sp_grantdbaccess zhangsan,zhangsanDBUser,演示:創(chuàng)建數(shù)據(jù)庫用戶,8.2.1 SQL Server的安全機(jī)制,2權(quán)限驗(yàn)證,當(dāng)用戶通過身份驗(yàn)證登錄到SQL Server服務(wù)器上后,還必須經(jīng)過權(quán)限驗(yàn)證以決定他能訪問的數(shù)據(jù)庫及對(duì)訪問的數(shù)據(jù)庫所允許執(zhí)行的操作。,為了對(duì)數(shù)據(jù)庫中的對(duì)象設(shè)置安全權(quán)限,每個(gè)數(shù)據(jù)庫都要求設(shè)置單獨(dú)的用戶賬號(hào)。因此在SQL Server中,賬號(hào)有兩種:登錄賬號(hào)和數(shù)據(jù)庫用戶賬號(hào)。,登錄賬號(hào)屬于服務(wù)器層面的,本身并不能讓用戶訪問服務(wù)器中的數(shù)據(jù)庫。登錄用戶要想訪問數(shù)據(jù)庫,應(yīng)先把他加入到數(shù)據(jù)庫中使他成為數(shù)據(jù)庫用戶,即在數(shù)據(jù)庫中有一個(gè)關(guān)聯(lián)的數(shù)據(jù)庫用戶賬號(hào),數(shù)據(jù)庫用戶賬號(hào)可以與用戶賬號(hào)同名也可以不同名。,如果登錄賬號(hào)在數(shù)據(jù)庫中不存在對(duì)應(yīng)的數(shù)據(jù)庫用戶賬號(hào),若數(shù)據(jù)庫中存在Guest賬號(hào),則登錄用戶可以使用Guest賬號(hào)訪問數(shù)據(jù)庫。登錄賬號(hào)對(duì)應(yīng)的數(shù)據(jù)庫用戶賬號(hào)的數(shù)據(jù)庫訪問權(quán)限決定了用戶在數(shù)據(jù)庫中可以進(jìn)行哪些操作。,用戶獲得對(duì)數(shù)據(jù)庫的訪問權(quán)限以后,就可以存取數(shù)據(jù)庫了。,8.2.2 服務(wù)器登錄賬號(hào)的管理,1查看登錄賬號(hào),可使用企業(yè)管理器查看登錄賬號(hào),方法是在企業(yè)管理器中,展開相應(yīng)的SQL Server服務(wù)器節(jié)點(diǎn),再展開其下的“安全性”節(jié)點(diǎn),單擊其下的“登錄”圖標(biāo),在右側(cè)的“內(nèi)容顯示”窗口中將顯示出系統(tǒng)創(chuàng)建的默認(rèn)登錄賬戶以及已建立的其他登錄賬戶 。,如果采用的是Windows NT Server操作系統(tǒng),將會(huì)有三個(gè)默認(rèn)賬號(hào),含義如下:,BUILTINAdministrators:凡是Windows NT Server/2000中的Administrators組的賬號(hào)都允許作為SQL Server登錄賬號(hào)使用。,域名Administrator:允許Windows NT Server的Administrator賬號(hào)作為SQL Server登 錄賬號(hào)使用。,sa:SQL Server系統(tǒng)管理員登錄賬號(hào),該賬號(hào)擁有最高的管理權(quán)限,可以執(zhí)行服務(wù)器范圍內(nèi)的所有操作。通常SQL Server管理員也是Windows NT或Windows Server 2000的管理員。,8.2.2 服務(wù)器登錄賬號(hào)的管理,2創(chuàng)建登錄賬號(hào),【例8-19】為SQL Server服務(wù)器創(chuàng)建一個(gè)登錄賬號(hào),賬號(hào)名為CollegeMISAdm,密碼為tah980808,只能訪問CollegeMIS數(shù)據(jù)庫。該登錄賬號(hào)的服務(wù)器角色為Database Creator。,(1)在企業(yè)管理器中,依次展開至本地服務(wù)器(TAHSJ)下的“安全性”節(jié)點(diǎn),在其下的“登錄”圖標(biāo)上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“新建登錄”菜單項(xiàng),將會(huì)出現(xiàn)“SQL Server登錄屬性新建登錄”對(duì)話框。,(2)在該對(duì)話框“常規(guī)”頁,輸入登錄名稱為“CollegeMISAdm”,選中“SQL Server身份驗(yàn)證”單選鈕并輸入密碼,在“數(shù)據(jù)庫”后面的下拉式列表框中選擇“CollegeMIS”數(shù)據(jù)庫,(3)單擊“服務(wù)器角色”頁標(biāo)簽,選中服務(wù)器角色為“Database Creator”,(4)“數(shù)據(jù)庫訪問”頁設(shè)置。,(5)再次輸入確認(rèn)密碼。,8.2.2 服務(wù)器登錄賬號(hào)的管理,2創(chuàng)建登錄賬號(hào),角色(Role)是一組具有相同權(quán)限的用戶所構(gòu)成的組,在SQL Server中可分為服務(wù)器角色與數(shù)據(jù)庫角色。,服務(wù)器角色是負(fù)責(zé)管理與維護(hù)SQL Server的登錄賬號(hào)組,一般應(yīng)指定管理服務(wù)器的登錄賬號(hào)屬于哪個(gè)服務(wù)器角色。SQL Server在安裝過程中定義幾個(gè)固定的服務(wù)器角色,8.2.2 服務(wù)器登錄賬號(hào)的管理,3登錄賬號(hào)屬性修改,在企業(yè)管理器中,展開至SQL Server服務(wù)器的“安全性”節(jié)點(diǎn),單擊其下的“登錄”圖標(biāo),在右側(cè)的“內(nèi)容顯示”窗口中將顯示出所有的登錄賬號(hào)。在相應(yīng)登錄賬號(hào)上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“屬性”菜單項(xiàng),將會(huì)出現(xiàn) “SQL Server登錄屬性”對(duì)話框,在該對(duì)話框中可以對(duì)登錄賬號(hào)的屬性進(jìn)行修改,修改完成后按“確定”按鈕即可。,例如,若要暫時(shí)禁止一個(gè)使用Windows身份驗(yàn)證的登錄賬戶連接到SQL Server,只需在“SQL Server登錄屬性”對(duì)話框中,選擇“常規(guī)”頁,然后選取“拒絕訪問”復(fù)選框即可。若要暫時(shí)禁止一個(gè)使用SQL Server身份驗(yàn)證的登錄賬號(hào)連接到SQL Server,只需要修改該賬戶的登錄密碼,當(dāng)允許該賬戶登錄時(shí),再把密碼改回即可。,在企業(yè)管理器中,展開至SQL Server服務(wù)器的“安全性”節(jié)點(diǎn),單擊其下的“登錄”圖標(biāo),在右側(cè)的“內(nèi)容顯示”窗口中將顯示出所有的登錄賬號(hào)。在相應(yīng)登錄賬號(hào)上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“刪除”菜單項(xiàng)(或選中相應(yīng)登錄賬號(hào),直接按Delete鍵),在出現(xiàn)的“確認(rèn)”對(duì)話框中單擊“是”按鈕即可。,4刪除登錄賬號(hào),8.2.3 數(shù)據(jù)庫用戶管理,SQL Server系統(tǒng)安裝后,master、tempdb、msdb等默認(rèn)數(shù)據(jù)庫包含兩個(gè)數(shù)據(jù)庫用戶賬號(hào):dbo和guest。任何一個(gè)登錄賬號(hào)都可以通過它的guest用戶賬號(hào)來存取相應(yīng)的數(shù)據(jù)庫。但在在SQL Server中新建一個(gè)數(shù)據(jù)庫時(shí),默認(rèn)只有dbo用戶賬號(hào)而沒有g(shù)uest用戶賬號(hào)。因此要讓其他的登錄賬號(hào)具有訪問新建的數(shù)據(jù)庫的權(quán)限,必須使登錄賬號(hào)關(guān)聯(lián)一個(gè)新建的數(shù)據(jù)庫的用戶賬戶。,每個(gè)登錄賬號(hào)在一個(gè)數(shù)據(jù)庫中只能有一個(gè)用戶賬號(hào),但每個(gè)登錄賬號(hào)可以在不同的數(shù)據(jù)庫中各有一個(gè)用戶賬號(hào)。登錄賬號(hào)具有對(duì)某個(gè)數(shù)據(jù)庫的訪問權(quán)限,并不表示該登錄賬號(hào)對(duì)該數(shù)據(jù)庫具有存取的權(quán)限,如果要對(duì)數(shù)據(jù)庫對(duì)象進(jìn)行插入、更新、刪除等操作,還需要設(shè)置用戶賬號(hào)的權(quán)限。,需注意的是除master和tempdb數(shù)據(jù)庫中的guest用戶賬號(hào)不能刪除外,其他數(shù)據(jù)庫中的guest用戶賬號(hào)都可以刪除。,8.2.3 數(shù)據(jù)庫用戶管理,1創(chuàng)建數(shù)據(jù)庫用戶賬號(hào),【例8-20】為Pubs數(shù)據(jù)庫創(chuàng)建一個(gè)數(shù)據(jù)庫用戶賬號(hào),賬號(hào)名為“CollegeMISAdmPubs”,角色為public、db_datareader和db_datawriter。,(1)在企業(yè)管理器中,展開SQL Server服務(wù)器下的“數(shù)據(jù)庫”節(jié)點(diǎn),展開Pubs數(shù)據(jù)庫,在其下的“用戶”圖標(biāo)上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“新建數(shù)據(jù)庫用戶”菜單項(xiàng),將會(huì)出現(xiàn)“數(shù)據(jù)庫用戶屬性”對(duì)話框。,(2)在“數(shù)據(jù)庫用戶屬性”對(duì)話框中的“登錄名”后面的下拉式列表框中選取“CollegeMISAdm”登錄名,用戶名自動(dòng)變?yōu)椤癈ollegeMISAdm”,把該名稱改為“CollegeMISAdmPubs”(若不修改,則數(shù)據(jù)庫用戶賬號(hào)和登錄賬號(hào)名稱一致)。選取數(shù)據(jù)庫角色為public、db_datareader和db_datawriter 。,(3)單擊“確定”按鈕,即可為pubs數(shù)據(jù)庫創(chuàng)建了一個(gè)數(shù)據(jù)庫用戶,用戶名為“CollegeMISAdmPubs”。,8.2.3 數(shù)據(jù)庫用戶管理,數(shù)據(jù)庫角色:,和登錄賬號(hào)類似,用戶賬號(hào)也可以分成組,稱為數(shù)據(jù)庫角色(Database Roles)。在實(shí)際應(yīng)用中,可以建立一個(gè)角色來代表機(jī)構(gòu)中一類擁有相同權(quán)限的工作人員,然后給這個(gè)角色授予適當(dāng)?shù)臋?quán)限。在SQL Server中,數(shù)據(jù)庫角色可分為兩種:標(biāo)準(zhǔn)角色和應(yīng)用程序角色。標(biāo)準(zhǔn)角色是由數(shù)據(jù)庫用戶或其他的數(shù)據(jù)庫角色所組成的組,組中的每個(gè)數(shù)據(jù)庫用戶或角色稱為成員,應(yīng)用程序角色不包括任何成員,主要用來控制應(yīng)用程序存取數(shù)據(jù)庫。在創(chuàng)建一個(gè)數(shù)據(jù)庫時(shí),系統(tǒng)默認(rèn)創(chuàng)建10個(gè)固定的標(biāo)準(zhǔn)角色。,8.2.3 數(shù)據(jù)庫用戶管理,2設(shè)置數(shù)據(jù)庫用戶賬號(hào)的權(quán)限,在創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)時(shí),“數(shù)據(jù)庫用戶屬性”對(duì)話框中“登錄名”右側(cè)的“權(quán)限”按鈕是灰色的,表示不能在創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)的同時(shí)設(shè)置其權(quán)限。但可以在創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)后再通過其屬性對(duì)話框來設(shè)置權(quán)限。,例:為CollegeMIS數(shù)據(jù)庫的數(shù)據(jù)庫用戶賬號(hào)CollegeMISAdm設(shè)置用戶權(quán)限。,起始步驟:在企業(yè)管理器中,展開至CollegeMIS數(shù)據(jù)庫,單擊“用戶”圖標(biāo),在右側(cè)的內(nèi)容顯示窗口中將顯示出該數(shù)據(jù)庫的所有用戶賬號(hào)。在“CollegeMISAdm”用戶賬號(hào)上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“屬性”菜單項(xiàng),將會(huì)出現(xiàn) “數(shù)據(jù)庫用戶屬性”對(duì)話框。,8.2.3 數(shù)據(jù)庫用戶管理,2設(shè)置數(shù)據(jù)庫用戶賬號(hào)的權(quán)限,授予權(quán)限、禁止權(quán)限和撤消權(quán)限的含義如下。,授予權(quán)限。即允許某個(gè)用戶或角色對(duì)一個(gè)對(duì)象執(zhí)行某種操作或某種語句。,拒絕訪問。即拒絕某個(gè)用戶或角色訪問某個(gè)對(duì)象。即使該用戶或角色被授予這種權(quán)限,或者由于繼承而獲得這種權(quán)限,仍然不允許執(zhí)行相應(yīng)的操作。,撤消權(quán)限。即不允許某個(gè)用戶或角色對(duì)一個(gè)對(duì)象執(zhí)行某種操作或某種語句。不允許與拒絕是不同的,不允許執(zhí)行某操作時(shí),可以通過加入角色來獲得允許權(quán);而拒絕執(zhí)行某操作時(shí),就無法再通過角色來獲得允許權(quán)了。三種權(quán)限沖突時(shí),拒絕訪問權(quán)限起作用。撤消用戶的某一權(quán)限,并不代表能夠禁止用戶使用這一權(quán)限,因?yàn)橛脩艨赡芡ㄟ^其他角色繼承了這一權(quán)限。,3刪除數(shù)據(jù)庫用戶賬號(hào),通過企業(yè)管理器來實(shí)現(xiàn)。,8.2.4 管理權(quán)限,權(quán)限是指用戶對(duì)數(shù)據(jù)庫中的對(duì)象具有使用和操作的權(quán)力,用戶對(duì)數(shù)據(jù)庫所能執(zhí)行的操作是由其具有的權(quán)限決定的。,1權(quán)限的種類,在SQL Server 2000中,權(quán)限分為三類:對(duì)象權(quán)限、語句權(quán)限和隱含權(quán)限。,(1)對(duì)象權(quán)限。對(duì)象權(quán)限是指用戶對(duì)數(shù)據(jù)庫中的表、視圖、存儲(chǔ)過程等對(duì)象的操作權(quán)限,如是否允許查詢、添加、刪除、修改數(shù)據(jù)、執(zhí)行存儲(chǔ)過程等。,(2)語句權(quán)限。語句權(quán)限是指用戶是否具有執(zhí)行某種語句的權(quán)力,這些語句主要包括一些數(shù)據(jù)定義語句,如創(chuàng)建數(shù)據(jù)庫、表、存儲(chǔ)過程等的語句。,(3)隱含權(quán)限。隱含權(quán)限是指由SQL Server預(yù)定義的服務(wù)器角色、數(shù)據(jù)庫所有者(dbo)和數(shù)據(jù)庫對(duì)象所有者所擁有的權(quán)限,隱含權(quán)限相當(dāng)于內(nèi)置權(quán)限,并不需要明確地授予這些權(quán)限。例如,服務(wù)器角色sysadmin的成員可以在整個(gè)服務(wù)器范圍內(nèi)從事任何操作,數(shù)據(jù)庫所有者(dbo)可以對(duì)本數(shù)據(jù)庫進(jìn)行任何操作。,8.2.4 管理權(quán)限,1權(quán)限管理,權(quán)限管理的主要任務(wù)是管理對(duì)象權(quán)限和語句權(quán)限,包括權(quán)限的賦予、拒絕和撤消。,角色和用戶的權(quán)限可能是通過企業(yè)管理器和授權(quán)語句授予得到的,也可能是通過角色繼承得來的。,數(shù)據(jù)庫用戶繼承它所屬角色的權(quán)限,并且可以通過企業(yè)管理器和授權(quán)語句對(duì)權(quán)限進(jìn)行擴(kuò)展或拒絕。但只要用戶繼承的角色或用戶本身授予的權(quán)限對(duì)某一權(quán)限是拒絕的,則該權(quán)限就是拒絕的。,如果用戶分屬于不同的角色,他擁有的權(quán)限是各個(gè)角色的并集,但對(duì)某一權(quán)限有一個(gè)是拒絕的,則用戶的該權(quán)限就是拒絕的。在權(quán)限管理中遵循拒絕優(yōu)先的原則。,8.2.4 管理權(quán)限,1權(quán)限管理,(1)使用企業(yè)管理器管理語句權(quán)限,在企業(yè)管理器中,展開“數(shù)據(jù)庫”節(jié)點(diǎn),在要設(shè)置權(quán)限的數(shù)據(jù)庫(如CollegeMIS)上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“屬性”菜單項(xiàng),將會(huì)出現(xiàn)相應(yīng)數(shù)據(jù)庫的“屬性”對(duì)話框。,單擊“權(quán)限”頁標(biāo)簽,在該頁可以對(duì)各數(shù)據(jù)庫用戶或角色的語句權(quán)限進(jìn)行設(shè)置。,8.2.4 管理權(quán)限,1權(quán)限管理,(2)使用企業(yè)管理器管理對(duì)象權(quán)限,在企業(yè)管理器中,展開“數(shù)據(jù)庫”節(jié)點(diǎn),選中要授予權(quán)限的對(duì)象(表、視圖、存儲(chǔ)過程等)并在其上單擊右鍵,在出現(xiàn)的快捷菜單中選擇“屬性”菜單項(xiàng),將會(huì)出現(xiàn)相應(yīng)對(duì)象的“屬性”對(duì)話框。,在該對(duì)象的“屬性”對(duì)話框中,一般均有一個(gè)“權(quán)限”按鈕,單擊它在出現(xiàn)的對(duì)話框中可以對(duì)各數(shù)據(jù)庫用戶或角色的對(duì)象權(quán)限進(jìn)行設(shè)置。,8.3.1 數(shù)據(jù)庫備份概述,8.3.2 數(shù)據(jù)庫還原模式,8.3.3 備份設(shè)備管理,8.3 數(shù)據(jù)庫的備份與還原,8.3.4 數(shù)據(jù)庫備份與還原操作,8.3 數(shù)據(jù)庫的備份與還原,數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該是可靠的、正確的,但計(jì)算機(jī)系統(tǒng)的故障(如:硬件故障、軟件故障、網(wǎng)絡(luò)故障、進(jìn)程故障和系統(tǒng)故障等)是不可避免的,這些故障的出現(xiàn)將影響數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中的數(shù)據(jù)全部或部分丟失。因此需對(duì)數(shù)據(jù)庫進(jìn)行備份,以便在發(fā)生故障時(shí)能夠利用數(shù)據(jù)庫備份對(duì)數(shù)據(jù)庫進(jìn)行還原。,8.3.1 數(shù)據(jù)庫備份概述,1備份內(nèi)容,在SQL Server中數(shù)據(jù)庫需備份的內(nèi)容可分為系統(tǒng)數(shù)據(jù)庫、用戶數(shù)據(jù)庫和事務(wù)日志3部分。,系統(tǒng)數(shù)據(jù)庫主要包括master、msdb、distribution和model數(shù)據(jù)庫,它們記錄了重要的系統(tǒng)信息,一旦損壞就可能使 SQL Server 2000系統(tǒng)無法正常運(yùn)行,必須完全備份。在便在系統(tǒng)發(fā)生故障時(shí)能夠利用它們的備份還原整個(gè)系統(tǒng)。但不可能也沒有必要對(duì)系統(tǒng)數(shù)據(jù)庫tempdb進(jìn)行備份 。,用戶數(shù)據(jù)庫是機(jī)構(gòu)重要的信息資源,根據(jù)其重要性可分為關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù)。對(duì)于關(guān)鍵數(shù)據(jù),一旦損壞,不易甚至不能重新建立,必須進(jìn)行完全備份。,事務(wù)日志記錄了用戶對(duì)數(shù)據(jù)的各種事務(wù)操作,平時(shí)系統(tǒng)會(huì)自動(dòng)管理和維護(hù)所有的數(shù)據(jù)庫事務(wù)日志文件。相對(duì)于數(shù)據(jù)庫備份,事務(wù)日志備份所需要的時(shí)間較少,但還原需要的時(shí)間比較長(zhǎng)。,注意:在SQL Server 2000中,固定服務(wù)器角色sysadmin和固定數(shù)據(jù)庫角色db_owner、db_backupoperator可以做備份操作,但可以通過授權(quán)允許其他角色執(zhí)行數(shù)據(jù)庫備份操作。,8.3.1 數(shù)據(jù)庫備份概述,2備份設(shè)備,數(shù)據(jù)庫備份前,必須選擇備份設(shè)備。備份設(shè)備是用來存儲(chǔ)備份數(shù)據(jù)的存儲(chǔ)介質(zhì),可以是硬盤、磁帶或命名管道(邏輯通道)。SQL Server允許將本地主機(jī)硬盤和遠(yuǎn)程主機(jī)的硬盤作為備份設(shè)備,備份設(shè)備在硬盤中是以文件的方式存儲(chǔ)的。SQL Server只允許使用本地主機(jī)的磁帶機(jī)作為備份設(shè)備而不允許使用遠(yuǎn)程主機(jī)上的磁帶機(jī)作為備份設(shè)備。,SQL Server使用物理設(shè)備名稱或邏輯設(shè)備名稱來標(biāo)識(shí)備份設(shè)備。物理設(shè)備名稱是操作系統(tǒng)用來標(biāo)識(shí)備份設(shè)備的名稱,邏輯設(shè)備名稱是用來標(biāo)識(shí)物理備份設(shè)備的別名或公用名稱,邏輯設(shè)備名稱有助于記憶和書寫 。,使用邏輯設(shè)備名稱標(biāo)識(shí)的備份設(shè)備稱為永久備份設(shè)備,其名稱永久地存儲(chǔ)在SQL Server的系統(tǒng)設(shè)備表中,可以多次使用。使用物理設(shè)備名稱標(biāo)識(shí)的備份設(shè)備稱為臨時(shí)備份設(shè)備,其名稱沒有記錄在系統(tǒng)設(shè)備表中,只能使用一次。,8.3.1 數(shù)據(jù)庫備份概述,3備份時(shí)機(jī),對(duì)于系統(tǒng)數(shù)據(jù)庫,只要執(zhí)行某些語句或存儲(chǔ)過程導(dǎo)致SQL Server對(duì)系統(tǒng)數(shù)據(jù)庫進(jìn)行了修改,就需要備份。,對(duì)于用戶數(shù)據(jù)庫,如果用戶或程序?qū)χ畧?zhí)行了添加數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)、創(chuàng)建索引等操作,則應(yīng)該對(duì)用戶數(shù)據(jù)庫進(jìn)行備份。如果清除了事務(wù)日志,也應(yīng)該備份數(shù)據(jù)庫。,8.3.1 數(shù)據(jù)庫備份概述,4備份類型,SQL Server 2000支持4種基本類型的備份:完全備份(Full Backup)、事務(wù)日志備份(Transaction Log Backup)、差異備份(Differential Database Backup)以及文件和文件組備份(File and File Group Backup)。,(1)完全備份。完全備份將備份整個(gè)數(shù)據(jù)庫,包括用戶表、系統(tǒng)表、索引、視圖和存儲(chǔ)過程等所有數(shù)據(jù)庫對(duì)象。適用于數(shù)據(jù)更新緩慢的數(shù)據(jù)庫。由于這種類型的備份不僅速度較慢,而且將占用大量磁盤空間,所以通常將其安排在晚間整個(gè)數(shù)據(jù)庫系統(tǒng)的事務(wù)運(yùn)行數(shù)目相對(duì)較少時(shí)進(jìn)行,以避免對(duì)用戶的影響和提高數(shù)據(jù)庫備份的速度。,(2)事務(wù)日志備份。事務(wù)日志備份是指對(duì)數(shù)據(jù)庫發(fā)生的事務(wù)進(jìn)行備份,包括從上次進(jìn)行事務(wù)日志備份、差異備份和完全備份之后,所有已經(jīng)完成的事務(wù)。事務(wù)日志備份通常用在數(shù)據(jù)庫變化較為頻繁或不允許在最近一次數(shù)據(jù)庫備份之后發(fā)生數(shù)據(jù)丟失或損壞的情況。,事務(wù)日志備份需要的磁盤空間和備份時(shí)間都比數(shù)據(jù)庫備份少得多,正是由于這個(gè)優(yōu)點(diǎn),所以在備份時(shí)常采用這樣的策略,即每天進(jìn)行一次數(shù)據(jù)庫備份,而以一個(gè)或幾個(gè)小時(shí)的頻率備份事務(wù)日志。這樣就可以將數(shù)據(jù)庫還原到任意一個(gè)創(chuàng)建事務(wù)日志備份的時(shí)刻。,使用事務(wù)日志對(duì)數(shù)據(jù)庫進(jìn)行還原操作比較麻煩,它不但需要有一個(gè)數(shù)據(jù)庫的完全備份,而且對(duì)事務(wù)日志備份還需要按一定的順序進(jìn)行還原。,(3)差異備份。差異備份只記錄自上次完全備份后發(fā)生更改的數(shù)據(jù),差異備份一般會(huì)比完全備份占用更少的空間。與完全備份相比,差異備份的數(shù)據(jù)量較小,備份和還原所用的時(shí)間較短。通過增加差異備份的備份次數(shù),可以降低丟失數(shù)據(jù)的風(fēng)險(xiǎn),但是它無法像事務(wù)日志備份那樣提供到失敗點(diǎn)的無數(shù)據(jù)損失備份。,在實(shí)際應(yīng)用中一般經(jīng)常綜合使用完全備份、差異備份和事務(wù)日志備份,以最大限度地減少數(shù)據(jù)庫還原時(shí)間以及降低數(shù)據(jù)損失數(shù)量。例如對(duì)于一個(gè)數(shù)據(jù)經(jīng)常變化的數(shù)據(jù)庫,可采用以下的備份方案:,有規(guī)律地進(jìn)行數(shù)據(jù)庫的完全備份,例如每天夜里零點(diǎn)進(jìn)行備份。,較小的時(shí)間間隔進(jìn)行差異備份,例如每個(gè)小時(shí)進(jìn)行一次。,在相臨的兩次差異備份之間進(jìn)行事務(wù)日志備份,可以每5分鐘或10分鐘進(jìn)行一次。,當(dāng)數(shù)據(jù)庫發(fā)生故障時(shí),若想數(shù)據(jù)庫能還原到數(shù)據(jù)庫失敗的那一時(shí)刻,這時(shí)應(yīng)該采用下面的方法:,如果能夠訪問數(shù)據(jù)庫事務(wù)日志文件,則應(yīng)備份當(dāng)前正處于活動(dòng)狀態(tài)的事務(wù)日志。,還原最近一次完全備份。,還原最近一次差異備份。,按順序還原自差異備份以來進(jìn)行的事務(wù)日志備份。,注意:若數(shù)據(jù)庫失敗時(shí),無法備份當(dāng)前數(shù)據(jù)庫正在進(jìn)行的事務(wù),則只能把數(shù)據(jù)庫還原到最近一次事務(wù)日志備份的狀態(tài),而不是數(shù)據(jù)庫的失敗點(diǎn)。此時(shí)可通過其它的手段來使數(shù)據(jù)庫還原到失敗點(diǎn),如每筆業(yè)務(wù)打印的單據(jù)或填寫的表格等。,(4)文件和文件組備份。當(dāng)數(shù)據(jù)庫非常龐大時(shí),可執(zhí)行數(shù)據(jù)庫文件或文件組備份。這種備份策略使用戶只還原已損壞的文件或文件組,而不用還原數(shù)據(jù)庫的其余部分。文件和文件組備份通常和事務(wù)日志備份聯(lián)合起來使用,文件和文件組備份后還要進(jìn)行事務(wù)日志備份,以反映文件或文件組備份后的數(shù)據(jù)變化。,8.3.2 數(shù)據(jù)庫還原模式,數(shù)據(jù)庫還原是和數(shù)據(jù)庫備份相對(duì)應(yīng)的操作,它是將數(shù)據(jù)庫備份重新加載到系統(tǒng)中的過程。數(shù)據(jù)庫還原可以創(chuàng)建備份完成時(shí)數(shù)據(jù)庫中存在的相關(guān)文件,但是備份以后的所有數(shù)據(jù)庫修改都將丟失。,SQL Server提供了3種數(shù)據(jù)庫還原模式:簡(jiǎn)單還原(Simple Recovery)、完全還原(Full Recovery)、大容量日志記錄還原(Bulk-Logged Recovery)。,8.3.2 數(shù)據(jù)庫還原模式,1. 簡(jiǎn)單還原模式,簡(jiǎn)單還原模式可以將數(shù)據(jù)庫還原到上次備份處,但是無法將數(shù)據(jù)庫還原到故障點(diǎn)或待定的即時(shí)點(diǎn)。它常用于還原最新的數(shù)據(jù)庫的完全備份和差

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論