信息系統(tǒng)與數(shù)據(jù)庫技術(shù):4.7_SQL Server數(shù)據(jù)庫管理_第1頁
信息系統(tǒng)與數(shù)據(jù)庫技術(shù):4.7_SQL Server數(shù)據(jù)庫管理_第2頁
信息系統(tǒng)與數(shù)據(jù)庫技術(shù):4.7_SQL Server數(shù)據(jù)庫管理_第3頁
信息系統(tǒng)與數(shù)據(jù)庫技術(shù):4.7_SQL Server數(shù)據(jù)庫管理_第4頁
信息系統(tǒng)與數(shù)據(jù)庫技術(shù):4.7_SQL Server數(shù)據(jù)庫管理_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、4.7數(shù)據(jù)庫管理與保護(hù) 數(shù)據(jù)庫運(yùn)行的最小邏輯工作單位是事務(wù),所有對數(shù)據(jù)庫的操作,都以事務(wù)作為一個(gè)整體來執(zhí)行或撤銷。 數(shù)據(jù)庫管理系統(tǒng)以事務(wù)為基礎(chǔ)對數(shù)據(jù)庫提供了一些監(jiān)控和管理功能,這些管理和保護(hù)技術(shù)主要包括:并發(fā)控制數(shù)據(jù)庫恢復(fù)完整性控制安全性控制 4.7.1 事務(wù)管理 事務(wù)的概念 事務(wù):一個(gè)邏輯工作單元的數(shù)據(jù)庫操作集合,稱為事務(wù)。事務(wù)由一條或多條SQL語句構(gòu)成。一個(gè)應(yīng)用程序可以包含多個(gè)事務(wù)?!纠吭赟chool數(shù)據(jù)庫中完成一個(gè)學(xué)生退學(xué)的操作可以定義為一個(gè)事務(wù),該操作包括:將成績表中該生相關(guān)課程和成績記錄寫入歷史成績表; 刪除成績表中該生相關(guān)記錄;將該生信息寫入歷史學(xué)生信息表; 刪除學(xué)生表中該生的記

2、錄; 如果多條SQL語句其中某些沒有正確執(zhí)行,那么數(shù)據(jù)庫中的信息就可能會不一致。若把這些操作定義為一個(gè)事務(wù),那么如果有語句執(zhí)行錯(cuò)誤,所有已經(jīng)執(zhí)行的語句都會回滾,恢復(fù)該事務(wù)執(zhí)行前的狀態(tài),因此,這些語句要么所有都執(zhí)行成功,要么所有執(zhí)行失敗,就可以避免數(shù)據(jù)的不一致。2事務(wù)的特性 事務(wù)具有原子性(Atomic)、一致性(Consistency)、隔離性(Isolation)和持久性(Durabiliy)四個(gè)特性,簡稱ACID。 事務(wù)的原子性:指組成一個(gè)事務(wù)的多個(gè)數(shù)據(jù)庫操作是一個(gè)不可分隔的原子單元,只有所有的操作執(zhí)行成功,整個(gè)事務(wù)才被提交。事務(wù)的一致性:指事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài),仍

3、然滿足相關(guān)約束規(guī)則,以保持所有數(shù)據(jù)的完整性。 事務(wù)的隔離性:指當(dāng)有多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),彼此互不干擾,與它們先后單獨(dú)執(zhí)行時(shí)的結(jié)果一樣。事務(wù)的持久性:指一個(gè)事務(wù)完成之后,它對于數(shù)據(jù)庫的所有修改永久性有效,即使出現(xiàn)系統(tǒng)故障造成數(shù)據(jù)錯(cuò)誤或丟失也能恢復(fù)。 3. SQL Server的事務(wù)管理機(jī)制 SQL Server通過強(qiáng)制事務(wù)管理和事務(wù)處理,保證每個(gè)事務(wù)符合ACID特性。主要管理機(jī)制有以下幾個(gè)方面: 鎖定機(jī)制:通過加鎖使事務(wù)相互隔離,保持事務(wù)的隔離性,支持多個(gè)事務(wù)并發(fā)執(zhí)行。 記錄機(jī)制:將事務(wù)的執(zhí)行記錄在事務(wù)日志文件中,保證事務(wù)的持久性。即使服務(wù)器硬件、操作系統(tǒng)或SQL Server自身出現(xiàn)故障,SQL

4、 Server 也可以在重新啟動時(shí)使用事務(wù)日志,將所有未完成的事務(wù)自動地回滾到系統(tǒng)出現(xiàn)故障的位置。 強(qiáng)制管理:強(qiáng)制保持事務(wù)的原子性和一致性。事務(wù)啟動之后,就必須成功完成,否則SQL Server將撤消該事務(wù)啟動之后對數(shù)據(jù)所作的所有修改。 4事務(wù)的定義和應(yīng)用 數(shù)據(jù)庫管理系統(tǒng)可以按照系統(tǒng)默認(rèn)的規(guī)定自動劃分事務(wù)并強(qiáng)制管理,一般一條語句就是一個(gè)事務(wù)。 例如:修改School的T_Student表,將所有女生是否住校LiveInDom設(shè)置為1。UPDATE T_Student SET LiveInDom=1 WHERE Sex=女 這條語句影響表中多行數(shù)據(jù),系統(tǒng)通過事務(wù)保證該語句正確完成對所有相關(guān)記錄的

5、修改。 用戶在開發(fā)數(shù)據(jù)庫應(yīng)用程序時(shí),可根據(jù)數(shù)據(jù)處理需要自己定義事務(wù)。 Begin Transaction事務(wù)的定義開始; Commit Transaction提交事務(wù); RollBack Transaction取消事務(wù)。 【例4-71】將4-70的SQL操作定義為一個(gè)事務(wù),假定退學(xué)學(xué)生學(xué)號為”05101108”,歷史學(xué)生信息表為T_HistoryStudent,歷史學(xué)生成績表為T_HistoryGrade。 Begin TransactionINSERT INTO T_HistoryGrade SELECT * FROM T_Grade WHERE StudentCode=05101108 D

6、ELETE FROM T_Grade WHERE StudentCode=05101108 INSERT INTO T_HistoryStudent SELECT * FROM T_Student WHERE StudentCode=05101108 DELETE FROM T_Student WHERE StudentCode=05101108 Commit Transaction該事務(wù)如果有其中任何一條語句執(zhí)行錯(cuò)誤,事務(wù)會回滾來撤消已執(zhí)行的語句對數(shù)據(jù)庫的更新操作結(jié)果。4.7.2 并發(fā)控制 2)數(shù)據(jù)獲取錯(cuò)誤:當(dāng)一個(gè)事務(wù)恰好讀取了另一個(gè)事務(wù)在回滾之前修改的數(shù)據(jù),那么這個(gè)數(shù)據(jù)與數(shù)據(jù)庫的實(shí)際數(shù)據(jù)不

7、符合,該數(shù)據(jù)被稱為“臟數(shù)據(jù)”。 3)不可重讀:一個(gè)事務(wù)讀取某數(shù)據(jù)后,該數(shù)據(jù)被另一事務(wù)更新,當(dāng)該事務(wù)再讀該數(shù)據(jù)進(jìn)行校驗(yàn)時(shí),數(shù)據(jù)不一致。1. 并發(fā)訪問問題 1)丟失修改:當(dāng)兩個(gè)事務(wù)同時(shí)對同一數(shù)據(jù)修改時(shí),最后只有一個(gè)生效,另一個(gè)修改丟失。允許數(shù)據(jù)庫中的相同數(shù)據(jù)同時(shí)被多個(gè)事務(wù)訪問。 例:兩人同時(shí)定機(jī)票,修改剩余機(jī)票數(shù)。例如,一個(gè)定票事務(wù)修改了剩余機(jī)票數(shù)后回滾,另一事務(wù)恰在其回滾前讀取剩余機(jī)票,事務(wù)就獲取了“臟數(shù)據(jù)”。 2. 鎖定管理 數(shù)據(jù)庫通過鎖定機(jī)制解決并發(fā)訪問的問題。 鎖定可以防止用戶讀取正在由其他用戶更改的數(shù)據(jù),并可以防止多個(gè)用戶同時(shí)更改相同數(shù)據(jù),解決數(shù)據(jù)庫并發(fā)訪問所帶來的數(shù)據(jù)不一致問題。 鎖定

8、管理包括:加鎖、鎖定和解鎖。 事務(wù)在訪問某數(shù)據(jù)對象之前,向系統(tǒng)申請加鎖,加鎖的數(shù)據(jù)對象在被其它事務(wù)訪問時(shí)受到限制,待事務(wù)完成后鎖被釋放。 3. SQL Server的鎖粒度和鎖模式 SQL Server具有多粒度鎖定,允許一個(gè)事務(wù)鎖定不同類型的數(shù)據(jù)對象。 鎖定在較小的粒度(例如行)可以增加系統(tǒng)并發(fā)訪問能力但需要較大的系統(tǒng)開銷;鎖定在較大的粒度就并發(fā)而言是相當(dāng)昂貴的,但要求的系統(tǒng)開銷較低,因?yàn)樾枰S護(hù)的鎖較少。 系統(tǒng)根據(jù)事務(wù)自動確定鎖定粒度并實(shí)施鎖定:表4-18 SQL Server可以鎖定的資源粒度(按粒度增加的順序列出)資 源描 述行鎖定表中的一條記錄關(guān)鍵字鎖定記錄的集合,是索引中的行鎖頁對

9、一個(gè)數(shù)據(jù)頁或索引頁鎖定,每頁大小8 KB 區(qū)域?qū)ο噜彽?個(gè)數(shù)據(jù)頁或索引頁構(gòu)成的一組數(shù)據(jù)鎖定表對包括所有數(shù)據(jù)和索引在內(nèi)的整個(gè)表鎖定數(shù)據(jù)庫對整個(gè)數(shù)據(jù)庫鎖定 SQL Server 使用不同的鎖模式鎖定資源,這些鎖模式用于確定并發(fā)事務(wù)訪問資源的方式。表4-19 SQL Server使用的鎖模式鎖模式描 述共享鎖在不更改或不更新數(shù)據(jù)的操作(只讀操作)時(shí)使用,如 SELECT 語句。有共享鎖存在時(shí),任何其他事務(wù)不能修改數(shù)據(jù),一旦讀數(shù)據(jù)結(jié)束,釋放共享鎖更新鎖用于可更新的資源中。防止當(dāng)多個(gè)會話在資源操作時(shí)發(fā)生死鎖,更新鎖在修改數(shù)據(jù)時(shí)可以升級為獨(dú)占鎖,在沒有修改操作時(shí)降為共享鎖獨(dú)占鎖用于數(shù)據(jù)修改操作,如 INS

10、ERT、UPDATE 或 DELETE,確保不會同時(shí)對同一資源進(jìn)行多重更新意向鎖防止其他事務(wù)對某個(gè)數(shù)據(jù)單元加獨(dú)占鎖結(jié)構(gòu)鎖在執(zhí)行對表結(jié)構(gòu)操作時(shí)使用,當(dāng)執(zhí)行 DDL語言時(shí),使用Sch-M鎖定,其他情況使用Sch-S鎖定大容量更新鎖向表中大容量復(fù)制數(shù)據(jù)并指定了 TABLOCK 提示時(shí)使用4. SQL Server的并發(fā)控制方式 (1)樂觀并發(fā)控制:樂觀并發(fā)控制假定不太可能在多個(gè)用戶間發(fā)生資源沖突,允許不鎖定任何資源而執(zhí)行事務(wù)。 (2)悲觀并發(fā)控制:系統(tǒng)使用鎖阻止事務(wù)執(zhí)行可能對其他事務(wù)產(chǎn)生負(fù)面影響的操作。默認(rèn)使用悲觀并發(fā)控制。SQL Server不必由用戶指定和配置就可以自動動態(tài)確定每個(gè)SQL語句的鎖

11、的級別和執(zhí)行鎖定。但用戶仍可以通過以下方法自定義應(yīng)用程序中的鎖定:處理死鎖和設(shè)置死鎖優(yōu)先級。 處理超時(shí)和設(shè)置鎖超時(shí)持續(xù)時(shí)間。 設(shè)置事務(wù)隔離級別。對 SELECT、INSERT、UPDATE 和 DELETE 語句使用表級鎖定提示。 配置索引的鎖定粒度。 游標(biāo)設(shè)置 5. SQl Server的鎖查看 可以使用SQL Server企業(yè)管理器查看當(dāng)前的鎖。 “控制臺根目錄”“已注冊的數(shù)據(jù)庫”“管理”“當(dāng)前活動”。展開“鎖/進(jìn)程 ID”可以查看每個(gè)連接的當(dāng)前鎖,展開“鎖/對象”可以查看每個(gè)對象的當(dāng)前鎖 圖4-70 SQL Server企業(yè)管理器中的鎖查看功能4.7.3 數(shù)據(jù)庫備份和恢復(fù) 磁盤的物理損壞

12、、系統(tǒng)癱瘓、惡意破壞、數(shù)據(jù)操作失誤等都有可能造成數(shù)據(jù)庫損毀、數(shù)據(jù)不正確或部分?jǐn)?shù)據(jù)丟失等。1備份的對象:(1) 數(shù)據(jù)庫本身。一個(gè)數(shù)據(jù)庫的每次備份都產(chǎn)生一個(gè)獨(dú)立的數(shù)據(jù)庫備份文件,它是數(shù)據(jù)庫恢復(fù)的基礎(chǔ)。(2) 事務(wù)日志。對每一個(gè)數(shù)據(jù)庫的事務(wù)日志的每次備份都會產(chǎn)生一個(gè)獨(dú)立的日志備份文件。 備份:用來還原和恢復(fù)數(shù)據(jù)庫的資料副本稱為備份。 2備份的介質(zhì) 備份一般需要較大容量的存儲設(shè)備,常用的備份介質(zhì):(1) 磁盤設(shè)備 (2) 磁帶設(shè)備 3備份策略的選擇 完整數(shù)據(jù)庫備份 備份是數(shù)據(jù)庫的完整復(fù)本,可用它重建或恢復(fù)到備份時(shí)刻的數(shù)據(jù)庫狀態(tài)。占用存儲空間大,備份所需時(shí)間較長。無法恢復(fù)到故障點(diǎn)。 (4)文件和文件組備

13、份 當(dāng)一次進(jìn)行完整數(shù)據(jù)庫備份占據(jù)過大資源或耗時(shí)太長時(shí),可以對部分?jǐn)?shù)據(jù)庫文件或文件組進(jìn)行備份。同時(shí)必須進(jìn)行單獨(dú)的事務(wù)日志備份。在恢復(fù)一個(gè)文件備份后,使用事務(wù)日志將文件內(nèi)容前滾,使其與數(shù)據(jù)庫其余部分一致。(3)事務(wù)日志備份 事務(wù)日志備份轉(zhuǎn)儲上一次數(shù)據(jù)庫備份之后的事務(wù)日志。在某一刻的數(shù)據(jù)庫備份恢復(fù)之后,進(jìn)一步依據(jù)事務(wù)日志前滾事務(wù)可恢復(fù)到最后一次備份事務(wù)日志中的某一時(shí)刻。如果在故障發(fā)生后,立即備份事務(wù)日志,可使數(shù)據(jù)庫恢復(fù)到故障發(fā)生的那一刻。事務(wù)日志備份占用的資源比較小。(2)數(shù)據(jù)庫差異備份 僅復(fù)制自上一次完整數(shù)據(jù)庫備份之后修改過的數(shù)據(jù)庫頁。所占空間小,備份速度快,可頻繁進(jìn)行。在完整數(shù)據(jù)庫備份恢復(fù)的基礎(chǔ)

14、上,差異備份能恢復(fù)數(shù)據(jù)庫到最后一次差異備份時(shí)刻,但無法恢復(fù)到故障點(diǎn)??删C合使用各種備份策略。一般至少包括數(shù)據(jù)庫備份和日志備份兩部分?!纠?-73】完整數(shù)據(jù)庫備份與事務(wù)日志備份相結(jié)合的備份策略應(yīng)用。 1)對School數(shù)據(jù)庫每天清晨0:00做完整備份,每隔4小時(shí)做事務(wù)日志備份; 2)如果某天上午11:00數(shù)據(jù)庫發(fā)生故障,使用完整數(shù)據(jù)庫備份可恢復(fù)到當(dāng)天0:00的數(shù)據(jù)庫狀態(tài),再使用日志可以恢復(fù)到上午8:00的數(shù)據(jù)庫狀態(tài); 3)如果在數(shù)據(jù)庫發(fā)生故障時(shí),數(shù)據(jù)庫管理系統(tǒng)可以工作,那么可以立即備份數(shù)據(jù)庫日志,使用這個(gè)日志就可以將數(shù)據(jù)庫恢復(fù)到故障點(diǎn)。 【例4-72】完整數(shù)據(jù)庫備份及可恢復(fù)性:對School數(shù)據(jù)

15、庫的完整備份。School數(shù)據(jù)庫每天清晨0:00做完整備份,如果某天上午11:00數(shù)據(jù)庫發(fā)生故障,使用完整數(shù)據(jù)庫備份只能恢復(fù)到當(dāng)天0:00的數(shù)據(jù)庫狀態(tài),當(dāng)天0:00到11:00對數(shù)據(jù)庫的操作全部丟失。 4數(shù)據(jù)庫恢復(fù) 數(shù)據(jù)庫恢復(fù)是與備份相對應(yīng)的操作,根據(jù)備份策略的不同可以選擇不同的恢復(fù)策略,常用的策略有:(2)完全恢復(fù) 依據(jù)數(shù)據(jù)庫備份和事務(wù)日志備份將數(shù)據(jù)庫恢復(fù)到任意的時(shí)刻點(diǎn)。 操作復(fù)雜,并且需要大量磁盤空間,對操作頻繁且數(shù)據(jù)恢復(fù)非常重要的數(shù)據(jù)庫才使用該策略。(1) 簡單恢復(fù) 依據(jù)完全數(shù)據(jù)庫備份和增量數(shù)據(jù)庫備份恢復(fù)數(shù)據(jù)庫到最后一次備份的執(zhí)行時(shí)刻。 操作簡單,備份操作點(diǎn)之后的數(shù)據(jù)丟失需要重建,適用于

16、規(guī)模較小或數(shù)據(jù)不經(jīng)常改變的數(shù)據(jù)庫。5SQL Server的數(shù)據(jù)庫備份和恢復(fù) (1) 人工進(jìn)行數(shù)據(jù)庫備份 在可視化環(huán)境下完成當(dāng)前時(shí)刻數(shù)據(jù)庫的備份,其主要步驟包括選擇備份數(shù)據(jù)庫、選擇備份策略、添加備份目的文件或設(shè)備、設(shè)置重寫方式等。 【例4-74】將School數(shù)據(jù)庫備份到磁盤文件D:SchoolBackup。 1) 選中數(shù)據(jù)庫并執(zhí)行備份菜單。或2) 選擇備份策略為完全備份,點(diǎn)擊添加按鈕設(shè)置備份的目的設(shè)備;在選擇備份目的窗口添加備份目的設(shè)備或文件,設(shè)置目的文件為:D:SchoolBackup。 3) 選擇重寫方式為重寫現(xiàn)有媒體,單擊【確定】按鈕開始備份,完成后出現(xiàn)提示對話框。 備份進(jìn)度和完成提示信

17、息(2) 系統(tǒng)定時(shí)自動進(jìn)行數(shù)據(jù)庫備份 使用數(shù)據(jù)庫維護(hù)計(jì)劃工具可以定義數(shù)據(jù)庫維護(hù)計(jì)劃,讓系統(tǒng)定時(shí)自動進(jìn)行數(shù)據(jù)庫備份。維護(hù)計(jì)劃每次執(zhí)行備份會根據(jù)當(dāng)時(shí)時(shí)間生成一個(gè)新的備份文件名存放備份。 【例4-75】建立一個(gè)數(shù)據(jù)庫維護(hù)計(jì)劃,將School數(shù)據(jù)庫每天0:00備份到磁盤目錄D:下,事務(wù)日志每隔4小時(shí)備份一次到磁盤目錄D:下。 選中數(shù)據(jù)庫并執(zhí)行數(shù)據(jù)庫維護(hù)計(jì)劃菜單。 選中要備份的數(shù)據(jù)庫School,單擊右鍵找到“所有任務(wù)/維護(hù)計(jì)劃”菜單;或選中數(shù)據(jù)庫School后使用菜單欄中“工具/數(shù)據(jù)庫維護(hù)計(jì)劃器”菜單。 2) 進(jìn)入數(shù)據(jù)選擇數(shù)據(jù)庫頁面,可以選擇需要備份的一個(gè)或幾個(gè)數(shù)據(jù)庫 。 3) 進(jìn)入“更新數(shù)據(jù)優(yōu)化信息

18、”頁面和“數(shù)據(jù)庫檢查”頁面,可以通過復(fù)選框選擇各項(xiàng)任務(wù)并更改作業(yè)調(diào)度計(jì)劃 。 a) b)圖4-75數(shù)據(jù)庫維護(hù)計(jì)劃選擇需備份的數(shù)據(jù)庫a) b)圖4-76數(shù)據(jù)庫備份作業(yè)調(diào)度計(jì)劃4)進(jìn)入“指定數(shù)據(jù)庫備份計(jì)劃”頁面,選擇【更改】按鈕,修改作業(yè)執(zhí)行的頻度的時(shí)間為“每天一次”,“發(fā)生于0:00”。 5) 進(jìn)入“指定磁盤備份目錄”頁面,設(shè)置備份文件存放的目錄位置 。 6) 進(jìn)入“指定事務(wù)日志備份計(jì)劃”,選擇【更改】按鈕進(jìn)入“編輯反復(fù)出現(xiàn)的作業(yè)調(diào)度”頁面,修改作業(yè)執(zhí)行的頻度和時(shí)間。 a) b)圖4-77指定磁盤備份目錄維護(hù)計(jì)劃菜單7) 進(jìn)入“指定事務(wù)日志的磁盤備份目錄”,默認(rèn)使用系統(tǒng)備份目錄在SQL Serv

19、er安裝目錄下,可修改存放位置。 a) b)圖4-79作業(yè)調(diào)度報(bào)表和數(shù)據(jù)庫維護(hù)計(jì)劃命名9) 進(jìn)入完成頁面,列出了通過向?qū)瓿傻乃袀浞萦?jì)劃設(shè)置,為維護(hù)計(jì)劃重新命名“School維護(hù)計(jì)劃1” ,然后點(diǎn)擊【完成】按鈕。 10) 如果數(shù)據(jù)庫維護(hù)計(jì)劃創(chuàng)建成功,會彈出提示對話框,如果不成功,會提示原因。使用數(shù)據(jù)庫維護(hù)計(jì)劃時(shí)要注意: SQL Server Agent必須啟動正常運(yùn)行。2)系統(tǒng)為數(shù)據(jù)庫、事務(wù)日志備份文件及作業(yè)調(diào)度報(bào)表文件自動命名,保證每次生成獨(dú)立的文件。 文 件文件命名格式(時(shí)間戳格式為YYYYMMDDHHMM)命名舉例數(shù)據(jù)庫備份文件數(shù)據(jù)庫名_db_時(shí)間戳.BakSchool_db_2007

20、11210000.Bak事務(wù)日志備份文件數(shù)據(jù)庫名_tlog_時(shí)間戳.trnSchool_tlog_200711210400. trn作業(yè)調(diào)度報(bào)表文件數(shù)據(jù)庫維護(hù)計(jì)劃名_時(shí)間戳.txt School維護(hù)計(jì)劃1_200711210000.txt3)可以使用數(shù)據(jù)庫服務(wù)器“管理/SQL Server代理”文件夾下的作業(yè)對象查看和修改數(shù)據(jù)庫維護(hù)計(jì)劃,并查看作業(yè)執(zhí)行情況。(3) 數(shù)據(jù)庫的恢復(fù) SQL Server 的數(shù)據(jù)庫恢復(fù)可以由數(shù)據(jù)庫管理員通過企業(yè)管理器提供的數(shù)據(jù)庫還原工具人工完成,還可使用SQL語句完成 ?!纠?-75】使用School備份文件School_db_200711210000.Bak 恢復(fù)

21、數(shù)據(jù)庫。 選中數(shù)據(jù)庫服務(wù)器并執(zhí)行數(shù)據(jù)庫維護(hù)計(jì)劃菜單。在控制臺根目錄窗格選中數(shù)據(jù)庫,點(diǎn)右鍵找到“所有任務(wù)/還原數(shù)據(jù)庫”菜單;或選中數(shù)據(jù)庫后使用菜單欄中“工具/還原數(shù)據(jù)庫”菜單; 2) 在“還原數(shù)據(jù)庫窗口”中,設(shè)置“還原為數(shù)據(jù)庫”的數(shù)據(jù)庫名,可以使用原數(shù)據(jù)庫名,也可重新命名。選擇“還原”的備份源,如果選擇“數(shù)據(jù)庫”,在顯示數(shù)據(jù)庫備份中選擇備份的數(shù)據(jù),只要將備份文件的復(fù)選框選中,按【確定】按鈕就開始數(shù)據(jù)庫恢復(fù)。圖4-83數(shù)據(jù)庫還原過程3) 如果在“還原數(shù)據(jù)庫”窗口選擇“還原”的備份源時(shí)選擇了“從設(shè)備”,則可選擇本服務(wù)器上任何磁盤或磁帶位置上存放的數(shù)據(jù)庫備份或日志備份文件進(jìn)行還原。圖4-84選擇從磁盤

22、或磁帶備份文件還原數(shù)據(jù)庫4) 如果還原的后數(shù)據(jù)庫文件和日志文件的位置與原位置不同,需要進(jìn)入”選項(xiàng)”窗口設(shè)置邏輯文件名及文件位置。當(dāng)把一臺數(shù)據(jù)庫服務(wù)器上生成的備份文件還原到另一臺服務(wù)器上時(shí),一般需要設(shè)置文件位置。6系統(tǒng)群集備份技術(shù) 群集備份技術(shù)采用網(wǎng)絡(luò)上兩個(gè)以上運(yùn)行著相同數(shù)據(jù)庫系統(tǒng)的服務(wù)器,當(dāng)一個(gè)服務(wù)器出現(xiàn)故障后,其它服務(wù)器接管該服務(wù)器繼續(xù)工作 。雙機(jī)熱備份技術(shù) :操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和應(yīng)用程序安裝在兩臺服務(wù)器的本地硬盤上,通過一個(gè)虛擬名稱對外服務(wù),某一時(shí)刻只有一臺處于活動狀態(tài)。系統(tǒng)信息以及數(shù)據(jù)庫數(shù)據(jù)同時(shí)寫入兩臺服務(wù)器,保證數(shù)據(jù)即時(shí)同步。雙機(jī)偵測軟件檢測到當(dāng)前活動的服務(wù)器故障發(fā)生時(shí)會自動激活

23、備份服務(wù)器接管服務(wù),保證系統(tǒng)服務(wù)不間斷。 7數(shù)據(jù)導(dǎo)入和導(dǎo)出 SQL Server通過數(shù)據(jù)轉(zhuǎn)換服務(wù) (Data Transformation Services,DTS)提供數(shù)據(jù)導(dǎo)入/導(dǎo)出功能,可實(shí)現(xiàn)在同類或異類OLE DB 和 ODBC數(shù)據(jù)源之間的數(shù)據(jù)導(dǎo)入、導(dǎo)出、驗(yàn)證以及轉(zhuǎn)換。 【例4-77】將School中班級表T_Class數(shù)據(jù)導(dǎo)出到Excel文件D:Class.xls。1) 選中數(shù)據(jù)庫,點(diǎn)右鍵找到“所有任務(wù)/導(dǎo)出數(shù)據(jù)”菜單,進(jìn)入DTS導(dǎo)入/導(dǎo)出/向?qū)醉?。 圖4-85數(shù)據(jù)導(dǎo)出菜單及向?qū)醉?) 分別在數(shù)據(jù)源窗口和目的窗口完成設(shè)置。選擇數(shù)據(jù)源為:SQL Server 的Microsoft

24、OLE DB提供程序,服務(wù)器為本機(jī)Local,數(shù)據(jù)庫為School)。選擇目的:Microsoft Excel 97-2000,文件名為D:Class。 3) 在指定表復(fù)制或查詢窗口選擇“從源數(shù)據(jù)庫復(fù)制表和視圖”;在選擇源表視圖窗口在復(fù)選框中選中要導(dǎo)出的數(shù)據(jù)表T_Class 。4)立即執(zhí)行或設(shè)置DTS調(diào)度計(jì)劃以便以后系統(tǒng)自動執(zhí)行。 圖4-89數(shù)據(jù)導(dǎo)出完成 數(shù)據(jù)導(dǎo)入/導(dǎo)出對象可以是表、視圖、存儲過程和約束等,一般一次可同時(shí)導(dǎo)入/導(dǎo)出多個(gè)對象。 8附加和分離數(shù)據(jù)庫 在復(fù)制數(shù)據(jù)庫前數(shù)據(jù)庫必須脫離SQL Server,只能實(shí)現(xiàn)脫機(jī)復(fù)制。 【例4-77】將School數(shù)據(jù)庫分離,然后將數(shù)據(jù)庫文件Scho

25、ol_Data.MDF復(fù)制為School_DataBak.MDF,再附加數(shù)據(jù)庫School_DataBak.MDF。 1)分離數(shù)據(jù)庫:在“數(shù)據(jù)庫”文件夾找到School數(shù)據(jù)庫,右擊選擇“所有任務(wù)/分離數(shù)據(jù)庫”菜單。 在“分離數(shù)據(jù)庫”對話框中,當(dāng)數(shù)據(jù)庫狀態(tài)顯示“該數(shù)據(jù)庫狀態(tài)已就緒,可以分離”時(shí),單擊【確定】按鈕。2)復(fù)制數(shù)據(jù)庫文件:利用Windows操作系統(tǒng)的“我的電腦”的文件復(fù)制功能將數(shù)據(jù)庫文件School_Data.MDF文件復(fù)制為School_DataBak.MDF 。3)附加數(shù)據(jù)庫:右擊“數(shù)據(jù)庫”,選擇“所有任務(wù)/附加數(shù)據(jù)庫”菜單。驗(yàn)證指定的數(shù)據(jù)庫文件是否正確 列出了數(shù)據(jù)庫中的所有文件列

26、出了文件的名稱和路徑 選擇要附加的數(shù)據(jù)庫文件名School_DataBak.MDF。輸入數(shù)據(jù)庫的名稱 4.7.4 數(shù)據(jù)庫安全性控制 廣義來講,數(shù)據(jù)庫系統(tǒng)安全性包括網(wǎng)絡(luò)系統(tǒng)安全性、操作系統(tǒng)安全性和數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)安全性等。 DBMS的安全性控制,主要是指保護(hù)數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。1數(shù)據(jù)安全控制技術(shù) (1)用戶標(biāo)識和認(rèn)證 :用戶名及口令驗(yàn)證。(2)訪問控制:DBMS通過授權(quán)可以定義合法用戶訪問數(shù)據(jù)庫內(nèi)各個(gè)對象的操作權(quán)限。訪問權(quán)限包括兩部分:數(shù)據(jù)對象:數(shù)據(jù)庫、表、字段、視圖、存儲過程等。數(shù)據(jù)操作:讀取、插入、修改、刪除、執(zhí)行存儲過程等。 (3)視圖機(jī)制 :

27、在DBMS中,為不同的用戶定義不同的視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)操作的用戶隱藏起來。(4)審計(jì)方法:審計(jì)可以跟蹤用戶的全部操作記錄下來放入審計(jì)日志文件中,可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。(5)數(shù)據(jù)加密 :根據(jù)一定的算法將原始數(shù)據(jù)(稱為明文)變換為不可直接識別的數(shù)據(jù)格式(稱為密文),從而使得不知道解密算法的人即使進(jìn)入數(shù)據(jù)庫也無法識別數(shù)據(jù)的內(nèi)容。2SQL Server的安全管理和控制 SQL Server 提供了對數(shù)據(jù)庫中的數(shù)據(jù)對象的授權(quán)用戶訪問控制,可以使用的安全技術(shù)包括身份驗(yàn)證模式、登錄、用戶、角色、授權(quán)、廢除和拒絕對象

28、上的權(quán)限以及數(shù)據(jù)加密等。 SQLServer在三個(gè)層次上進(jìn)行安全管理 :圖4-91數(shù)據(jù)庫安全管理的三個(gè)層次(1)SQL Server的身份認(rèn)證模式Windows認(rèn)證模式(集成身份認(rèn)證模式 )允許一個(gè)已登錄Windows的網(wǎng)絡(luò)用戶不必再提供一個(gè)單獨(dú)的登錄賬號就能登錄到該系統(tǒng)中的一個(gè)SQL Server服務(wù)器,從而實(shí)現(xiàn)SQL Server服務(wù)器與Windows登錄的安全集成SQL Server認(rèn)證模式。 用戶必須輸入有效的SQL Server登錄賬號及口令。這個(gè)登錄賬號是獨(dú)立于操作系統(tǒng)的登錄賬號的,從而可以在一定程度上避免操作系統(tǒng)層上對數(shù)據(jù)庫的非法訪問。圖4-92 登錄認(rèn)證模式設(shè)置(2)設(shè)置身份認(rèn)

29、證模式 系統(tǒng)在安裝時(shí)會詢問使用何種認(rèn)證模式, 也可使用企業(yè)管理器重設(shè)認(rèn)證模式:1)在企業(yè)管理器中右擊需要設(shè)置的SQL服務(wù)器,在彈出菜單中選擇“編輯SQL Server注冊屬性”命令。2)在右圖對話框的選擇認(rèn)證模式。 (3)登錄賬號管理 登錄賬號是服務(wù)器級用戶訪問數(shù)據(jù)庫系統(tǒng)的標(biāo)識,登錄賬號的信息是系統(tǒng)信息,存儲在master數(shù)據(jù)庫中。SQL Server有三個(gè)默認(rèn)的登錄賬號:sa被稱為系統(tǒng)管理員(System Administrator),在SQL Server系統(tǒng)中它擁有全部權(quán)限,可以執(zhí)行所有的操作。Builtin/Administrators是SQL Server為Windows操作系統(tǒng)系統(tǒng)

30、管理員提供的默認(rèn)賬號,在SQL Server系統(tǒng)中它擁有全部權(quán)限,可以執(zhí)行所有的操作。Guest:訪問系統(tǒng)的默認(rèn)用戶帳號。 使用企業(yè)管理器在SQL Server【安全性】文件夾中可以創(chuàng)建、查看和管理登錄賬號。查看 單擊“登錄”可以看到當(dāng)前數(shù)據(jù)庫服務(wù)器的合法登錄用戶的一些信息。 圖4-93 用戶帳號查看在新建登錄對話框中填寫名稱“Wanghong”,密碼“123456” ,選擇數(shù)據(jù)庫訪問標(biāo)簽后在可訪問的數(shù)據(jù)庫列表擇“School”,選擇常規(guī)標(biāo)簽后設(shè)置默認(rèn)訪問數(shù)據(jù)庫“School”。3)編輯或刪除登錄賬號 單擊“登錄”文件夾,在出現(xiàn)的顯示登錄賬號的窗口中,右擊需要操作的登錄號:選擇“屬性”便可對該

31、用戶已設(shè)定內(nèi)容進(jìn)行重新編輯;選擇“刪除”便可刪除該登錄用戶。 【例4-79】創(chuàng)建一個(gè)名稱為“Wanghong”的SQL Server認(rèn)證帳號,并為其設(shè)置密碼“123456”,設(shè)置其默認(rèn)訪問的數(shù)據(jù)庫為School。 2) 創(chuàng)建登錄賬號 (4)數(shù)據(jù)庫系統(tǒng)角色管理和權(quán)限管理 角色可以簡化其安全管理。 將一組用戶歸類為一個(gè)角色,通過對角色的數(shù)據(jù)訪問權(quán)限和操作權(quán)限管理,自動實(shí)現(xiàn)對屬于該角色的所有用戶成員的權(quán)限管理。 一個(gè)用戶可以是任意多個(gè)角色的成員,同時(shí)持有每個(gè)角色的權(quán)限,也可直接給用戶授權(quán),這些權(quán)限的累加就是該用戶的訪問權(quán)限集合。 圖4-96 數(shù)據(jù)庫角色、用戶及權(quán)限訪問權(quán)限管理示意圖表4-21 SQL

32、 Server主要數(shù)據(jù)對象和操作權(quán)限數(shù)據(jù)對象操作權(quán)限表、視圖、列(TABLE)SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES列SELECT, UPDATE存儲過程和函數(shù)EXECUTESQL Server中有兩類預(yù)定義角色:即固定服務(wù)器角色和固定數(shù)據(jù)庫角色。這兩個(gè)角色具有系統(tǒng)級別或數(shù)據(jù)庫級的操作權(quán)限,如果有用戶需要這些權(quán)限,則必須將其帳戶添加到這些預(yù)定義角色。另外,數(shù)據(jù)庫管理員也可根據(jù)需要為用戶定義新的數(shù)據(jù)庫角色。用戶自定義數(shù)據(jù)庫角色:根據(jù)需要為用戶定義新的數(shù)據(jù)庫角色。角色該角色成員的操作權(quán)限public每一用戶都自動成為該角色成員,無需指派,不能刪

33、除db_owner數(shù)據(jù)庫所有者可執(zhí)行數(shù)據(jù)庫中的任何操作常用固定數(shù)據(jù)庫角色:【例4-80】為School數(shù)據(jù)庫創(chuàng)建一個(gè)名稱為“Teacher”的數(shù)據(jù)庫角色,設(shè)置其對所有表具有Select權(quán)限,此外,對T_Course表還具有Insert、Update、Delete權(quán)限,禁止在T_Student和T_Class執(zhí)行Delete操作,對T_Grade表僅對Grade列具有Update權(quán)限,其他列具有Select權(quán)限。1)在企業(yè)管理器中打開要操作的數(shù)據(jù)庫文件夾,右擊“角色”文件夾,并在彈出的菜單中選擇“新建數(shù)據(jù)庫角色”命令,則出現(xiàn)新建數(shù)據(jù)庫角色對話框,填寫角色名稱“Teacher”信息后,單擊【確定】

34、按鈕即可完成角色創(chuàng)建。2)在角色文件夾下選擇Teacher角色,右擊可以彈出數(shù)據(jù)庫角色屬性對話框,按照需要選擇該角色對數(shù)據(jù)庫各個(gè)對象(除表T_Grade外)的操作權(quán)限,單擊可在授權(quán)、禁止與撤消之間切換,如圖4-97c)所示。 :授予權(quán)限。表示授予該項(xiàng)操作權(quán)限。:禁止權(quán)限。表示禁止該項(xiàng)操作權(quán)限,且該禁止不能被其他角色的權(quán)限覆蓋??眨撼废麢?quán)限。表示不能執(zhí)行該項(xiàng)操作,但可被其他角色的權(quán)限覆蓋。1) 在數(shù)據(jù)庫角色屬性對話框中選擇T_Grade,如圖4-98a);然后選擇窗體下部【列】按鈕,設(shè)置各個(gè)列的操作權(quán)限,按【確定】按鈕完成,如圖4-98b)。1)在企業(yè)管理器中打開要操作的數(shù)據(jù)庫文件夾,右擊“角色”文件夾,并在彈出的菜單中選擇“新建數(shù)據(jù)庫角色”命令,則出現(xiàn)新建數(shù)據(jù)庫角色對話框,填寫角色名稱“Teacher”信息后,單擊【確定】按鈕即可完成角色創(chuàng)建。2)在角色文件夾下選擇Teacher角色,右擊彈出數(shù)據(jù)庫

溫馨提示

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

最新文檔

評論

0/150

提交評論