13sqlserver數(shù)據(jù)庫(kù)系統(tǒng)安全控制_第1頁(yè)
已閱讀1頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、12.3 SQL Server數(shù)據(jù)庫(kù)系統(tǒng)安全控制,12.3.1 SQL Server數(shù)據(jù)庫(kù)系統(tǒng)體系結(jié)構(gòu)  1.SQL Server數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)介  SQL Server是由Sybase、Microsoft和Ashton-Tate聯(lián)合開(kāi)發(fā)的OS/2系統(tǒng)上的數(shù)據(jù)庫(kù)系統(tǒng),1988年正式投入使用。之后,Ashton-Tate、Sybase相繼退出,Microsoft公司則不斷推出SQL Server的升級(jí)版本。  SQL Server是基

2、于SQL客戶/服務(wù)器(C/S)模式的數(shù)據(jù)庫(kù)系統(tǒng),建立在Microsoft Windows NT以上版本的操作系統(tǒng)平臺(tái)上,提供強(qiáng)大的企業(yè)數(shù)據(jù)庫(kù)管理功能。,Microsoft SQL Server 2000數(shù)據(jù)庫(kù)系統(tǒng)是在Windows NT環(huán)境下開(kāi)發(fā)的一種關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),它具有大型數(shù)據(jù)庫(kù)的一些基本功能,支持事務(wù)處理功能、支持?jǐn)?shù)據(jù)加密、設(shè)置用戶組或用戶的密碼和權(quán)限等等。它為用戶提供了大規(guī)模聯(lián)機(jī)事務(wù)處理(OLTP)、數(shù)據(jù)倉(cāng)庫(kù)和電子商務(wù)應(yīng)用程序

3、所需的最新的優(yōu)秀數(shù)據(jù)庫(kù)平臺(tái)。,2.SQL Server數(shù)據(jù)庫(kù)系統(tǒng)安全體系結(jié)構(gòu)  所有SQL Server數(shù)據(jù)均存儲(chǔ)在數(shù)據(jù)庫(kù)文件中?! 奈锢砩峡?,SQL Server數(shù)據(jù)庫(kù)由多個(gè)文件組成。  但從邏輯上看,SQL Server數(shù)據(jù)庫(kù)由不同的數(shù)據(jù)庫(kù)對(duì)象組成,這些對(duì)象包括表、視圖、索引、規(guī)則、約束、默認(rèn)、存儲(chǔ)過(guò)程和觸發(fā)器等。普通用戶操作時(shí),他們通過(guò)數(shù)據(jù)庫(kù)對(duì)象訪問(wèn)數(shù)據(jù)庫(kù),而不是直接操數(shù)據(jù)庫(kù)文件。,SQL Server數(shù)據(jù)庫(kù)安全系統(tǒng)的構(gòu)架

4、建立在用戶和用戶組的基礎(chǔ)上?! QL Server允許直接使用Windows的本地組和全局組來(lái)組織SQL Server的用戶賬戶?! 〈送猓鬢indows用戶不屬于Windows組,仍可以作為Windows用戶或作為SQL Server用戶直接添加到SQL Server實(shí)例中?! QL Server 2000可以通過(guò)角色進(jìn)行安全設(shè)置。角色是為了進(jìn)行管理用戶而組織的用戶組,與Windows的組相同,但是當(dāng)?shù)葍r(jià)的Windows組

5、不存在時(shí),將在SQL Server中創(chuàng)建這些角色。,12.3.2 SQL Server數(shù)據(jù)庫(kù)系統(tǒng)的安全機(jī)制  SQL Server運(yùn)行在Windows系統(tǒng)上,除了操作系統(tǒng)提供的比較完善的安全管理措施以外,SQL Server本身也有自己的安全管理,通過(guò)檢查登錄名、賬號(hào)、角色、視圖、權(quán)限、數(shù)據(jù)庫(kù)加密以及審計(jì)等手段實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的安全性,支持觸發(fā)器和完整性約束實(shí)現(xiàn)數(shù)據(jù)的完整性控制、提供封鎖機(jī)制實(shí)現(xiàn)數(shù)據(jù)的并發(fā)控制,同時(shí)可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行不同類(lèi)

6、型的備份,數(shù)據(jù)庫(kù)數(shù)據(jù)遭到破壞時(shí)還原數(shù)據(jù)庫(kù)到以前某一時(shí)刻。,下面介紹SQL Server安全控制的相關(guān)操作?! ?.身份認(rèn)證  SQL Server系統(tǒng)的第一層安全就是登錄時(shí)的身份認(rèn)證。任何需要登錄SQL Server的用戶都需要一組服務(wù)器認(rèn)可的賬戶和密碼(該賬戶和密碼必須是事先在SQL Server中注冊(cè)的)。  SQL Server支持兩種身份驗(yàn)證模式: ?。?)Windows身份認(rèn)證模式  在該模式下,系統(tǒng)允許用戶通過(guò)W

7、indows用戶賬戶進(jìn)行連接。當(dāng)用戶通過(guò)Windows認(rèn)證并成功登錄后,用戶在連接數(shù)據(jù)庫(kù)時(shí),SQL Server直接接收用戶的連接請(qǐng)求。,(2)Windows身份認(rèn)證和SQL Server身份認(rèn)證混合模式  在該模式下,對(duì)于可信任連接用戶的連接請(qǐng)求,系統(tǒng)將采用Windows認(rèn)證模式,而對(duì)于非可信連接用戶則采用SQL Server認(rèn)證模式。SQL Server模式認(rèn)證要求用戶提供登錄賬戶名稱(chēng)和口令,當(dāng)?shù)卿涃~戶和口令通過(guò)認(rèn)證后,用戶應(yīng)用程

8、序才可連接到服務(wù)器,否則服務(wù)器將會(huì)拒絕用戶的連接請(qǐng)求。  在安裝SQL Server的過(guò)程中,會(huì)出現(xiàn)一個(gè)對(duì)話框,要求選擇用戶進(jìn)入系統(tǒng)的身份驗(yàn)證方式。在SQL Server數(shù)據(jù)庫(kù)下的應(yīng)用系統(tǒng),建議盡量選用混合認(rèn)證模式,它克服了Windows認(rèn)證機(jī)制中不能控制用戶訪問(wèn)數(shù)據(jù)庫(kù)權(quán)限的弊端,也解決了SQL Server認(rèn)證模式中,安全性能較低的不足。,(3)SQL Server也可以使用“企業(yè)管理器”創(chuàng)建登錄賬號(hào)并進(jìn)行身份驗(yàn)證方式的切換,具體操

9、作如下?! 、?創(chuàng)建服務(wù)器登錄賬號(hào)   1)打開(kāi)“企業(yè)管理器”,展開(kāi)“安全性”節(jié)點(diǎn),右擊“登錄”,會(huì)彈出快捷菜單,選擇“新建登錄”命令。  2)在彈出“登錄屬性”對(duì)話框中,有“常規(guī)”、“服務(wù)器角色”、“數(shù)據(jù)庫(kù)訪問(wèn)”三個(gè)選項(xiàng)卡?! ≡凇俺R?guī)”選項(xiàng)卡中,可以設(shè)置登錄賬號(hào)的名稱(chēng)、登錄賬號(hào)的身份認(rèn)證方式以及賬號(hào)默認(rèn)登錄的數(shù)據(jù)庫(kù)。,3)在“服務(wù)器角色”選項(xiàng)卡中,可以對(duì)該登錄賬號(hào)作為默認(rèn)登錄數(shù)據(jù)庫(kù)用戶的服務(wù)器角色的設(shè)置,即設(shè)置該賬號(hào)可執(zhí)行

10、的操作?! ?)在“數(shù)據(jù)庫(kù)訪問(wèn)”選項(xiàng)卡中,可以指定該賬號(hào)可以訪問(wèn)的其他數(shù)據(jù)庫(kù)以及各訪問(wèn)數(shù)據(jù)庫(kù)中的服務(wù)器角色的設(shè)置。  5)設(shè)置完各選項(xiàng)后,單擊“確定”按鈕,即完成了對(duì)登錄賬號(hào)的創(chuàng)建工作。,②查看修改、刪除登錄賬號(hào)  打開(kāi)“企業(yè)管理器”,展開(kāi)“安全性”節(jié)點(diǎn),單擊節(jié)點(diǎn)的子對(duì)象“登錄”,在右側(cè)窗口會(huì)出現(xiàn)已經(jīng)存在的登錄賬號(hào)、類(lèi)型、服務(wù)器訪問(wèn)、默認(rèn)數(shù)據(jù)庫(kù)、默認(rèn)語(yǔ)言等信息;右擊要查看或修改或刪除的登錄賬號(hào),從彈出的快捷菜單中選擇“屬性”命

11、令,在彈出的對(duì)話框中可以查看或直接進(jìn)行修改;  選擇“刪除”命令可刪除登錄賬號(hào)。,2.訪問(wèn)控制  要對(duì)數(shù)據(jù)進(jìn)行訪問(wèn),首先要擁有一個(gè)合法的用戶,當(dāng)用戶連接到SQL Server后,若要進(jìn)行任何涉及更改數(shù)據(jù)庫(kù)定義或訪問(wèn)數(shù)據(jù)的活動(dòng),都必須有相應(yīng)的權(quán)限,這個(gè)就是SQL Server系統(tǒng)安全控制的第二個(gè)層次:訪問(wèn)許可機(jī)制。  在SQL Server中,訪問(wèn)控制包括用戶管理、角色管理與權(quán)限管理。,(1)用戶管理  系統(tǒng)中有4個(gè)不同權(quán)限級(jí)

12、別的用戶,通過(guò)用戶權(quán)限,可有效的控制用戶對(duì)于數(shù)據(jù)庫(kù)的越權(quán)訪問(wèn)?! ∑渲邢到y(tǒng)管理員在SQL Server中具有最高權(quán)限,擁有數(shù)據(jù)庫(kù)的全部權(quán)限;  數(shù)據(jù)庫(kù)所有者用戶在其自己的數(shù)據(jù)庫(kù)上擁有全部權(quán)限,并可將權(quán)限授予其他用戶或收回;  數(shù)據(jù)庫(kù)對(duì)象擁有者則在其創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象中擁有全部權(quán)限,并可將權(quán)限授予其他用戶或收回;  作為普通用戶,除了極少的語(yǔ)句執(zhí)行權(quán)限之外,其他的權(quán)限只有靠其他用戶授權(quán)。,在SQL Server中,系統(tǒng)管理員由系統(tǒng)自

13、動(dòng)創(chuàng)建,只有一個(gè),默認(rèn)登錄名為sa。  數(shù)據(jù)庫(kù)用戶使用“企業(yè)管理器”進(jìn)行創(chuàng)建和修改,對(duì)于每個(gè)數(shù)據(jù)庫(kù)用戶權(quán)限的授予決定了該用戶的權(quán)限級(jí)別和可操作的對(duì)象?! ?shù)據(jù)庫(kù)用戶管理的具體操作如下:  ①打開(kāi)“企業(yè)管理器”,選擇需要?jiǎng)?chuàng)建用戶的數(shù)據(jù)庫(kù),單擊右鍵,在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)”用戶,將彈出“數(shù)據(jù)庫(kù)用戶屬性-新建用戶”對(duì)話框。,②在“新建用戶”對(duì)話框中,選擇新用戶的登錄名和用戶名,即可設(shè)置其數(shù)據(jù)庫(kù)角色。如果要新建一個(gè)登錄名,可

14、以打開(kāi)“登錄名”下拉列表框,選擇“新建”,在彈出“新建登錄”對(duì)話框中,按照新建登錄的步驟創(chuàng)建登錄用戶。  對(duì)于已經(jīng)創(chuàng)建好的用戶,選中并單擊右鍵,選擇快捷菜單中的“屬性”,將彈出“數(shù)據(jù)庫(kù)用戶屬性”對(duì)話框?! 、蹎螕簟皺?quán)限”按鈕,在彈出的“權(quán)限”設(shè)置對(duì)話框中,就可以對(duì)用戶的權(quán)限進(jìn)行設(shè)置或修改。,(2)角色管理  SQL Server中,角色分為服務(wù)器角色、數(shù)據(jù)庫(kù)角色和應(yīng)用程序角色?! ∑渲?,服務(wù)器角色負(fù)責(zé)整個(gè)SQL Server

15、服務(wù)器的訪問(wèn)權(quán)限,由系統(tǒng)自動(dòng)創(chuàng)建,不能增加或刪除,只能對(duì)其進(jìn)行修改;  數(shù)據(jù)庫(kù)角色只負(fù)責(zé)某個(gè)具體數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,具體分為固定數(shù)據(jù)庫(kù)角色、公共數(shù)據(jù)庫(kù)角色和自定義數(shù)據(jù)庫(kù)角色,用于將數(shù)據(jù)庫(kù)中擁有相同安全權(quán)限的用戶組合成組;  應(yīng)用程序角色分配給某一運(yùn)行在SQL Server上的應(yīng)用程序,授予角色的權(quán)限決定應(yīng)用程序的數(shù)據(jù)訪問(wèn)能力。它不包含任何用戶或組,必須有一個(gè)使用內(nèi)置存儲(chǔ)過(guò)程的應(yīng)用程序激活后,角色才有效。,SQL Server中使用“企

16、業(yè)管理器”對(duì)角色進(jìn)行管理,支持標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)角色和應(yīng)用程序角色的創(chuàng)建,并可對(duì)系統(tǒng)中所有的數(shù)據(jù)庫(kù)角色進(jìn)行用戶的添加和刪除?! 榱私巧陌踩芾恚到y(tǒng)不允許修改服務(wù)器角色和部分固定數(shù)據(jù)庫(kù)角色的權(quán)限,只可對(duì)公共數(shù)據(jù)庫(kù)角色、用戶自定義的數(shù)據(jù)庫(kù)角色、應(yīng)用程序角色進(jìn)行權(quán)限的設(shè)置和修改。,具體操作如下: ?、俅蜷_(kāi)“企業(yè)管理器”,選擇需要?jiǎng)?chuàng)建角色的數(shù)據(jù)庫(kù),右擊彈出快捷菜單,依次選擇“新建/數(shù)據(jù)庫(kù)角色”菜單命令,彈出“數(shù)據(jù)庫(kù)角色屬性-新建角色”對(duì)話框

17、。 ?、谛枰砑訕?biāo)準(zhǔn)角色時(shí),先在“名稱(chēng)”欄輸入需要添加的角色名稱(chēng),然后在“數(shù)據(jù)庫(kù)角色類(lèi)型”欄選擇“標(biāo)準(zhǔn)角色”,單擊“添加”按鈕,彈出“添加角色成員”對(duì)話框。 ?、圻x擇要添加為的這個(gè)角色的一個(gè)或多個(gè)用戶,單擊“確定”按鈕,返回到“數(shù)據(jù)庫(kù)角色屬性-新建角色”對(duì)話框,單擊“確定”即完成了標(biāo)準(zhǔn)角色以及該角色成員的創(chuàng)建工作。,需要添加應(yīng)用程序角色時(shí),先在“名稱(chēng)”欄輸入需要添加的角色名稱(chēng),然后在“數(shù)據(jù)庫(kù)角色類(lèi)型”欄選擇“應(yīng)用程序角色”,輸入該應(yīng)

18、用程序角色的密碼,單擊“確定”按鈕,即完成了應(yīng)用程序角色的創(chuàng)建工作?! 、芊祷亍捌髽I(yè)管理器”,選中剛剛建好的角色,右擊,在快捷菜單中選擇“屬性”,此時(shí),“權(quán)限”按鈕處于激活狀態(tài),單擊該按鈕,可對(duì)數(shù)據(jù)庫(kù)角色的對(duì)象設(shè)置它的權(quán)限?! 、輰?duì)角色的維護(hù)和管理可直接選中角色,單擊右鍵,選擇“屬性”,對(duì)角色的權(quán)限、所屬用戶進(jìn)行修改。,(3)權(quán)限管理  在SQL Server中,一共有三種權(quán)限,分別是對(duì)象權(quán)限、語(yǔ)句權(quán)限和隱含權(quán)限?! ?duì)象權(quán)限

19、決定用戶對(duì)數(shù)據(jù)庫(kù)中的表、存儲(chǔ)過(guò)程、視圖等數(shù)據(jù)庫(kù)對(duì)象所執(zhí)行的操作,包括SELECT、INSERT、UPDATE、DELETE、EXECLUTE等語(yǔ)句;  語(yǔ)句權(quán)限決定用戶是否可以在數(shù)據(jù)庫(kù)中創(chuàng)建或修改對(duì)象、執(zhí)行數(shù)據(jù)庫(kù)或事務(wù)日志備份;  隱含權(quán)限指系統(tǒng)預(yù)定義的服務(wù)器角色或數(shù)據(jù)庫(kù)擁有者和數(shù)據(jù)庫(kù)對(duì)象擁有者所擁有的權(quán)限,它不能明確地賦予和撤銷(xiāo)。,授予權(quán)限時(shí),系統(tǒng)使用T-SQL語(yǔ)句中的GRANT(授權(quán))、DENY(拒絕)、REMOVE(收回)三個(gè)

20、語(yǔ)句控制數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象權(quán)限,也可使用“企業(yè)管理器”分配其權(quán)限。  SQL Server在授權(quán)管理中,常常先創(chuàng)建角色,使用角色賦予數(shù)據(jù)庫(kù)用戶權(quán)限,便于對(duì)數(shù)據(jù)庫(kù)權(quán)限的管理。,3.視圖機(jī)制  SQL Server同樣支持視圖機(jī)制,可以采用三種方法創(chuàng)建視圖:使用Transact-SQL的CREATE VIEW語(yǔ)句,或者使用視圖創(chuàng)建向?qū)?,或者使用“企業(yè)管理器”來(lái)創(chuàng)建視圖?! ∠旅娼榻B使用視圖創(chuàng)建向?qū)?chuàng)建視圖  打開(kāi)“企業(yè)管理器”,選

21、中需要?jiǎng)?chuàng)建視圖的數(shù)據(jù)庫(kù),依次選擇工具欄中的“工具/向?qū)А泵?,彈出“選擇向?qū)А睂?duì)話框,雙擊展開(kāi)“數(shù)據(jù)庫(kù)”,選擇“創(chuàng)建視圖向?qū)А保瑔螕舸_定。根據(jù)彈出的對(duì)話框中的提示,一步一步設(shè)置視圖引用的數(shù)據(jù)庫(kù)、表以及是圖的名稱(chēng)、被視圖顯示的列、對(duì)視圖顯示信息要進(jìn)行的限制等信息,即可完成視圖的創(chuàng)建。,打開(kāi)“企業(yè)管理器”,選擇要需要修改視圖的數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)的下屬數(shù)據(jù)庫(kù)對(duì)象中選擇視圖,右擊鼠標(biāo),從彈出菜單中選中“設(shè)計(jì)視圖”,這樣就可以修改視圖定義了。 

22、 打開(kāi)“企業(yè)管理器”,單擊數(shù)據(jù)庫(kù)中的視圖,在右側(cè)窗口中,選中要?jiǎng)h除的視圖名,右擊鼠標(biāo),從彈出菜單中選中“刪除”菜單項(xiàng),即可以刪除視圖。,4.?dāng)?shù)據(jù)加密  在SQL Server中,可以對(duì)存儲(chǔ)的密碼和應(yīng)用程序角色密碼、作為網(wǎng)絡(luò)數(shù)據(jù)包而在客戶端和服務(wù)端發(fā)送的數(shù)據(jù)、存儲(chǔ)過(guò)程定義、用戶定義函數(shù)定義、視圖定義、觸發(fā)器定義、默認(rèn)值定義以及規(guī)則定義等內(nèi)容進(jìn)行加密。  (1)對(duì)登錄密碼的加密  SQL Server所有的登錄信息都存儲(chǔ)在master

23、數(shù)據(jù)庫(kù)的sysxlogins表中,其中password列存放的就是經(jīng)過(guò)加密之后的密碼,在內(nèi)部實(shí)現(xiàn)時(shí),使用一個(gè)名為pwdencrypt函數(shù)對(duì)登錄密碼加密,但是SQL Server中的這個(gè)加密沒(méi)有解密過(guò)程,只是提供了內(nèi)部函數(shù)pwdcompare進(jìn)行檢驗(yàn)輸入的內(nèi)容和加密前的內(nèi)容是否一致。,(2)對(duì)存儲(chǔ)過(guò)程、用戶定義函數(shù)、視圖、觸發(fā)器的加密  在SQL Server中創(chuàng)建以上對(duì)象時(shí),系統(tǒng)支持使用with encryption子句加密創(chuàng)建對(duì)象時(shí)

24、使用的文本,對(duì)用戶隱藏這些文本,并防止將過(guò)程作為SQL Server復(fù)制的一部分發(fā)布?! 。?)對(duì)客戶端和服務(wù)端發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包的加密  在SQL Server中啟用SSL加密可以加密該數(shù)據(jù),提高在SQL Server實(shí)例和應(yīng)用程序之間通過(guò)網(wǎng)絡(luò)交換數(shù)據(jù)的安全性。若沒(méi)用啟用SSL加密,則所有客戶端和服務(wù)段之間將以明文的方式傳輸。,5.?dāng)?shù)據(jù)庫(kù)審核  SQL Server審核的形式有多種,最簡(jiǎn)單的方法是審核“企業(yè)管理器”中的某一個(gè)檢查框

25、,而最復(fù)雜的情況是在數(shù)據(jù)庫(kù)表中添加一個(gè)數(shù)據(jù)庫(kù)觸發(fā)器,該觸發(fā)器會(huì)跟蹤數(shù)據(jù)的所有更改。  SQL Server中的標(biāo)準(zhǔn)或“注冊(cè)的”審核是通過(guò)SQL Server“企業(yè)管理器”中的一個(gè)簡(jiǎn)單的接口實(shí)現(xiàn)的,或者是通過(guò)Audit Level DMO屬性實(shí)現(xiàn)的。對(duì)那些更加高級(jí)的用戶,也可以通過(guò)注冊(cè)表,修改鍵值來(lái)啟用審核功能。,啟動(dòng)審核后,SQL Server會(huì)管理一個(gè)內(nèi)部審核日志,該日志既被寫(xiě)入SQL Server錯(cuò)誤日志,又被寫(xiě)入Windows應(yīng)

26、用程序事件日志。這些日志能準(zhǔn)確地確定哪個(gè)用戶正在訪問(wèn)或試圖訪問(wèn)SQL Server?! ≡赟QL Server中,標(biāo)準(zhǔn)審核需要通過(guò)“企業(yè)管理器”來(lái)啟用,具體操作步驟如下:  ①選擇想啟用審核的服務(wù)器,右擊該服務(wù)器,選擇“屬性”,在“屬性”對(duì)話框中,選擇“安全性”選項(xiàng)卡?! 、谠凇皩徍思?jí)別”欄選定想要選擇的審核級(jí)別并單擊“確定”按鈕。SQL Server中有四個(gè)不同的審核級(jí)別,,其中“無(wú)”表示通知SQL Server不在審核日志中

27、記錄有關(guān)登錄的任何信息(這是默認(rèn)設(shè)置);  “成功”表示通知SQL Server只在審核日志中記錄那些成功登錄的信息?!  笆 北硎就ㄖ猄QL Server只在審核日志中記錄那些沒(méi)有成功登錄的信息?!  叭俊北硎就ㄖ猄QL Server在審核日志中記錄那些成功登錄和那些沒(méi)有成功登錄的信息。,啟用審核后,可以檢查“企業(yè)管理器”中的審核日志,具體操作步驟如下:  打開(kāi)“企業(yè)管理器”并展開(kāi)包含目標(biāo)服務(wù)器的節(jié)點(diǎn)樹(shù),展開(kāi)“管理”

28、節(jié)點(diǎn)的“SQL Server日志”,單擊“當(dāng)前日志”。審核時(shí),需要注意檢查“源”列中值為“l(fā)ogon”的條目。,6.?dāng)?shù)據(jù)備份和恢復(fù)  在SQL Server系統(tǒng)中,可以使用SQL Server“企業(yè)管理器”或Transact-SQL語(yǔ)句兩種方式進(jìn)行數(shù)據(jù)庫(kù)的備份和恢復(fù)。  使用“企業(yè)管理器”,可以自行選擇要備份或恢復(fù)的具體數(shù)據(jù)庫(kù)、方式、備份的頻率和日期等;  而Transact-SQL語(yǔ)句主要是通過(guò)BACKUP DATABASE和

29、BACKUP LOG語(yǔ)句備份數(shù)據(jù)庫(kù)和日志,通過(guò)RESTORE DATABASE和RESTORE LOG語(yǔ)句恢復(fù)數(shù)據(jù)庫(kù)和日志。,(1)數(shù)據(jù)備份  SQL Server系統(tǒng)中需要對(duì)master數(shù)據(jù)庫(kù)、用戶自建的數(shù)據(jù)庫(kù)和msdb數(shù)據(jù)庫(kù)三個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行備份,它們分別記錄了系統(tǒng)中所有數(shù)據(jù)庫(kù)的信息,用戶記錄的業(yè)務(wù)信息以及報(bào)警、作業(yè)和操作員的信息。,為了適應(yīng)數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)刻需要更新的需要,SQL Server系統(tǒng)同時(shí)支持靜態(tài)備份和動(dòng)態(tài)備份,使用戶

30、在處理數(shù)據(jù)時(shí)也可以進(jìn)行備份,并針對(duì)不同的數(shù)據(jù)庫(kù)用戶,提供了四種備份方案:  ①完全備份(復(fù)制數(shù)據(jù)庫(kù)的所有表);  ②差異數(shù)據(jù)庫(kù)備份(只備份發(fā)生更改的數(shù)據(jù));  ③事務(wù)日志備份(備份事務(wù)日志);  ④數(shù)據(jù)庫(kù)文件備份(只備份特定的數(shù)據(jù)庫(kù)文件和文件組),(2)數(shù)據(jù)恢復(fù)  SQL Server的恢復(fù)機(jī)制有如下兩種:  一種是系統(tǒng)自動(dòng)執(zhí)行的恢復(fù),SQL Server系統(tǒng)在用戶對(duì)每個(gè)數(shù)據(jù)更改操作時(shí)都設(shè)置一個(gè)開(kāi)始點(diǎn)和一個(gè)結(jié)束點(diǎn),執(zhí)行該操作

31、前先把點(diǎn)標(biāo)記寫(xiě)入事務(wù)日志中,如果該操作沒(méi)有執(zhí)行到結(jié)束點(diǎn)就意外強(qiáng)行終止,當(dāng)下次重新啟動(dòng)SQL Server數(shù)據(jù)庫(kù)服務(wù)器時(shí),系統(tǒng)將根據(jù)事務(wù)日志文件中的記錄自動(dòng)恢復(fù)該操作已修改的數(shù)據(jù),返回到該操作前的狀態(tài)。  應(yīng)該注意,自動(dòng)恢復(fù)不能被關(guān)閉。,另一種是用戶執(zhí)行的恢復(fù),就是在系統(tǒng)出現(xiàn)故障時(shí),由管理員利用數(shù)據(jù)庫(kù)備份文件和日志備份文件,重新建立數(shù)據(jù)庫(kù)的恢復(fù)方式。這種恢復(fù)以數(shù)據(jù)備份為基礎(chǔ),可以選擇以下三種模型進(jìn)行恢復(fù):  ①簡(jiǎn)單恢復(fù):允許將數(shù)據(jù)庫(kù)恢

32、復(fù)到最新的備份?! 、谕耆謴?fù):允許將數(shù)據(jù)庫(kù)恢復(fù)到故障點(diǎn)狀態(tài)。 ?、叟咳罩居涗浕謴?fù):允許批量日志記錄恢復(fù)?! ∠旅娼榻B在SQL Server中使用“企業(yè)管理器”進(jìn)行數(shù)據(jù)備份和恢復(fù)。,(3)備份操作  在進(jìn)行數(shù)據(jù)庫(kù)備份之前,需要先創(chuàng)建備份設(shè)備,備份設(shè)備就是用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)、事務(wù)日志或文件和文件組備份的存儲(chǔ)介質(zhì)。SQL Server支持將數(shù)據(jù)庫(kù)備份到本地磁帶或機(jī)或本地硬盤(pán)。  操作步驟如下: ?、賳?dòng)“企業(yè)管理器”,登錄到想要

33、增加備份設(shè)備的服務(wù)器。打開(kāi)“管理”節(jié)點(diǎn),右擊“備份”,在彈出的快捷菜單中選擇“新建備份設(shè)備”菜單命令,將彈出“備份設(shè)備屬性-新設(shè)備”對(duì)話框。,②在“名稱(chēng)”文本框輸入設(shè)備名稱(chēng),在下面選擇備份設(shè)備的類(lèi)型。選擇“文件名”表示使用硬盤(pán)備份;選擇“磁帶驅(qū)動(dòng)器名”表示使用磁帶設(shè)備,只有創(chuàng)建的備份設(shè)備是與本地服務(wù)器相連的磁帶設(shè)備時(shí),該選項(xiàng)才可用。設(shè)置好之后,單擊“確定”即完成了備份設(shè)備的創(chuàng)建。,設(shè)置好備份設(shè)備就可以進(jìn)行數(shù)據(jù)庫(kù)的備份了?! 、蹎?dòng)“企

34、業(yè)管理器”,登錄到需要備份的數(shù)據(jù)庫(kù)服務(wù)器,打開(kāi)數(shù)據(jù)庫(kù)節(jié)點(diǎn),單擊需要備份的數(shù)據(jù)庫(kù)圖標(biāo),在彈出的快捷菜單中選擇“所有任務(wù)/備份數(shù)據(jù)庫(kù)”。 ?、茉趶棾龅摹癝QL Server備份”對(duì)話框中,  在“備份”選項(xiàng)組中可以選擇要進(jìn)行備份的類(lèi)型,分為數(shù)據(jù)庫(kù)完全備份、數(shù)據(jù)庫(kù)差異備份、事務(wù)日志備份以及文件和文件組備份;  在“目的”選項(xiàng)組中可選擇“添加”添加備份設(shè)備;,在“重寫(xiě)”選項(xiàng)組中,如果選擇“追加到媒體”,則將備份內(nèi)容添加到當(dāng)前設(shè)備之后,如果

35、選擇“重寫(xiě)現(xiàn)有媒體”,則將原備份覆蓋;  在“調(diào)度”選項(xiàng)組中可對(duì)備份的時(shí)間表進(jìn)行設(shè)置,單擊右面的按鈕改變備份的時(shí)間安排。   ⑤打開(kāi)“選項(xiàng)”選項(xiàng)卡可以進(jìn)行驗(yàn)證備份、檢查備份介質(zhì)是否可讀、備份后彈出磁帶等附加選項(xiàng)進(jìn)行設(shè)置。,除了“企業(yè)管理器”,SQL Server還支持使用備份向?qū)нM(jìn)行數(shù)據(jù)的備份。  具體步驟是:依次選擇主菜單上的“工具/向?qū)А辈藛雾?xiàng),在彈出的“選擇項(xiàng)向?qū)А睂?duì)話框中單擊“管理”,雙擊“備份向?qū)А?,之后按?/p>

36、向?qū)У奶崾具M(jìn)行備份的設(shè)置即可完成數(shù)據(jù)庫(kù)的備份。,(4)恢復(fù)操作  做了大量的數(shù)據(jù)庫(kù)備份工作之后,系統(tǒng)就可以在數(shù)據(jù)庫(kù)數(shù)據(jù)遭到破壞的時(shí)候,將數(shù)據(jù)庫(kù)恢復(fù)到從前某一個(gè)時(shí)刻的正常狀態(tài)?! 【唧w的操作步驟如下:  ①啟動(dòng)“企業(yè)管理器”,依次選擇主菜單中“工具/還原數(shù)據(jù)庫(kù)”菜單項(xiàng),彈出“還原數(shù)據(jù)庫(kù)”對(duì)話框。  在“常規(guī)”選項(xiàng)卡中,“還原為數(shù)據(jù)庫(kù)”下拉列表中可以選擇要恢復(fù)的數(shù)據(jù)庫(kù)?! ≡凇皡?shù)”選項(xiàng)組中可以選擇還原的設(shè)備、還原備份集、數(shù)據(jù)庫(kù)備

37、份類(lèi)型等?! 、谠凇斑x項(xiàng)”選項(xiàng)卡中可以進(jìn)行其他選項(xiàng)的設(shè)置。,7.完整性控制  SQL Server中數(shù)據(jù)完整性的控制是采用數(shù)據(jù)庫(kù)完整性約束機(jī)制,通過(guò)各種約束、默認(rèn)、規(guī)則和觸發(fā)器來(lái)實(shí)現(xiàn)的。  數(shù)據(jù)庫(kù)完整性約束機(jī)制,主要是對(duì)于數(shù)據(jù)庫(kù)中數(shù)據(jù)檢查其是否滿足語(yǔ)義的規(guī)定,從而實(shí)現(xiàn)數(shù)據(jù)的正確性和相容性,防止不合理數(shù)據(jù)造成無(wú)效操作和錯(cuò)誤結(jié)果。而且,這種約束是加在數(shù)據(jù)庫(kù)的表的定義上的,不需要額外書(shū)寫(xiě)代碼,代價(jià)小、性能高。  例如,SQL Serv

38、er在用戶程序每次對(duì)主鍵進(jìn)行插入、刪除、修改等更新操作時(shí),進(jìn)行完整性檢查,若此操作使主屬性列為“空值(NULL)”,或使主鍵值在表中不惟一,則拒絕此操作,保證數(shù)據(jù)的實(shí)體完整性;,限制數(shù)據(jù)類(lèi)型、值的范圍和數(shù)據(jù)的格式實(shí)施,保證數(shù)據(jù)的域完整性;  同時(shí)提供列值非空(NOT NULL),列值惟一(UNIQUE),檢查列值是否滿足一個(gè)布爾表達(dá)式(CHECK),觸發(fā)器創(chuàng)建(CREATE TRIGGER)等語(yǔ)句,檢查自定義完整性?! ≡赟QL S

39、erver中,觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,建立在表一級(jí),每個(gè)表最多可以建立3個(gè)觸發(fā)器(分別對(duì)應(yīng)INSERT、UPDATE和DELETE操作)。  在結(jié)構(gòu)上,觸發(fā)器獨(dú)立于表,但又隸屬于表,所以可被單獨(dú)刪除,但在刪除表時(shí)也將一同刪除關(guān)聯(lián)的觸發(fā)器。,觸發(fā)器不允許帶參數(shù),也不能被直接調(diào)用,只能由系統(tǒng)自動(dòng)激活。創(chuàng)建的觸發(fā)器信息保存在sysobjects系統(tǒng)表和syscomments系統(tǒng)中,SQL Server還可以將觸發(fā)器建立在視圖上,但不能為

40、系統(tǒng)表創(chuàng)建觸發(fā)器?! ∈褂谩捌髽I(yè)管理器”管理觸發(fā)器的操作步驟如下:  打開(kāi)“企業(yè)管理器”,展開(kāi)包含即將管理觸發(fā)器的表所屬的數(shù)據(jù)庫(kù),展開(kāi)表,右擊表名彈出快捷菜單,在快捷菜單的級(jí)聯(lián)菜單中選擇“管理觸發(fā)器”,打開(kāi)“觸發(fā)器屬性”對(duì)話框。,在“名稱(chēng)”欄中選擇“新建”或修改觸發(fā)器的名稱(chēng),在“文本”框中輸入觸發(fā)器的定義語(yǔ)句,具體定義格式為:CREATE TRIGGER trigger_nameON [owner.] {table | vie

41、w} [WITH ENCRYPTION]{FOR | AFTER | INSTEAD OF}{[DELETE] [,] [INSERT] [,] [UPDATE]}[WITH APPEND] [NOT FOR REPLICATION]AS Sql_statement […n]  輸入文本后,單擊“檢查語(yǔ)法”按鈕,可以檢查所輸入文本的語(yǔ)法是否正確。確定語(yǔ)法正確無(wú)誤后,單擊“確定”按鈕,即完成了觸發(fā)器的創(chuàng)建或修改。,8.并發(fā)控制

42、  SQL Server 2000中事務(wù)一般分為兩種,即系統(tǒng)自動(dòng)事務(wù)與用戶自定義事務(wù)。  系統(tǒng)自動(dòng)事務(wù)是指一條語(yǔ)句即為一個(gè)事務(wù);用戶定義事務(wù)即用戶明確定義的事務(wù)?! ≡诓l(fā)控制方面,SQL Server系統(tǒng)提供了多方位的鎖定機(jī)制,使事務(wù)相互隔離,提供6類(lèi)鎖實(shí)現(xiàn)對(duì)系統(tǒng)自動(dòng)事務(wù)和用戶自定義事務(wù)不同程度的操作控制,也限制只有具備兼容的鎖類(lèi)型才可以對(duì)已鎖定的資源進(jìn)行加鎖。同時(shí),系統(tǒng)也支持隔離級(jí)別,控制事務(wù)之間的隔離程度,確定事務(wù)使用的鎖定

43、行為。,(1)加鎖模式  SQL Server中支持6種加鎖模式,且限制只有相容的鎖類(lèi)型才可以放置在已鎖定的資源。 ?、俟蚕礞i(Shared Lock):允許并發(fā)事務(wù)讀取一個(gè)資源,一旦已經(jīng)讀取數(shù)據(jù),便立即釋放資源上的共享鎖。資源上存在共享鎖時(shí),任何其他事務(wù)都不能修改數(shù)據(jù)?! 、诟骆i(Update Lock):用于更新操作,一次只有一個(gè)事務(wù)可以獲得資源的更新鎖。如果事務(wù)修改資源,則更新鎖轉(zhuǎn)換為排他鎖,否則轉(zhuǎn)換為共享鎖。,③排他鎖(

44、Exclusive Lock):為修改數(shù)據(jù)而保留,與其他鎖不兼容,可以防止并發(fā)事務(wù)對(duì)資源進(jìn)行訪問(wèn)?! 、芤庀蜴i(Intent Lock):表示SQL Server打算在某資源的底層資源上獲取共享鎖或排他鎖,用于建立鎖的層次結(jié)構(gòu)。 ?、菁軜?gòu)鎖(Schema Lock):又分為架構(gòu)更新(Sch-M)鎖和架構(gòu)穩(wěn)定(Sch-S)鎖。執(zhí)行表的數(shù)據(jù)定義語(yǔ)言(DDL)操作時(shí)使用架構(gòu)更新鎖,編譯查詢(xún)時(shí)使用架構(gòu)穩(wěn)定性鎖。,⑥大容量更新鎖(Bulk U

45、pdate Lock):當(dāng)將數(shù)據(jù)大容量復(fù)制到表,并指定TabLock提示或使用sp_tableoption設(shè)置了tablelockonbulk表選項(xiàng)時(shí)使用,允許進(jìn)程將數(shù)據(jù)并發(fā)地大容量復(fù)制到同一表,同時(shí)防止其他不進(jìn)行大容量復(fù)制數(shù)據(jù)的進(jìn)程訪問(wèn)該表。,(2)隔離級(jí)別  SQL Server系統(tǒng)使用Set Transaction Isolation Level Read Committed語(yǔ)句設(shè)置事務(wù)隔離級(jí)別,支持SQL-92標(biāo)準(zhǔn)語(yǔ)法中的四種

46、隔離級(jí)別。但對(duì)于四種隔離級(jí)別給予了系統(tǒng)自己的定義和實(shí)現(xiàn)方式。,為了預(yù)防死鎖的發(fā)生,SQL Server還使用一個(gè)稱(chēng)為鎖監(jiān)視器線程的單獨(dú)的線程執(zhí)行進(jìn)行死鎖檢測(cè),采用終止循環(huán)中的一個(gè)參與者的方式解決死鎖。在選取死鎖犧牲品時(shí),SQL Server會(huì)查看所有的參與線程以及每個(gè)線程做了多少工作。  通常,SQL Server會(huì)選擇工作量最小的參與線程作為死鎖犧牲品。在SQL Server中回滾作為死鎖犧牲品的事務(wù),通知線程的應(yīng)用程序(返回120

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論