第六章 數(shù)據(jù)庫保護技術(shù)_第1頁
第六章 數(shù)據(jù)庫保護技術(shù)_第2頁
第六章 數(shù)據(jù)庫保護技術(shù)_第3頁
第六章 數(shù)據(jù)庫保護技術(shù)_第4頁
第六章 數(shù)據(jù)庫保護技術(shù)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理第六章數(shù)據(jù)庫保護技術(shù)6.1數(shù)據(jù)庫安全性控制6.2數(shù)據(jù)庫完整性控制6.3數(shù)據(jù)庫并發(fā)控制6.4數(shù)據(jù)庫恢復(fù)技術(shù)6.1數(shù)據(jù)庫安全性控制

問題的提出數(shù)據(jù)庫的一大特點是數(shù)據(jù)可以共享數(shù)據(jù)共享必然帶來數(shù)據(jù)庫的安全性問題數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)共享不能是無條件的共享3數(shù)據(jù)庫安全性6.1數(shù)據(jù)庫安全性控制數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,以防止不合法的使用造成的數(shù)據(jù)泄密、更改或破壞。計算機系統(tǒng)中,安全措施是一級一級層層設(shè)置 4計算機系統(tǒng)的安全模型6.1數(shù)據(jù)庫安全性控制常用方法用戶標(biāo)識和鑒定存取控制視圖審計56.1數(shù)據(jù)庫安全性控制6.1.1用戶標(biāo)識與鑒別6.1.2存取控制6.2.3視圖6.2.4審計66.1.1用戶標(biāo)識與鑒別用戶標(biāo)識與鑒別(Identification&Authentication)系統(tǒng)提供的最外層安全保護措施7用戶標(biāo)識與鑒別(續(xù))用戶標(biāo)識用輸入用戶名(用戶標(biāo)識號)來標(biāo)明用戶身份。口令系統(tǒng)核對口令以鑒別用戶身份用戶名和口令易被竊取每個用戶預(yù)先約定好一個計算過程或者函數(shù)86.1數(shù)據(jù)庫安全性控制6.1.1用戶標(biāo)識與鑒別6.1.2存取控制6.2.3視圖6.2.4審計96.1.2存取控制存取控制在數(shù)據(jù)庫系統(tǒng)中用戶只能訪問其有權(quán)訪問的數(shù)據(jù)存取控制機制組成定義用戶權(quán)限合法權(quán)限檢查

用戶權(quán)限定義和合法權(quán)檢查機制一起組成了DBMS的安全子系統(tǒng)10存取控制(續(xù))常用存取控制方法:自主存取控制、強制存取控制自主存取控制(DiscretionaryAccessControl,簡稱DAC):用戶對于不同的數(shù)據(jù)庫對象有不同的存取權(quán)限,不同的用戶對同一對象也有不同的權(quán)限,而且用戶還可以將其擁有的存取權(quán)限轉(zhuǎn)授給其它用戶靈活強制存取控制(MandatoryAccessControl,簡稱MAC):每一個數(shù)據(jù)庫對象被標(biāo)以一定的密級,每一個用戶也被授予某一個級別的許可證,對任意一個對象,只有具有合法許可證的用戶才可以存取嚴(yán)格116.1.2存取控制6.1.2.1自主存取控制方法6.1.2.2授權(quán)與回收6.1.2.3強制存取控制方法126.1.2.1自主存取控制方法自主存取控制(DiscretionaryAccessControl,簡稱DAC)用戶對不同的數(shù)據(jù)庫對象有不同存取權(quán)限,不同用戶對同一對象也有不同權(quán)限,且用戶可將其擁有的存取權(quán)限轉(zhuǎn)授給其它用戶靈活DAC機制用戶權(quán)限組成授權(quán)與回收136.1.2.1自主存取控制方法用戶權(quán)限組成數(shù)據(jù)對象操作類型授權(quán):定義存取權(quán)限定義用戶可以在哪些數(shù)據(jù)庫對象上進(jìn)行哪些類型的操作授權(quán)與回收通過SQL的GRANT語句和REVOKE語句實現(xiàn)14自主存取控制方法(續(xù))關(guān)系數(shù)據(jù)庫系統(tǒng)中存取控制對象對象類型對象操作類型基本表CREATETABLE,ALTERTABLE模式視圖CREATEVIEW索引CREATEINDEX數(shù)據(jù)基本表和視圖SELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGES數(shù)據(jù)屬性列SELECT,INSERT,UPDATE,ALLPRIVILEGES15關(guān)系數(shù)據(jù)庫系統(tǒng)中的存取權(quán)限6.1.2存取控制6.1.2.1自主存取控制方法6.1.2.2授權(quán)與回收6.1.2.3強制存取控制方法166.1.2.2授權(quán)與回收一、GRANTGRANT語句的一般格式:

GRANT<權(quán)限>[,<權(quán)限>]...

[ON<對象名>]

TO<用戶>[,<用戶>]...[WITHGRANTOPTION];語義:將對指定操作對象的指定操作權(quán)限授予指定的用戶17GRANT(續(xù))發(fā)出GRANTDBA數(shù)據(jù)庫對象創(chuàng)建者(即屬主Owner)擁有該權(quán)限的用戶接受權(quán)限的用戶

一個或多個具體用戶PUBLIC(全體用戶)18WITHGRANTOPTION子句WITHGRANTOPTION子句:指定:可以再授予沒有指定:不能傳播不允許循環(huán)授權(quán)19GRANT舉例把查詢Student表權(quán)限授給用戶U1GRANTSELECTONStudentTOU1 WITHGRANTOPTION;20授權(quán)與回收(續(xù))二、REVOKE授予的權(quán)限可以由DBA或其他授權(quán)者用REVOKE語句收回REVOKE語句的一般格式為:

REVOKE<權(quán)限>[,<權(quán)限>]...

[ON<對象名>]FROM<用戶>[,<用戶>]...;21REVOKE(續(xù))把用戶U1查詢學(xué)生表的權(quán)限收回

REVOKESELECT ONStudent FROMU1;22小結(jié):SQL靈活的授權(quán)機制DBA:擁有所有對象的所有權(quán)限不同的權(quán)限授予不同的用戶用戶:擁有自己建立的對象的全部的操作權(quán)限GRANT:授予其他用戶被授權(quán)的用戶“繼續(xù)授權(quán)”許可:再授予所有授予出去的權(quán)力在必要時又都可用REVOKE語句收回236.1.2存取控制6.1.2.1自主存取控制方法6.1.2.2授權(quán)與回收6.1.2.3強制存取控制方法24自主存取控制缺點存在問題可能存在數(shù)據(jù)的“無意泄露”主要原因自主存取控制機制僅僅通過對數(shù)據(jù)的存取權(quán)限進(jìn)行安全控制,而數(shù)據(jù)本身并無安全性標(biāo)記解決方法對系統(tǒng)控制下的所有主客體實施強制存取控制策略256.1.2.3強制存取控制方法強制存取控制(MandatoryAccessControl,簡稱MAC)每一個數(shù)據(jù)庫對象被標(biāo)以一定的密級,每一個用戶也被授予某一個級別的許可證,對任意一個對象,只有具有合法許可證的用戶才可以存取嚴(yán)格強制存取控制MAC特點對系統(tǒng)控制下的所有主客體實施強制存取控制策略不是用戶能直接感知或進(jìn)行控制,保證更高程度的安全性適用對數(shù)據(jù)有嚴(yán)格而固定密級分類部門:軍事、政府26強制存取控制方法(續(xù))主體:系統(tǒng)中的活動實體DBMS所管理的實際用戶代表用戶的各進(jìn)程客體:系統(tǒng)中的被動實體,是受主體操縱的文件基表索引視圖27強制存取控制方法(續(xù))敏感度標(biāo)記(Label)絕密(TopSecret)機密(Secret)可信(Confidential)公開(Public)主體的敏感度標(biāo)記稱為許可證級別(ClearanceLevel)客體的敏感度標(biāo)記稱為密級(ClassificationLevel)28強制存取控制方法(續(xù))強制存取控制規(guī)則僅當(dāng)主體許可證級別大于或等于客體密級時,主體才能讀取相應(yīng)客體僅當(dāng)主體許可證級別等于客體密級時,主體才能寫相應(yīng)客體被寫入的客體也就具有了與許可證對等的密級29MAC與DACDBMS安全機制:DAC+MAC實現(xiàn)MAC時要首先實現(xiàn)DAC原因:較高安全性級別提供的安全保護要包含較低級別的所有保護30強制存取控制方法(續(xù))DAC+MAC安全檢查示意圖31先進(jìn)行DAC檢查,通過DAC檢查的數(shù)據(jù)對象再由系統(tǒng)進(jìn)行MAC檢查,只有通過MAC檢查的數(shù)據(jù)對象方可存取DAC檢查繼續(xù)語義檢查安全檢查SQL語法分析&語義檢查MAC檢查6.1數(shù)據(jù)庫安全性控制6.1.1用戶標(biāo)識與鑒別6.1.2存取控制6.1.3視圖6.1.4審計326.1.3視圖視圖機制為不同的用戶定義不同的視圖,通過視圖把數(shù)據(jù)對象限制在一定范圍內(nèi),把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。33視圖機制(續(xù))建立計算機系學(xué)生的視圖,把對該視圖的SELECT權(quán)限授于王平,把該視圖上的所有操作權(quán)限授于張明

先立計算機系學(xué)生的視圖

計算機系_學(xué)生CREATEVIEW計算機系_學(xué)生ASSELECT*FROM學(xué)生WHERE所在系=‘計算機系';34視圖機制(續(xù))在視圖上進(jìn)一步定義存取權(quán)限

GRANTSELECTON計算機系_學(xué)生

TO王平;

GRANTALLPRIVILGESON計算機系_學(xué)生

TO張明;356.1數(shù)據(jù)庫安全性控制6.1.1用戶標(biāo)識與鑒別6.1.2存取控制6.1.3視圖6.1.4審計366.1.4審計審計審計日志(AuditLog):將用戶對數(shù)據(jù)庫的所有操作記錄在上面(日志文件)一旦發(fā)生數(shù)據(jù)被非法存取,DBA利用審計日志:找出非法存取數(shù)據(jù)的人、時間和內(nèi)容審計需要在時間和空間上付出巨大的代價37第六章數(shù)據(jù)庫保護技術(shù)6.1數(shù)據(jù)庫安全性控制6.2數(shù)據(jù)庫完整性控制6.3數(shù)據(jù)庫并發(fā)控制6.4數(shù)據(jù)庫恢復(fù)技術(shù)6.2數(shù)據(jù)庫完整性控制數(shù)據(jù)的完整性數(shù)據(jù)的正確性和相容性

學(xué)生的學(xué)號必須唯一性別只能是男或女本科學(xué)生年齡的取值范圍為14~50的整數(shù)學(xué)生所選的課程必須是學(xué)校開設(shè)的課程學(xué)生所在的院系必須是學(xué)校已成立的院系要求用戶在數(shù)據(jù)庫中添加或修改數(shù)據(jù)時必須保證一定的約束條件396.2數(shù)據(jù)庫完整性控制為維護數(shù)據(jù)庫的完整性,DBMS必須:1.提供定義完整性約束條件的機制2.提供完整性檢查的方法3.違約處理40數(shù)據(jù)庫完整性控制完整性檢查是圍繞完整性約束條件進(jìn)行的,因此,完整性約束條件是完整性控制機制的核心。數(shù)據(jù)完整性約束可以分為:屬性級約束,針對列的類型、取值范圍、精度、排序等而制定的約束條件。元組級約束,元組中的字段組和字段間聯(lián)系的約束;表級約束,若干元組間、關(guān)系之間聯(lián)系的約束;41數(shù)據(jù)庫完整性控制完整性控制機制應(yīng)具有的功能1)定義完整性功能,提供定義完整性約束條件的機制。2)檢查完整性功能,檢查用戶發(fā)出的操作請求,看其是否違背了完整性約束條件。3)控制完整性功能,監(jiān)視數(shù)據(jù)操作的整個過程,如果發(fā)現(xiàn)有違背了完整性約束條件的情況,則采取一定的動作來保證數(shù)據(jù)的完整性。在完整性控制技術(shù)中,當(dāng)違反完整性約束時,一般的處理方法是拒絕導(dǎo)致破壞完整性的操作。42數(shù)據(jù)庫完整性控制用附加操作來對參照完整性的處理在被參照關(guān)系中刪除元組的問題受限刪除:僅當(dāng)外碼表中沒有任何元組的外碼值與主碼表中要刪除元組的主碼值相同時,系統(tǒng)才執(zhí)行刪除操作,否則拒絕此刪除操作。級聯(lián)刪除:將外碼表中所有外碼值與主碼表中要刪除的元組主碼值相同的元組一起刪除。如果外碼表同時又是另一個關(guān)系的主碼表,則這種刪除操作會繼續(xù)級聯(lián)下去。置空值刪除:刪除主碼表的元組,并將外碼表中相應(yīng)元組的外碼值置空值。43數(shù)據(jù)庫完整性控制在被參照關(guān)系中修改元組的問題受限修改。如果外碼表中,有外碼值與主碼表中要修改的主碼值相同的元組,則拒絕修改。級聯(lián)修改。如果要修改主碼表中的某個元組的主碼值,則外碼表中相應(yīng)的外碼值也作相應(yīng)的修改。置空值修改。修改主碼表的元組,并將外碼表中相應(yīng)元組的外碼值置空值。44第六章數(shù)據(jù)庫保護技術(shù)6.1數(shù)據(jù)庫安全性控制6.2數(shù)據(jù)庫完整性控制6.3數(shù)據(jù)庫并發(fā)控制6.4數(shù)據(jù)庫恢復(fù)技術(shù)問題的產(chǎn)生多用戶數(shù)據(jù)庫系統(tǒng)的存在允許多個用戶同時使用的數(shù)據(jù)庫系統(tǒng)6.3數(shù)據(jù)庫并發(fā)控制并發(fā)控制:控制數(shù)據(jù)庫,防止多用戶并發(fā)使用數(shù)據(jù)庫時造成數(shù)據(jù)錯誤和程序運行錯誤,保證數(shù)據(jù)的完整性。事務(wù):事務(wù)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。在SQL語言中,定義事務(wù)的語句有三條:

BEGINTRANSACTION;

COMMIT;

ROLLBACK;476.3數(shù)據(jù)庫并發(fā)控制事務(wù)的四個特性成為ACID特性:執(zhí)行的原子性(Atomicity):一個事務(wù)中所有對數(shù)據(jù)庫的操作是一個不可分割的操作序列。這些操作要么全部執(zhí)行,要么全部不執(zhí)行結(jié)果的一致性(Consistency):事務(wù)執(zhí)行的結(jié)果必須是使得數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)彼此的隔離性(Isolation):多個事務(wù)并發(fā)執(zhí)行的時候,各個事務(wù)應(yīng)該像獨立執(zhí)行一樣,而不受其他事務(wù)的干擾作用的持久性(Durability):一個事務(wù)一旦完成其全部操作,它對數(shù)據(jù)庫的所有更新應(yīng)該永久得反映在數(shù)據(jù)庫中6.3數(shù)據(jù)庫并發(fā)控制ACID特性在下面兩種情況下可能遭到破壞多個事務(wù)并發(fā)執(zhí)行時,各自的操作交叉執(zhí)行事務(wù)在運行過程中被強行停止6.3數(shù)據(jù)庫并發(fā)控制并發(fā)操作帶來的數(shù)據(jù)不一致性丟失修改(LostUpdate)讀“臟”數(shù)據(jù)(DirtyRead)不可重復(fù)讀(Non-repeatableRead)記號R(x):讀數(shù)據(jù)xW(x):寫數(shù)據(jù)x1.丟失修改兩個事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2的提交結(jié)果破壞了T1提交的結(jié)果,導(dǎo)致T1的修改被丟失。丟失修改(續(xù))T1T2①R(A)=16②R(A)=16③A←A-2④A←A-1W(A)=14W(A)=15丟失修改2.不可重復(fù)讀不可重復(fù)讀是指事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2

執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果。不可重復(fù)讀(續(xù))T1讀取B=100進(jìn)行運算T2讀取同一數(shù)據(jù)B,對其進(jìn)行修改后將B=200寫回數(shù)據(jù)庫。T1為了對讀取值校對重讀B,B已為200,與第一次讀取值不一致T1T2①R(A)=50R(B)=100求和=150②R(B)=100B←B*2W(B)=200③R(A)=50R(B)=200和=250(驗算不對)不可重復(fù)讀例如:3.讀“臟”數(shù)據(jù)

讀“臟”數(shù)據(jù)是指:事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷這時T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)讀“臟”數(shù)據(jù)(續(xù))T1T2①R(C)=100C←C*2W(C)=200②R(C)=200③ROLLBACKC恢復(fù)為100例如讀“臟”數(shù)據(jù)T1將C值修改為200,T2讀到C為200T1由于某種原因撤銷,其修改作廢,C恢復(fù)原值100這時T2讀到的C為200,與數(shù)據(jù)庫內(nèi)容不一致,就是“臟”數(shù)據(jù)

并發(fā)控制概述(續(xù))數(shù)據(jù)不一致性:由于并發(fā)操作破壞了事務(wù)的隔離性并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個用戶事務(wù)的執(zhí)行不受其他事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性并發(fā)控制概述(續(xù))并發(fā)控制的主要技術(shù)封鎖(Locking)時間戳(Timestamp)樂觀控制法封鎖什么是封鎖基本封鎖類型鎖的相容矩陣什么是封鎖封鎖就是事務(wù)T在對某個數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論