




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章數(shù)據(jù)庫安全4.1數(shù)據(jù)庫安全概述4.2數(shù)據(jù)庫安全技術(shù)4.3SQLServer數(shù)據(jù)庫管理系統(tǒng)的安全性習(xí)題
4.1數(shù)據(jù)庫安全概述
數(shù)據(jù)庫是長期存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上的、可供計(jì)算機(jī)快速檢索的、有組織的、可共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。隨著社會(huì)的不斷信息化,以數(shù)據(jù)庫為基礎(chǔ)的信息管理系統(tǒng)正在成為政府機(jī)關(guān)、軍事部門和企業(yè)單位的信息基礎(chǔ)設(shè)施。它的應(yīng)用涉及了幾乎所有的領(lǐng)域,人類社會(huì)將越來越依賴數(shù)據(jù)庫技術(shù),同時(shí),數(shù)據(jù)庫中存儲(chǔ)的信息的價(jià)值將越來越高,因而如何保證和加強(qiáng)其安全性和保密性,已成為目前迫切需要解決的熱門課題。4.1.1數(shù)據(jù)庫系統(tǒng)面臨的安全威脅
數(shù)據(jù)庫系統(tǒng)由計(jì)算機(jī)硬件、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序、數(shù)據(jù)庫管理員和用戶等部分組成,因此它所面臨的安全威脅可以歸納為以下幾點(diǎn)。
1.計(jì)算機(jī)硬件故障
數(shù)據(jù)的存儲(chǔ)離不開存儲(chǔ)介質(zhì),因而也就離不開硬件。當(dāng)支持?jǐn)?shù)據(jù)庫系統(tǒng)的硬件環(huán)境發(fā)生故障,如地震、水災(zāi)和火災(zāi)等自然或意外的事故會(huì)導(dǎo)致硬件損壞,進(jìn)而導(dǎo)致數(shù)據(jù)的損壞和丟失;硬盤損壞導(dǎo)致數(shù)據(jù)庫中數(shù)據(jù)讀不出來;無斷電保護(hù)措施而發(fā)生斷電時(shí),也將會(huì)造成信息的丟失。
2.軟件故障及漏洞
軟件方面的威脅主要體現(xiàn)在:
1)數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一個(gè)數(shù)據(jù)管理軟件。它擔(dān)負(fù)著防止不合法使用數(shù)據(jù)等數(shù)據(jù)安全性保護(hù)功能;保證數(shù)據(jù)的正確性、有效性和相容性的數(shù)據(jù)完整性控制功能;計(jì)算機(jī)系統(tǒng)的硬件、軟件故障、操作員的失誤以及人為攻擊和破壞時(shí)的數(shù)據(jù)庫恢復(fù)功能;讓多個(gè)用戶共享數(shù)據(jù)時(shí)的并發(fā)控制功能等。因此當(dāng)數(shù)據(jù)庫管理系統(tǒng)本身功能不夠完善,存在著漏洞,或者由于無法預(yù)料的故障時(shí),都有可能對數(shù)據(jù)庫系統(tǒng)的安全性構(gòu)成威脅。
2)應(yīng)用程序
具有數(shù)據(jù)庫操作功能的應(yīng)用程序提供了用戶操作數(shù)據(jù)庫中數(shù)據(jù)的平臺(tái),應(yīng)用程序設(shè)計(jì)不合理或是在運(yùn)行中發(fā)生錯(cuò)誤,都將導(dǎo)致庫中數(shù)據(jù)被篡改、竊取或損壞。
3.人為破壞
在整個(gè)數(shù)據(jù)庫系統(tǒng)中,始終離不開人為的干預(yù),人的因素對數(shù)據(jù)庫系統(tǒng)的安全構(gòu)成了最主要的威脅。
1)數(shù)據(jù)庫管理員
數(shù)據(jù)庫管理員對數(shù)據(jù)庫系統(tǒng)的操作權(quán)限最大,專業(yè)知識(shí)不夠,不能很好地利用數(shù)據(jù)庫的保護(hù)機(jī)制和安全策略,不能合理地分配用戶的權(quán)限,都可能會(huì)產(chǎn)生超過用戶應(yīng)有級別權(quán)限的情況發(fā)生。數(shù)據(jù)庫管理員的責(zé)任心不強(qiáng)、未能按時(shí)維護(hù)數(shù)據(jù)庫(備份、恢復(fù)、日志整理等),就會(huì)使數(shù)據(jù)庫的完整性受到威脅;未能堅(jiān)持審核審計(jì)日志,就不能及時(shí)發(fā)現(xiàn)并阻止黑客或惡意用戶對數(shù)據(jù)庫的攻擊。
2)合法用戶
許多成功的攻擊與受信任的用戶惡意或無意地訪問安全系統(tǒng)有關(guān)。不同用戶對數(shù)據(jù)庫的操作權(quán)限有所不同,某些用戶對數(shù)據(jù)庫操作的不當(dāng),也有可能在其并未意識(shí)到的情況下入侵了數(shù)據(jù)庫系統(tǒng),對其作了修改。還有些用戶可能是由于利益的驅(qū)使而修改數(shù)據(jù)庫中的數(shù)據(jù),從而使自己得到更多的利益。
3)非法用戶
非法用戶對數(shù)據(jù)庫系統(tǒng)的破壞往往帶有明確的作案動(dòng)機(jī)。他們有些是無惡意的入侵者,只是想通過攻入大家都認(rèn)為難以滲入的區(qū)域來證明他們的能力,得到同行的尊敬和認(rèn)可,但是所造成的后果卻往往是災(zāi)難性的;有些是內(nèi)部惡意用戶,比如被公司停職、解雇、降職或受到不公正待遇的用戶,他們出于報(bào)復(fù),竊取公司數(shù)據(jù)庫中關(guān)鍵的數(shù)據(jù),這些數(shù)據(jù)往往可能會(huì)轉(zhuǎn)移到競爭對手的手中;有些是工商業(yè)間諜,他們竊取公司或個(gè)人的最新研究成果,對其稍加修改后用以獲取巨額利益;還有一些網(wǎng)絡(luò)黑客,他們對網(wǎng)絡(luò)和數(shù)據(jù)庫的攻擊手段不斷翻新,并研究操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的漏洞,設(shè)計(jì)出千變?nèi)f化的網(wǎng)絡(luò)病毒,設(shè)法侵入系統(tǒng),直接威脅網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器的安全。4.1.2數(shù)據(jù)庫的安全
數(shù)據(jù)庫安全是指保護(hù)數(shù)據(jù)庫,以防止不合法的使用造成的數(shù)據(jù)泄密、更改或破壞,主要包括身份認(rèn)證、訪問控制、保密性、完整性、可審計(jì)性和可用性六方面要求。
1.用戶的身份認(rèn)證
用戶的身份是系統(tǒng)管理員為用戶定義的用戶名(也稱為用戶標(biāo)識(shí)、用戶帳號、用戶ID),并記錄在計(jì)算機(jī)系統(tǒng)或數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)中。用戶名是用戶在計(jì)算機(jī)系統(tǒng)中或DBMS中的唯一標(biāo)識(shí)。因此,一般不允許用戶自行修改用戶名。
身份認(rèn)證是指系統(tǒng)對輸入的用戶名與合法用戶名對照,鑒別此用戶是否為合法用戶。若是,則可以進(jìn)入下一步的核實(shí);否則,不能使用系統(tǒng)。因此,身份認(rèn)證技術(shù)是對進(jìn)入系統(tǒng)或網(wǎng)絡(luò)的用戶身份進(jìn)行驗(yàn)證,防止非法用戶進(jìn)入??梢酝ㄟ^身份鑒別、檢查口令或其他手段來檢查用戶的合法性。
2.訪問控制
訪問控制保證系統(tǒng)的外部用戶或內(nèi)部用戶對系統(tǒng)資源的訪問以及對敏感信息的訪問方式符合組織安全策略。它主要包括出入控制和存取控制。出入控制主要是阻止非授權(quán)用戶進(jìn)入機(jī)構(gòu)或組織。一般是以電子技術(shù)、生物技術(shù)或者電子技術(shù)與生物技術(shù)結(jié)合來阻止非授權(quán)用戶的進(jìn)入。存取控制指主體訪問客體時(shí)的存取控制,如通過對授權(quán)用戶存取系統(tǒng)敏感信息時(shí)進(jìn)行安全性檢查,以實(shí)現(xiàn)對授權(quán)用戶的存取權(quán)限的控制。與操作系統(tǒng)相比,數(shù)據(jù)庫的訪問控制要復(fù)雜得多。因?yàn)閿?shù)據(jù)庫中的記錄字段和元素是相互關(guān)聯(lián)的,用戶只能通過讀某些文件來確定其內(nèi)容,但卻有可能通過讀取數(shù)據(jù)庫中的其他某個(gè)元素來確定另一個(gè)元素。換句話說,用戶可以通過推理的方法從已知的記錄或字段間接獲取其他記錄或字段的值。通過推理訪問數(shù)據(jù)庫不需要對安全目標(biāo)的直接訪問權(quán),因此要限制一些推理,但是限制推理就意味著要禁止一些可能的推理路徑。通過限制訪問來限制推理,也可能限制了合法用戶的正常訪問,使他們感到數(shù)據(jù)庫訪問的效率不高。
3.數(shù)據(jù)庫的機(jī)密性
由于數(shù)據(jù)庫系統(tǒng)在操作系統(tǒng)下都是以文件形式進(jìn)行管理的,因此入侵者可以直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫文件,或者直接利用操作系統(tǒng)工具來非法偽造、篡改數(shù)據(jù)庫文件內(nèi)容。這種隱患一般數(shù)據(jù)庫用戶難以察覺,解決這一問題的有效方法之一是數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫文件進(jìn)行加密處理,使得即使數(shù)據(jù)不幸泄漏或者丟失,也難以被人破譯和閱讀。數(shù)據(jù)庫中進(jìn)行加密處理的時(shí)候會(huì)對數(shù)據(jù)的存取帶來一定的影響,而一個(gè)良好的數(shù)據(jù)庫加密系統(tǒng)不能因?yàn)榧用苁沟脭?shù)據(jù)庫的操作復(fù)雜化和影響數(shù)據(jù)庫系統(tǒng)的性能,所以應(yīng)該滿足以下四個(gè)基本要求。
(1)合理處理數(shù)據(jù)。首先要恰當(dāng)?shù)靥幚頂?shù)據(jù)類型,否則DBMS將會(huì)因加密后的數(shù)據(jù)不符合定義的數(shù)據(jù)類型而拒絕加載;其次,需要處理數(shù)據(jù)的存儲(chǔ)問題,實(shí)現(xiàn)數(shù)據(jù)庫加密后,應(yīng)基本上不增加空間開銷。在目前條件下,數(shù)據(jù)庫關(guān)系運(yùn)算中的匹配字段,如表間連接碼、索引字段等數(shù)據(jù)不宜加密。文獻(xiàn)字段雖然是檢索字段,但也應(yīng)該允許加密,因?yàn)槲墨I(xiàn)字段的檢索處理采用了有別于關(guān)系數(shù)據(jù)庫索引的正文索引技術(shù)。
(2)不影響合法用戶的操作。加密系統(tǒng)影響數(shù)據(jù)操作響應(yīng)的時(shí)間應(yīng)盡量短,在現(xiàn)階段,平均延遲時(shí)間不應(yīng)超過1/10秒。此外,對數(shù)據(jù)庫的合法用戶來說,數(shù)據(jù)的錄入、修改和檢索操作應(yīng)該是透明的,不需要考慮數(shù)據(jù)的加密/解密問題。
(3)字段加密。在目前條件下,加密/解密的粒度是每個(gè)記錄的字段數(shù)據(jù)。如果以文件或列為單位進(jìn)行加密,必然會(huì)形成密鑰的反復(fù)使用,從而降低加密系統(tǒng)的可靠性或者因加密/解密時(shí)間過長而無法使用。只有以記錄的字段數(shù)據(jù)為單位進(jìn)行加密/解密,才能適應(yīng)數(shù)據(jù)庫操作,同時(shí)進(jìn)行有效的密鑰管理并完成“一次一密”的密碼操作。
(4)密鑰動(dòng)態(tài)管理。數(shù)據(jù)庫客體之間隱含著復(fù)雜的邏輯關(guān)系,一個(gè)邏輯結(jié)構(gòu)可能對應(yīng)著多個(gè)數(shù)據(jù)庫物理客體,所以數(shù)據(jù)庫加密不僅密鑰量大,而且組織和存儲(chǔ)工作比較復(fù)雜,需要對密鑰實(shí)現(xiàn)動(dòng)態(tài)管理。
4.數(shù)據(jù)庫的完整性
數(shù)據(jù)庫管理系統(tǒng)除了必須確保只有合法用戶才能更新數(shù)據(jù),即必須有訪問控制;還必須能防范非人為的自然災(zāi)難。數(shù)據(jù)庫完整性包括物理完整性、邏輯完整性和元素完整性,這既適用于數(shù)據(jù)庫的個(gè)別元素,也適用于數(shù)據(jù)庫,所以在數(shù)據(jù)庫管理系統(tǒng)的設(shè)計(jì)中完整性是主要的關(guān)心對象。
物理完整性:要求從硬件或環(huán)境方面保護(hù)數(shù)據(jù)庫的安全,防止數(shù)據(jù)被破壞或不可讀。它與數(shù)據(jù)庫駐留的計(jì)算機(jī)系統(tǒng)硬件的可靠性和安全性有關(guān),也與環(huán)境的安全保障措施有關(guān)。
邏輯完整性:要求保持?jǐn)?shù)據(jù)庫邏輯結(jié)構(gòu)的完整性,需要嚴(yán)格控制數(shù)據(jù)庫的創(chuàng)建與刪除,數(shù)據(jù)庫表的建立、刪除以及更改操作。它還包括數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)的合理性,盡量減少字段之間、數(shù)據(jù)庫表之間不必要的關(guān)聯(lián),減少冗余字段,盡可能減少由于修改一個(gè)字段的值而影響其他字段的情況。數(shù)據(jù)庫的邏輯完整性主要是設(shè)計(jì)者的責(zé)任,由系統(tǒng)管理員與數(shù)據(jù)庫擁有者負(fù)責(zé)保證數(shù)據(jù)庫結(jié)構(gòu)不被隨意修改。
元素的完整性:指的是元素的正確性和準(zhǔn)確性。由于用戶在搜索數(shù)據(jù)計(jì)算結(jié)果和輸入數(shù)據(jù)時(shí)有可能會(huì)出現(xiàn)錯(cuò)誤,所以數(shù)據(jù)庫管理系統(tǒng)必須幫助用戶在輸入時(shí)能發(fā)現(xiàn)錯(cuò)誤,并在插入錯(cuò)誤數(shù)據(jù)后能糾正它們,從而避免錯(cuò)誤數(shù)據(jù)和虛假數(shù)據(jù)送入數(shù)據(jù)庫中。
5.可審計(jì)性
為了能夠跟蹤用戶對數(shù)據(jù)庫的訪問,及時(shí)發(fā)現(xiàn)對數(shù)據(jù)庫的非法訪問和修改,可能需要對數(shù)據(jù)庫的所有訪問進(jìn)行記錄。審計(jì)功能就是把用戶對數(shù)據(jù)庫的所有操作自動(dòng)記錄下來放入審計(jì)日志(AuditLog)中,一旦發(fā)生數(shù)據(jù)被非法存取,數(shù)據(jù)庫管理員可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。由于任何系統(tǒng)的安全保護(hù)措施都不可能無懈可擊,蓄意盜竊、破壞數(shù)據(jù)的人總是想方設(shè)法打破控制,因此審計(jì)功能在維護(hù)數(shù)據(jù)安全、打擊犯罪方面是非常有效的。但審計(jì)通常是很費(fèi)時(shí)間和空間的,因此數(shù)據(jù)庫管理員(DBA)要根據(jù)應(yīng)用對安全性的要求,靈活打開或關(guān)閉審計(jì)功能。
6.可用性
可用性能夠保證合法用戶在需要時(shí)訪問到相關(guān)的數(shù)據(jù)。數(shù)據(jù)庫可被合法用戶訪問并按要求的特性使用,即當(dāng)需要時(shí)能存取所需數(shù)據(jù)。
4.2數(shù)據(jù)庫安全技術(shù)
4.2.1數(shù)據(jù)庫安全訪問控制
數(shù)據(jù)庫的安全訪問模型傳統(tǒng)上有三種:自主訪問控制(DiscretionaryAccessControl,DAC)、強(qiáng)制訪問控制(MandatoryAccessControl,MAC)和基于角色訪問控制(Role-BasedAccessControl,RBAC)。
1.自主訪問控制
DAC是基于用戶身份或所屬工作組來進(jìn)行訪問控制的一種手段。具有某種訪問特權(quán)的用戶可以把該種訪問許可傳遞給其他用戶。在自主型存取控制模型中,系統(tǒng)用戶對數(shù)據(jù)信息的存取控制主要基于對用戶身份的鑒別和存取訪問規(guī)則的確定。當(dāng)用戶申請以某種方式存取某個(gè)資源時(shí),系統(tǒng)就會(huì)進(jìn)行合法身份性檢查,判斷該用戶有無此項(xiàng)操作權(quán)限,以決定是否許可該用戶繼續(xù)操作。并且,對某個(gè)信息資源擁有某種級別權(quán)限的用戶可以把其所擁有的該級別權(quán)限授予其他用戶。也就是說,系統(tǒng)授權(quán)的用戶可以選擇其他用戶一起來共享其所擁有的客體資源。一般自主型存取控制將整個(gè)系統(tǒng)的用戶授權(quán)狀態(tài)表示為一個(gè)授權(quán)存取矩陣。當(dāng)用戶要執(zhí)行某項(xiàng)操作時(shí),系統(tǒng)就根據(jù)用戶的請求與系統(tǒng)的授權(quán)存取矩陣進(jìn)行匹配比較,通過則允許滿足該用戶的請求,提供可靠的數(shù)據(jù)存取方式,否則拒絕該用戶的訪問請求。
2.強(qiáng)制訪問控制
MAC對于不同類型的信息采取不同層次的安全策略。MAC基于被訪問對象的信任度進(jìn)行權(quán)限控制,不同的信任度對應(yīng)不同的訪問權(quán)限。MAC給每個(gè)訪問主體和客體分級,指定其信任度。MAC通過比較主體和客體的信任度來決定一個(gè)主體能否訪問某個(gè)客體,具體遵循以下兩條規(guī)則:(1)僅當(dāng)主體的信任度大于或等于客體的信任度時(shí),主體才能對客體進(jìn)行讀操作,即所謂的“向下讀取規(guī)則”。
(2)僅當(dāng)主體的信任度小于或等于客體的信任度時(shí),主體才能對客體進(jìn)行寫操作,即所謂的“向上寫入規(guī)則”。
在關(guān)系數(shù)據(jù)庫中,運(yùn)用強(qiáng)制訪問控制策略可以實(shí)現(xiàn)信息的分析分類管理。這樣,具有不同安全級別的用戶只能存取其授權(quán)范圍內(nèi)的數(shù)據(jù),同時(shí)也保證了敏感數(shù)據(jù)不泄漏給非授權(quán)用戶,防止了非法用戶的訪問。因而,提高了數(shù)據(jù)的安全性。
3.基于角色訪問控制
在RBAC中,引入了角色這一重要概念。所謂“角色”,就是一個(gè)或一群用戶在組織內(nèi)可執(zhí)行的操作的集合。角色可以根據(jù)組織中不同的工作創(chuàng)建,然后根據(jù)用戶的職責(zé)分配角色,用戶可以輕松地進(jìn)行角色轉(zhuǎn)換。RBAC的思想核心是安全授權(quán)和角色相聯(lián)系,用戶首先要成為相應(yīng)角色的成員,才能獲得該角色對應(yīng)的權(quán)限。這大大簡化了授權(quán)管理,角色可以根據(jù)組織中不同的工作創(chuàng)建,然后根據(jù)用戶的責(zé)任和資格分配角色。用戶可以輕松地進(jìn)行角色轉(zhuǎn)換,而隨著新應(yīng)用和新系統(tǒng)的增加,角色可以分配更多的權(quán)限.也可以根據(jù)需要撤銷相應(yīng)的權(quán)限。實(shí)際表明把管理員權(quán)限局限在改變用戶角色上,比賦予管理員更改角色權(quán)限更安全。RBAC的最大優(yōu)勢在于授權(quán)管理的便利性,一旦一個(gè)RBAC系統(tǒng)建立起來后,主要的管理工作即為授權(quán)或取消用戶的角色。RBAC的另一優(yōu)勢在于系統(tǒng)管理員在一種比較抽象的層次上控制訪問,與企業(yè)通常的業(yè)務(wù)管理相類似。自主型存取控制,一般比較靈活、易用,適用于許多不同的領(lǐng)域。目前,自主型控制存取模型已經(jīng)被廣泛應(yīng)用到各種商業(yè)和工業(yè)環(huán)境。但是,這種控制模型的缺點(diǎn)也是十分明顯的,它不能提供一個(gè)確實(shí)可靠的保證,來滿足用戶對于數(shù)據(jù)庫的保護(hù)要求。在安全強(qiáng)度要求較高的數(shù)據(jù)庫系統(tǒng)中必須采用強(qiáng)制型存取控制技術(shù),以保證數(shù)據(jù)信息的安全性。基于RBAC模型的數(shù)據(jù)庫系統(tǒng)安全訪問控制機(jī)制與傳統(tǒng)的訪問控制機(jī)制相比,具有明顯的優(yōu)勢,它可以實(shí)現(xiàn)細(xì)粒度的訪問控制,能夠控制具體的資源項(xiàng),并且與策略無關(guān),可以靈活適用于不同的安全策略。4.2.2數(shù)據(jù)庫加密
對數(shù)據(jù)庫的加密可以在OS、DBMS內(nèi)核層和DBMS外層三個(gè)不同層次實(shí)現(xiàn)。
(1)由于在OS層無法辨認(rèn)數(shù)據(jù)庫文件的數(shù)據(jù)關(guān)系,從而無法產(chǎn)生合理的密鑰,也無法進(jìn)行合理的密鑰管理和使用,所以,在OS層對數(shù)據(jù)庫文件進(jìn)行加密,對于大型數(shù)據(jù)庫來說,目前還難以實(shí)現(xiàn)。
(2)在DBMS內(nèi)核層實(shí)現(xiàn)加密,是指數(shù)據(jù)在物理存取之前完成加密/解密工作。這種方式勢必造成DBMS和加密器(硬件或軟件)之間的接口需要DBMS開發(fā)商的支持。這種加密方式的優(yōu)點(diǎn)是加密功能強(qiáng),并且加密功能幾乎不會(huì)影響DBMS的功能,其缺點(diǎn)是在服務(wù)器端進(jìn)行加密/解密運(yùn)算,加重了數(shù)據(jù)庫服務(wù)器的負(fù)載。
(3)在DBMS外層實(shí)現(xiàn)加密。這是目前比較實(shí)際的一種做法,就是把數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個(gè)外層工具。采用這種加密方式時(shí),加密/解密運(yùn)算可以放在客戶端進(jìn)行。其優(yōu)點(diǎn)是不會(huì)加重?cái)?shù)據(jù)庫服務(wù)器的負(fù)載并可實(shí)現(xiàn)網(wǎng)上傳輸加密,缺點(diǎn)是加密功能會(huì)受一些限制?!岸x加密要求工具”模塊的主要功能是定義如何對每個(gè)數(shù)據(jù)庫表數(shù)據(jù)進(jìn)行加密。“數(shù)據(jù)庫應(yīng)用系統(tǒng)”的功能是完成數(shù)據(jù)庫定義和操作。數(shù)據(jù)庫加密系統(tǒng)將根據(jù)加密要求自動(dòng)完成對數(shù)據(jù)庫數(shù)據(jù)的加密/解密。數(shù)據(jù)庫加密系統(tǒng)對加密算法的要求是:數(shù)據(jù)庫加密以后,數(shù)據(jù)量不應(yīng)明顯增加;某一數(shù)據(jù)加密后,其數(shù)據(jù)長度不變;加密/解密速度要足夠快,數(shù)據(jù)操作響應(yīng)時(shí)間應(yīng)該讓用戶能夠接受。目前,對數(shù)據(jù)庫文件的加密方法和體制很多,但其中比較著名和廣為使用的主要有DES算法和RSA算法。
數(shù)據(jù)庫加密系統(tǒng)能夠有效地保證數(shù)據(jù)的安全,因?yàn)樗械臄?shù)據(jù)都經(jīng)過了加密,所以即使黑客竊取了關(guān)鍵數(shù)據(jù),仍然難以得到所需的信息。另外,數(shù)據(jù)庫加密以后,可以設(shè)定不需要了解數(shù)據(jù)內(nèi)容的系統(tǒng)管理員不能見到明文,從而大大提高關(guān)鍵數(shù)據(jù)的安全性。4.2.3事務(wù)機(jī)制
所謂事務(wù),就是指一組邏輯操作步驟使數(shù)據(jù)從一種狀態(tài)變換到另一種狀態(tài)。事務(wù)是數(shù)據(jù)庫應(yīng)用程序的基本邏輯工作單位,在事務(wù)中集中了若干個(gè)數(shù)據(jù)庫操作,它們構(gòu)成了一個(gè)操作序列,要么不做,要么全做,是一個(gè)不可分割的工作單位。其具有以下四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolary)以及持久性(Durability)。這些性質(zhì)我們通常稱為ACID特性。
原子性:事務(wù)中所有的數(shù)據(jù)庫操作是一個(gè)不可分割的操作序列,這些操作要么不做,要么全做;
一致性:事務(wù)執(zhí)行的結(jié)果將使數(shù)據(jù)庫由一種一致性到達(dá)另一種新的一致性;
隔離性:在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),事務(wù)不必關(guān)心其他事務(wù)的執(zhí)行,如同在單用戶環(huán)境下執(zhí)行一樣;
持久性:一個(gè)事務(wù)一旦完成其全部操作,它對數(shù)據(jù)庫的所有更改將永久性地反映在數(shù)據(jù)庫中,即使以后發(fā)生故障也應(yīng)保留這個(gè)事務(wù)執(zhí)行的結(jié)果。
事務(wù)及其四個(gè)性質(zhì)保證了故障恢復(fù)和并發(fā)控制的順利進(jìn)行。
1.故障恢復(fù)
在數(shù)據(jù)庫系統(tǒng)中,發(fā)生故障是不可避免的,故障的發(fā)生會(huì)影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至破壞整個(gè)數(shù)據(jù)庫,從而影響數(shù)據(jù)庫系統(tǒng)的可靠性和可用性。因此,從保護(hù)數(shù)據(jù)安全的角度出發(fā),我們必須了解數(shù)據(jù)庫系統(tǒng)可能會(huì)發(fā)生的故障并且還必須使數(shù)據(jù)庫具有恢復(fù)功能?;謴?fù)的基本原理是數(shù)據(jù)冗余,即利用冗余存儲(chǔ)在別處的信息和數(shù)據(jù),部分或全部地重建數(shù)據(jù)庫。當(dāng)發(fā)生事務(wù)故障時(shí),保證事務(wù)原子性的措施稱為事務(wù)故障恢復(fù),簡稱為事務(wù)恢復(fù)。
2.并發(fā)控制
數(shù)據(jù)庫是一種共享的資源庫,多個(gè)用戶程序可以同時(shí)存儲(chǔ)數(shù)據(jù)而互不影響。并發(fā)控制是指在多用戶的情況下,對數(shù)據(jù)庫的并行操作進(jìn)行規(guī)范的機(jī)制,控制并發(fā)事務(wù)之間的交互操作。目的是為了避免數(shù)據(jù)的丟失和修改、無效數(shù)據(jù)的讀出與不可重復(fù)讀數(shù)據(jù)等,從而保證了數(shù)據(jù)的正確性和一致性,而且使得每個(gè)事務(wù)的執(zhí)行看上去是隔離的,與其他事務(wù)無關(guān)。
4.3SQLServer數(shù)據(jù)庫管理系統(tǒng)的安全性
MicrosoftSQLServer是一個(gè)高性能、多用戶的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它滿足大型的數(shù)據(jù)處理系統(tǒng)和商業(yè)網(wǎng)站的存儲(chǔ)需求,并滿足個(gè)人和小型企業(yè)對易用性的要求,是當(dāng)前最流行的網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器之一。它的安全機(jī)制、內(nèi)置的強(qiáng)大管理工具和開放式的系統(tǒng)體系結(jié)構(gòu)為基于事務(wù)的企業(yè)級管理方案提供了一個(gè)卓越的平臺(tái)。SQLServer與網(wǎng)絡(luò)操作系統(tǒng)WindowsNT構(gòu)成了一個(gè)集成環(huán)境,是WindowsNT平臺(tái)上最好的數(shù)據(jù)庫管理系統(tǒng)之一。4.3.1安全管理
安全管理是數(shù)據(jù)庫管理系統(tǒng)應(yīng)實(shí)現(xiàn)的重要功能之一。SQLServer采用了很復(fù)雜的安全保護(hù)措施,其安全管理包含兩個(gè)層次:一是對用戶是否有權(quán)限登錄到系統(tǒng)以及如何登錄的管理;二是對用戶操作的對象以及如何操作進(jìn)行權(quán)限的控制。也就是說,如果要對某一數(shù)據(jù)庫進(jìn)行訪問操作,必須滿足以下的三個(gè)條件:
登錄SQLServer服務(wù)器時(shí)必須通過身份認(rèn)證;
必須是所訪問數(shù)據(jù)庫的用戶;
必須有執(zhí)行訪問操作的權(quán)限。
具體的,SQLServer的安全管理主要包括以下四個(gè)方面:服務(wù)器登錄管理、數(shù)據(jù)庫用戶管理、角色管理和數(shù)據(jù)庫權(quán)限管理。
1.服務(wù)器登錄管理
SQLServer提供了兩種身份認(rèn)證方式對用戶的登錄進(jìn)行驗(yàn)證,分別是Windows認(rèn)證方式和SQLServer認(rèn)證方式。SQLServer數(shù)據(jù)庫管理系統(tǒng)通常運(yùn)行在Windows平臺(tái)上,而Windows作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄和驗(yàn)證用戶合法性的權(quán)力,因此Windows認(rèn)證方式正是利用這個(gè)特點(diǎn),允許SQLServer可以使用Windows的用戶名和密碼,用戶只需要通過Windows的認(rèn)證,就可以連接到SQLServer上。而SQLServer認(rèn)證方式是由SQLServer完全負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫服務(wù)器上的登錄。對應(yīng)于這兩種不同的認(rèn)證方式,SQLServer管理的登錄帳號也有兩種:Windows登錄帳號和SQLServer登錄帳號。所有的登錄帳號信息存儲(chǔ)在系統(tǒng)數(shù)據(jù)庫master表syslogins中。
對SQLServer數(shù)據(jù)庫管理系統(tǒng)登錄帳號的管理有兩種方法:一種是通過企業(yè)管理器(SQLServerEnterpriseManager)來實(shí)現(xiàn);一種是通過系統(tǒng)存儲(chǔ)過程來實(shí)現(xiàn)。這兩種方法也同樣適用于用戶、角色和權(quán)限的管理。
【例4.1】使用系統(tǒng)存儲(chǔ)過程sp_addlogin創(chuàng)建登錄帳號,登錄名為Joe,密碼為123。
sp_addlogin‘Joe’,‘123’
使用系統(tǒng)存儲(chǔ)過程sp_droplogin刪除登錄帳號,登錄名為Joe。
sp_droplogin'Joe'
2.數(shù)據(jù)庫用戶管理
用戶登錄到SQLServer服務(wù)器后必須是某個(gè)數(shù)據(jù)庫的用戶才能夠被授予一定的權(quán)限操作該數(shù)據(jù)庫,因此SQLServer數(shù)據(jù)庫用戶實(shí)際上是用于管理數(shù)據(jù)庫使用的對象,而用戶對數(shù)據(jù)庫的操作能力取決于用戶的權(quán)限。用戶的信息均儲(chǔ)存在數(shù)據(jù)庫的系統(tǒng)表sysusers中。下面的例子描述了如何利用系統(tǒng)存儲(chǔ)過程管理數(shù)據(jù)庫的用戶。
【例4.2】使用系統(tǒng)存儲(chǔ)過程sp_adduser將登錄帳戶Joe創(chuàng)建為數(shù)據(jù)庫Northwind的用戶。
useNorthwind
sp_adduser‘Joe’,‘joe’
使用系統(tǒng)存儲(chǔ)過程sp_dropuser刪除數(shù)據(jù)庫Northwind的用戶joe。
useNorthwind
sp_dropuser'joe'
3.角色管理
在SQLServer中,把相同權(quán)限的一組用戶(例如:公司某部門的所有人員)設(shè)置為某一角色后,對于屬于同一角色的用戶可以進(jìn)行統(tǒng)一的管理,當(dāng)對該角色進(jìn)行權(quán)限設(shè)置時(shí),這些用戶就自動(dòng)賦予該角色所有的權(quán)限,這樣只要對角色進(jìn)行權(quán)限管理,就可以實(shí)現(xiàn)對屬于該角色的所有用戶的權(quán)限管理,極大地減輕了管理的負(fù)擔(dān)。
SQLServer的角色分為兩大類:固定服務(wù)器角色和數(shù)據(jù)庫角色。
1)固定服務(wù)器角色
固定服務(wù)器角色提供了服務(wù)器級的管理權(quán)限分組,它們獨(dú)立于用戶數(shù)據(jù)庫之外,并且不能對其添加、修改和刪除權(quán)限。SQLServer中的固定服務(wù)器角色如表4.1所示。表4.1固定服務(wù)器角色
2)數(shù)據(jù)庫角色
數(shù)據(jù)庫角色提供了數(shù)據(jù)庫級的管理權(quán)限分組。它分為固定數(shù)據(jù)庫角色和用戶自定義數(shù)據(jù)庫角色兩種。固定數(shù)據(jù)庫角色是每個(gè)數(shù)據(jù)庫專有的,不能對其進(jìn)行添加、修改和刪除權(quán)限。用戶自定義數(shù)據(jù)庫角色是用戶根據(jù)自己的需求自定義出適合自己權(quán)限管理的角色,方便于對角色的用戶進(jìn)行權(quán)限控制。SQLServer中的固定數(shù)據(jù)庫角色如表4.2所示。
對于角色的管理,SQLServer提供了一些系統(tǒng)存儲(chǔ)過程,如表4.3所示。表4.2固定數(shù)據(jù)庫角色表4.3系統(tǒng)存儲(chǔ)過程
【例4.3】使用系統(tǒng)存儲(chǔ)過程sp_addsrvrolemember將登錄帳戶Joe加入服務(wù)器角色Systemadministrators中,使其成為該服務(wù)器角色的成員。
sp_addsrvrolemember‘Joe’,‘sysadmin’
使用系統(tǒng)存儲(chǔ)過程sp_dropsrvrolemember將登錄帳戶Joe從服務(wù)器角色Systemadministrators中刪除,使其不再具有該服務(wù)器角色的權(quán)限。
sp_dropsrvrolemember'Joe'
4.數(shù)據(jù)庫權(quán)限管理
當(dāng)用戶以某種驗(yàn)證方式登錄到SQLServer服務(wù)器而且是某個(gè)數(shù)據(jù)庫的用戶后,還必須授予一定的權(quán)限才能夠訪問存取數(shù)據(jù)庫的數(shù)據(jù)。設(shè)置用戶對數(shù)據(jù)庫的操作權(quán)限稱為授權(quán),未授權(quán)的用戶將無法訪問或存取數(shù)據(jù)庫的數(shù)據(jù)。SQLServer有三種類型的權(quán)限:語句權(quán)限、對象權(quán)限和預(yù)定義權(quán)限。
1)語句權(quán)限
在數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建數(shù)據(jù)庫或者其他對象時(shí)所受到的權(quán)限控制稱為語句權(quán)限。語句權(quán)限如表4.4所示。表4.4語句權(quán)限
2)對象權(quán)限
使用數(shù)據(jù)或者執(zhí)行程序的活動(dòng)受到的權(quán)限控制稱為對象權(quán)限,包括表和視圖權(quán)限、列權(quán)限和存儲(chǔ)過程權(quán)限等。對象權(quán)限如表4.5所示。表4.5對象權(quán)限
3)預(yù)定義權(quán)限
只有固定角色的成員或者數(shù)據(jù)庫對象的所有者(DBO)才能夠執(zhí)行某些活動(dòng),執(zhí)行這些活動(dòng)的權(quán)限稱為預(yù)定義權(quán)限。
對用戶而言,權(quán)限管理主要針對對象權(quán)限和語句權(quán)限,通常權(quán)限有三種狀態(tài),即授予權(quán)限(GRANT)、撤銷權(quán)限(RECOKE)和拒絕訪問(DENY)。
【例4.4】在數(shù)據(jù)庫Northwind中,將創(chuàng)建表和視圖的權(quán)限授予用戶joe。
GRANTCREATETABLE,CREATEVIEWtojoe4.3.2備份與恢復(fù)
在日常工作中,硬件故障、軟件錯(cuò)誤、計(jì)算機(jī)病毒、人為誤操作、惡意破壞甚至自然災(zāi)害等諸多因素都可能發(fā)生,從而造成運(yùn)行事務(wù)的異常中斷,影響數(shù)據(jù)的正確性,甚至破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中的數(shù)據(jù)部分或者全部丟失,給用戶造成無法估量的損失,因此如何防止數(shù)據(jù)丟失是用戶所面臨的最重要的問題之一。SQLServer的備份和恢復(fù)為保護(hù)存儲(chǔ)在數(shù)據(jù)庫中的關(guān)鍵數(shù)據(jù)提供了重要的工具。
1.數(shù)據(jù)備份與恢復(fù)的概念
數(shù)據(jù)備份是指為了防止數(shù)據(jù)丟失,而將系統(tǒng)全部數(shù)據(jù)或者部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或者磁盤陣列中復(fù)制到其他存儲(chǔ)介質(zhì)上的過程。常用的存儲(chǔ)介質(zhì)有磁帶、磁盤和光
盤等。
數(shù)據(jù)備份實(shí)際上是一種以增加數(shù)據(jù)存儲(chǔ)的方法保護(hù)數(shù)據(jù)安全。許多企業(yè)為了保護(hù)重要的數(shù)據(jù),采取了系統(tǒng)定期檢測與維護(hù)、雙機(jī)熱備份、磁盤鏡像或容錯(cuò)、備份磁帶異地存放、關(guān)鍵部件冗余等多項(xiàng)措施。這些措施一般能夠進(jìn)行數(shù)據(jù)備份,并且在系統(tǒng)發(fā)生故障后能夠快速恢復(fù)系統(tǒng)。數(shù)據(jù)恢復(fù)是指在系統(tǒng)數(shù)據(jù)崩潰時(shí)利用備份在存儲(chǔ)介質(zhì)上的數(shù)據(jù)將計(jì)算機(jī)系統(tǒng)恢復(fù)到原狀態(tài)的過程。數(shù)據(jù)恢復(fù)與數(shù)據(jù)備份是一個(gè)相反的過程,數(shù)據(jù)恢復(fù)要以備份為基礎(chǔ),而備份的目的就是為了恢復(fù)系統(tǒng)的數(shù)據(jù),使系統(tǒng)迅速恢復(fù)運(yùn)行,避免或者減少因?yàn)橄到y(tǒng)故障而造成的損失。
2.數(shù)據(jù)庫備份的類型
數(shù)據(jù)庫的備份根據(jù)備份時(shí)數(shù)據(jù)庫的狀態(tài)分為三種類型:冷備份、熱備份和邏輯備份。
1)冷備份
冷備份是指在數(shù)據(jù)庫關(guān)閉的狀態(tài)下對數(shù)據(jù)庫進(jìn)行備份。備份時(shí)數(shù)據(jù)庫將不能被訪問。這種類型的備份通常只采用完全備份,是保持?jǐn)?shù)據(jù)庫完整性的最好辦法。
2)熱備份
熱備份是指在數(shù)據(jù)庫處于運(yùn)行的狀態(tài)下對數(shù)據(jù)庫進(jìn)行備份。在熱備份的同時(shí)可以對數(shù)據(jù)庫進(jìn)行訪問操作,未完成的事務(wù)操作熱備份將通過日志來備份,但是應(yīng)該避免進(jìn)行修改數(shù)據(jù)庫結(jié)構(gòu)或者執(zhí)行無日志記錄的操作。
3)邏輯備份
邏輯備份是利用數(shù)據(jù)庫管理系統(tǒng)提供的工具或者編程語言對數(shù)據(jù)庫中的某些表進(jìn)行備份。使用這種方法時(shí)數(shù)據(jù)庫必須處于運(yùn)行的狀態(tài)。對于只需要備份部分?jǐn)?shù)據(jù)而不需要備份全部數(shù)據(jù)的情況,該方法簡單方便。
3.數(shù)據(jù)庫備份與恢復(fù)的策略
數(shù)據(jù)庫備份與恢復(fù)是既相反又統(tǒng)一的兩個(gè)過程。用戶在備份前要綜合考慮各個(gè)方面的因素,根據(jù)數(shù)據(jù)庫的不同規(guī)模和不同用途制定出合適的備份策略。影響制定策略的因素通常包括需要備份的數(shù)據(jù)量的大小、每單位時(shí)間數(shù)據(jù)量的增量大小、企業(yè)的工作時(shí)間,數(shù)據(jù)庫崩潰時(shí)恢復(fù)的時(shí)間要求等。數(shù)據(jù)庫備份的策略包括確定備份的方法(如采用完全數(shù)據(jù)庫備份、差異數(shù)據(jù)庫備份、事務(wù)日志備份還是混合的方法)、備份的周期(如以月、周還是日為周期)、備份的方式(如采用手工備份還是自動(dòng)備份)、備份的介質(zhì)(如以硬盤、磁帶還是U盤作為備份介質(zhì))和介質(zhì)的存放等。SQLServer提供了不同的備份方法以滿足廣泛的業(yè)務(wù)環(huán)境和數(shù)據(jù)庫活動(dòng)的需求,下面根據(jù)備份方法來介紹如何制定數(shù)據(jù)庫備份與恢復(fù)的策略。
1)完全數(shù)據(jù)庫備份
完全數(shù)據(jù)庫備份是將一個(gè)數(shù)據(jù)庫中的所有數(shù)據(jù)文件全部復(fù)制,包括完全數(shù)據(jù)庫備份過程中數(shù)據(jù)庫的所有行為,所有的用戶數(shù)據(jù)以及所有的數(shù)據(jù)庫對象,包括系統(tǒng)表、索引和用戶自定義表。完全數(shù)據(jù)庫備份比其他任何類型的備份都要占用更多的空間和時(shí)間。在必須進(jìn)行數(shù)據(jù)恢復(fù)的情況下,完全數(shù)據(jù)庫備份是數(shù)據(jù)庫全面恢復(fù)的起點(diǎn)。一般而言,在大量裝入一些新數(shù)據(jù)之后執(zhí)行完全數(shù)據(jù)庫備份,執(zhí)行的間隔可根據(jù)數(shù)據(jù)量的多少以及修改的頻率而定。考慮到完全數(shù)據(jù)庫備份所需時(shí)間長、占用存儲(chǔ)介質(zhì)容量大的特點(diǎn),一般規(guī)則是,一周執(zhí)行一次,或者一天一次。雖然SQLServer備份對數(shù)據(jù)庫性能影響較小,但是,將完全數(shù)據(jù)庫備份安排在空閑的時(shí)間(如下班后或者晚上)則更可靠。當(dāng)要進(jìn)行數(shù)據(jù)庫恢復(fù)時(shí),只需要最近一次的完全數(shù)據(jù)庫備份文件即可。
【例4.5】在磁盤上創(chuàng)建備份文件,并執(zhí)行數(shù)據(jù)庫Northwind的完全數(shù)據(jù)庫備份。
BACKUPDATABASENorthwindtoDISK=‘D:\Temp
\MyFullBackup.bak’
從備份文件D:\Temp\MyFullBackup.bak恢復(fù)數(shù)據(jù)庫Northwind
RESTOREDATABASENorthwindfromDISK='D:\Temp
\MyFullBackup.bak'
2)差異數(shù)據(jù)庫備份
差異數(shù)據(jù)庫備份復(fù)制最后一次完全數(shù)據(jù)庫備份以來所有數(shù)據(jù)文件中修改過的數(shù)據(jù),包括差異數(shù)據(jù)庫備份過程中發(fā)生的所有數(shù)據(jù)庫行為。例如,系統(tǒng)在周日進(jìn)行完全數(shù)據(jù)庫備份后,在接下來的六天中每天做的差異數(shù)據(jù)庫備份都將當(dāng)天所有與周日完全數(shù)據(jù)庫備份時(shí)不同的數(shù)據(jù)進(jìn)行備份。如果自完全數(shù)據(jù)庫備份以來某條數(shù)據(jù)記錄經(jīng)過多次修改,那么差異數(shù)據(jù)庫備份僅僅記錄最后一次修改過的記錄。當(dāng)數(shù)據(jù)庫需要恢復(fù)時(shí),只需要兩個(gè)備份文件就可以恢復(fù)數(shù)據(jù)庫,即最后一次的完全數(shù)據(jù)庫備份文件和最后一次的差異數(shù)據(jù)庫備份文件。完全數(shù)據(jù)庫備份所需時(shí)間長、占用存儲(chǔ)介質(zhì)容量大,但數(shù)據(jù)恢復(fù)時(shí)間短,操作最方便,當(dāng)系統(tǒng)數(shù)據(jù)量不大時(shí)該備份方式最可靠。與之相比,差異數(shù)據(jù)庫備份可節(jié)省備份時(shí)間和存儲(chǔ)介質(zhì)空間,當(dāng)數(shù)據(jù)量增大時(shí),很難每天都做完全數(shù)據(jù)庫備份,可選擇周末做完全數(shù)據(jù)庫備份,每個(gè)工作日做差異數(shù)據(jù)庫備份。
【例4.6】在磁盤上創(chuàng)建備份文件,并執(zhí)行數(shù)據(jù)庫Northwind的差異數(shù)據(jù)庫備份。
BACKUPDATABASENorthwindtoDISK=‘D:\Temp
\MyDiffBackup.bak’WITHDIFFERENTIAL
當(dāng)數(shù)據(jù)庫崩潰或者數(shù)據(jù)丟失時(shí),可以通過完全數(shù)據(jù)庫備份和差異數(shù)據(jù)庫備份兩個(gè)文件恢復(fù)數(shù)據(jù)庫:
RESTOREDATABASENorthwindfromDISK=‘D:\Temp
\MyFullBackup.bak’WITHNORECOVERY
RESTOREDATABASENorthwindfromDISK=‘D:\Temp
\MyDiffBackup.bak’
“WITHNORECOVERY”選項(xiàng)表示本次文件還原之后數(shù)據(jù)庫還未完全恢復(fù)。
3)事務(wù)日志備份
事務(wù)日志備份是對最后一次事務(wù)日志備份以來事務(wù)日志記錄的所有事務(wù)處理的一種順序記錄。由于事務(wù)日志備份記錄的是所有的事務(wù)處理,因此事務(wù)日志備份可以將數(shù)據(jù)庫恢復(fù)到某個(gè)特定的時(shí)間點(diǎn),如輸入錯(cuò)誤數(shù)據(jù)之前,而差異數(shù)據(jù)庫備份記錄的是最后的修改結(jié)果,因而無法做到這點(diǎn)。事務(wù)日志備份實(shí)際上是增量備份,與完全數(shù)據(jù)庫備份和差異數(shù)據(jù)庫備份相比,減少了重復(fù)數(shù)據(jù)的備份,既節(jié)省了存儲(chǔ)介質(zhì)的空間,又縮短了備份的時(shí)間,可以根據(jù)業(yè)務(wù)的數(shù)據(jù)量幾分鐘進(jìn)行一次。事務(wù)日志備份的缺點(diǎn)是恢復(fù)數(shù)據(jù)的過程比較麻煩,要把所有的事務(wù)日志備份文件按備份的先后順序依次恢復(fù),因此事務(wù)日志備份、完全數(shù)據(jù)庫備份、差異數(shù)據(jù)庫備份往往結(jié)合起來一起使用。例如每周末做一次完全數(shù)據(jù)庫備份,每個(gè)工作日做一次差異數(shù)據(jù)庫備份,而每30分鐘做一次事務(wù)日志備份。當(dāng)數(shù)據(jù)庫需要恢復(fù)時(shí),先恢復(fù)最后一次的完全數(shù)據(jù)庫備份和最后一次的差異數(shù)據(jù)庫備份,再恢復(fù)最后一次差異數(shù)據(jù)庫備份后的所有事務(wù)日志備份。
【例4.7】在磁盤上創(chuàng)建備份文件,并執(zhí)行數(shù)據(jù)庫Northwind的事務(wù)日志備份。
BACKUPLOGNorthwindtoDISK=‘D:\Temp
\MyLogBackup1.bak’
假設(shè)在最后一次差異數(shù)據(jù)庫備份后又進(jìn)行了三次事務(wù)日志備份,則當(dāng)數(shù)據(jù)庫崩潰或者數(shù)據(jù)丟失時(shí),可按照下面的順序恢復(fù)數(shù)據(jù)庫。
RESTOREDATABASENorthwindfromDISK=‘D:\Temp
\MyFullBackup.bak’WITHNORECOVERY
RESTOREDATABASENorthwindfromDISK='D:\Temp
\MyDiffBackup.bak'WITHNORECOVERY
RESTORELOGNorthwindfromDISK=‘D:\Temp
\MyLogBackup1.bak’WITHNORECOVERY
RESTORELOGNorthwindfromDISK=‘D:\Temp
\MyLogBackup2.bak’WITHNORECOVERY
RESTORELOGNorthwindfromDISK='D:\Temp
\MyLogBackup3.bak'4.3.3使用視圖增強(qiáng)安全性
SQLServer除了可以通過登錄帳戶的身份驗(yàn)證和權(quán)限機(jī)制來保證對數(shù)據(jù)庫訪問的安全性,也可以在應(yīng)用程序?qū)?例如視圖、存儲(chǔ)過程和應(yīng)用程序角色等)中采用一些方法來保證安全性,這里介紹如何使用視圖來增強(qiáng)安全性。
視圖與表(有時(shí)為了與視圖區(qū)別,也稱基本表)不同,它是一個(gè)虛表,數(shù)據(jù)庫中只存放視圖的定義(實(shí)際上是一條查詢語句),而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在與視圖關(guān)聯(lián)的基本表中。對視圖的數(shù)據(jù)進(jìn)行操作,其實(shí)是系統(tǒng)根據(jù)視圖的定義去操作與視圖關(guān)聯(lián)的基本表,因此視圖為用戶提供了另外一種在數(shù)據(jù)庫中訪問數(shù)據(jù)和執(zhí)行操作的方法。在這個(gè)方法中,權(quán)限的管理是在視圖中實(shí)現(xiàn),而不是它們關(guān)聯(lián)的基本表,這樣可以防止用戶更改基本表。例如表score包含全班的成績信息,為了使得Joe只能查看到自己的成績信息,可以定義一個(gè)視圖只包含Joe的成績信息,再將視圖的SELECT權(quán)限授予Joe,這樣Joe就只能看到自己的成績信息。4.3.4其他安全策略
在使用SQLServer時(shí),必須考慮一些額外的安全性問題,比如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國食品及飼料添加劑行業(yè)運(yùn)營狀況及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國風(fēng)力發(fā)電機(jī)組葉片裝置市場發(fā)展趨勢與十三五規(guī)劃研究報(bào)告
- 2025-2030年中國防火玻璃產(chǎn)業(yè)前景展望及未來投資規(guī)劃研究報(bào)告
- 2025-2030年中國鑄造粘結(jié)材料行業(yè)競爭格局及前景趨勢分析報(bào)告
- 2025-2030年中國銅加工產(chǎn)業(yè)運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國金屬船舶市場前景規(guī)劃及發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國道路護(hù)欄行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報(bào)告
- 2025-2030年中國補(bǔ)血保健品市場十三五規(guī)劃與發(fā)展策略分析報(bào)告
- 2025-2030年中國脫臭餾出物的分離提取產(chǎn)物行業(yè)運(yùn)行現(xiàn)狀及前景規(guī)劃分析報(bào)告
- 2025-2030年中國納米二氧化鈦市場運(yùn)行狀況及發(fā)展趨勢預(yù)測報(bào)告
- 產(chǎn)品不良品(PPM)統(tǒng)計(jì)表格模板
- 品管圈PDCA提高手衛(wèi)生依從性-手衛(wèi)生依從性品
- 2023年廣州市青年教師初中數(shù)學(xué)解題比賽決賽試卷
- 對折剪紙課件
- 公園棧道棧橋施工方案
- 新中國成立后的中國國防
- 熱烈歡迎領(lǐng)導(dǎo)蒞臨指導(dǎo)ppt模板
- 不規(guī)則抗體篩查與鑒定
- 2023-2024人教版小學(xué)2二年級數(shù)學(xué)下冊(全冊)教案【新教材】
- 中國銀行海爾多聯(lián)機(jī)方案書
- 小學(xué)《體育與健康》體育基礎(chǔ)理論知識(shí)
評論
0/150
提交評論