第六章 數(shù)據(jù)庫(kù)保護(hù)技術(shù)_第1頁(yè)
第六章 數(shù)據(jù)庫(kù)保護(hù)技術(shù)_第2頁(yè)
第六章 數(shù)據(jù)庫(kù)保護(hù)技術(shù)_第3頁(yè)
第六章 數(shù)據(jù)庫(kù)保護(hù)技術(shù)_第4頁(yè)
第六章 數(shù)據(jù)庫(kù)保護(hù)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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)介

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

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

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

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

[ON<對(duì)象名>]

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

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

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

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

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

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

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

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

TO王平;

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

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

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

BEGINTRANSACTION;

COMMIT;

ROLLBACK;476.3數(shù)據(jù)庫(kù)并發(fā)控制事務(wù)的四個(gè)特性成為ACID特性:執(zhí)行的原子性(Atomicity):一個(gè)事務(wù)中所有對(duì)數(shù)據(jù)庫(kù)的操作是一個(gè)不可分割的操作序列。這些操作要么全部執(zhí)行,要么全部不執(zhí)行結(jié)果的一致性(Consistency):事務(wù)執(zhí)行的結(jié)果必須是使得數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)彼此的隔離性(Isolation):多個(gè)事務(wù)并發(fā)執(zhí)行的時(shí)候,各個(gè)事務(wù)應(yīng)該像獨(dú)立執(zhí)行一樣,而不受其他事務(wù)的干擾作用的持久性(Durability):一個(gè)事務(wù)一旦完成其全部操作,它對(duì)數(shù)據(jù)庫(kù)的所有更新應(yīng)該永久得反映在數(shù)據(jù)庫(kù)中6.3數(shù)據(jù)庫(kù)并發(fā)控制ACID特性在下面兩種情況下可能遭到破壞多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),各自的操作交叉執(zhí)行事務(wù)在運(yùn)行過(guò)程中被強(qiáng)行停止6.3數(shù)據(jù)庫(kù)并發(fā)控制并發(fā)操作帶來(lái)的數(shù)據(jù)不一致性丟失修改(LostUpdate)讀“臟”數(shù)據(jù)(DirtyRead)不可重復(fù)讀(Non-repeatableRead)記號(hào)R(x):讀數(shù)據(jù)xW(x):寫(xiě)數(shù)據(jù)x1.丟失修改兩個(gè)事務(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無(wú)法再現(xiàn)前一次讀取結(jié)果。不可重復(fù)讀(續(xù))T1讀取B=100進(jìn)行運(yùn)算T2讀取同一數(shù)據(jù)B,對(duì)其進(jìn)行修改后將B=200寫(xiě)回?cái)?shù)據(jù)庫(kù)。T1為了對(duì)讀取值校對(duì)重讀B,B已為200,與第一次讀取值不一致T1T2①R(A)=50R(B)=100求和=150②R(B)=100B←B*2W(B)=200③R(A)=50R(B)=200和=250(驗(yàn)算不對(duì))不可重復(fù)讀例如:3.讀“臟”數(shù)據(jù)

讀“臟”數(shù)據(jù)是指:事務(wù)T1修改某一數(shù)據(jù),并將其寫(xiě)回磁盤(pán)事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷這時(shí)T1已修改過(guò)的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫(kù)中的數(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這時(shí)T2讀到的C為200,與數(shù)據(jù)庫(kù)內(nèi)容不一致,就是“臟”數(shù)據(jù)

并發(fā)控制概述(續(xù))數(shù)據(jù)不一致性:由于并發(fā)操作破壞了事務(wù)的隔離性并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個(gè)用戶事務(wù)的執(zhí)行不受其他事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性并發(fā)控制概述(續(xù))并發(fā)控制的主要技術(shù)封鎖(Locking)時(shí)間戳(Timestamp)樂(lè)觀控制法封鎖什么是封鎖基本封鎖類型鎖的相容矩陣什么是封鎖封鎖就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(例如表、記錄等

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論