信息系統(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ù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

5、修改。 用戶在開發(fā)數(shù)據(jù)庫應用程序時,可根據(jù)數(shù)據(jù)處理需要自己定義事務。 Begin Transaction事務的定義開始; Commit Transaction提交事務; RollBack Transaction取消事務。 【例4-71】將4-70的SQL操作定義為一個事務,假定退學學生學號為”05101108”,歷史學生信息表為T_HistoryStudent,歷史學生成績表為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該事務如果有其中任何一條語句執(zhí)行錯誤,事務會回滾來撤消已執(zhí)行的語句對數(shù)據(jù)庫的更新操作結(jié)果。4.7.2 并發(fā)控制 2)數(shù)據(jù)獲取錯誤:當一個事務恰好讀取了另一個事務在回滾之前修改的數(shù)據(jù),那么這個數(shù)據(jù)與數(shù)據(jù)庫的實際數(shù)據(jù)不

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

31、用戶已設定內(nèi)容進行重新編輯;選擇“刪除”便可刪除該登錄用戶。 【例4-79】創(chuàng)建一個名稱為“Wanghong”的SQL Server認證帳號,并為其設置密碼“123456”,設置其默認訪問的數(shù)據(jù)庫為School。 2) 創(chuàng)建登錄賬號 (4)數(shù)據(jù)庫系統(tǒng)角色管理和權(quán)限管理 角色可以簡化其安全管理。 將一組用戶歸類為一個角色,通過對角色的數(shù)據(jù)訪問權(quán)限和操作權(quán)限管理,自動實現(xiàn)對屬于該角色的所有用戶成員的權(quán)限管理。 一個用戶可以是任意多個角色的成員,同時持有每個角色的權(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中有兩類預定義角色:即固定服務器角色和固定數(shù)據(jù)庫角色。這兩個角色具有系統(tǒng)級別或數(shù)據(jù)庫級的操作權(quán)限,如果有用戶需要這些權(quán)限,則必須將其帳戶添加到這些預定義角色。另外,數(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)建一個名稱為“Teacher”的數(shù)據(jù)庫角色,設置其對所有表具有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ù)庫各個對象(除表T_Grade外)的操作權(quán)限,單擊可在授權(quán)、禁止與撤消之間切換,如圖4-97c)所示。 :授予權(quán)限。表示授予該項操作權(quán)限。:禁止權(quán)限。表示禁止該項操作權(quán)限,且該禁止不能被其他角色的權(quán)限覆蓋??眨撼废麢?quán)限。表示不能執(zhí)行該項操作,但可被其他角色的權(quán)限覆蓋。1) 在數(shù)據(jù)庫角色屬性對話框中選擇T_Grade,如圖4-98a);然后選擇窗體下部【列】按鈕,設置各個列的操作權(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論