數(shù)據(jù)庫的安全性與完整性_第1頁
數(shù)據(jù)庫的安全性與完整性_第2頁
數(shù)據(jù)庫的安全性與完整性_第3頁
數(shù)據(jù)庫的安全性與完整性_第4頁
數(shù)據(jù)庫的安全性與完整性_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫的安全性與完整性第1頁,共29頁,2023年,2月20日,星期五

第七章數(shù)據(jù)庫的安全性與完整性

7.1基本概念數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性、有效性和相容性。能適應(yīng)網(wǎng)絡(luò)環(huán)境下安全要求級別的數(shù)據(jù)庫為安全數(shù)據(jù)庫或可信數(shù)據(jù)庫??尚庞?jì)算基是指為實(shí)現(xiàn)數(shù)據(jù)庫安全的所有實(shí)施策略和機(jī)制的集合。數(shù)據(jù)安全性標(biāo)準(zhǔn):P.208表7.1第2頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制安全措施應(yīng)該一級一級層層設(shè)置。計(jì)算機(jī)系統(tǒng)的安全模型

P.207圖7-1用戶標(biāo)識和鑒別DB數(shù)據(jù)密碼存儲OS安全保護(hù)DBMS存取控制第3頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制數(shù)據(jù)庫安全控制方法一、用戶標(biāo)識與鑒別1.利用用戶自身具備的各種自然特征標(biāo)識自己和提供鑒別的依據(jù)。2.利用用戶持有的證件。3.利用口令。口令保密可采用的一些方法:(1)擴(kuò)大口令集和口令長度。(2)規(guī)定口令的生效時(shí)間,定期或不定期地更換口令。(3)設(shè)置多層口令系統(tǒng)。(4)設(shè)置動態(tài)口令。第4頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制二、存取控制1.存取控制方法DBMS的安全子系統(tǒng)主要包括兩部分:定義用戶權(quán)限,并將用戶權(quán)限登記到數(shù)據(jù)字典中。合法權(quán)限檢查,若用戶的操作請求超出了定義的權(quán)限,系統(tǒng)將拒絕執(zhí)行此操作。用戶權(quán)限組成:數(shù)據(jù)對象和操作類型。在數(shù)據(jù)庫系統(tǒng)中,定義存取權(quán)限稱為授權(quán)。(1)自主存取控制(DAC)

用戶對于不同的數(shù)據(jù)對象有不同的存取權(quán)限,不同的用戶對同一對象也有不同的權(quán)限,而且用戶還可將其擁有的存取權(quán)限轉(zhuǎn)授給其他用戶。因此自主存取控制非常靈活。第5頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制(2)強(qiáng)制存取控制(MAC)在強(qiáng)制存取控制(MAC)方法中,每一個(gè)數(shù)據(jù)對象被標(biāo)以一定的密級,每一個(gè)用戶也被授予某一個(gè)級別的許可證。對于任意一個(gè)對象,只有具有合法許可證的用戶才可以存取。強(qiáng)制存取控制因此相對比較嚴(yán)格。MAC適用于對數(shù)據(jù)有嚴(yán)格而固定密級分類的部門。主體是指數(shù)據(jù)庫中數(shù)據(jù)訪問者、(用戶、DBA)進(jìn)程、線程等,是系統(tǒng)中的活動實(shí)體??腕w是指數(shù)據(jù)庫中數(shù)據(jù)及其載體(表、視圖、索引、存儲過程等),是系統(tǒng)中的被動實(shí)體。第6頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制對于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。敏感度標(biāo)記被分成若干級別,例如絕密、機(jī)密、可信、公開等。主體的敏感度標(biāo)記稱為許可證級別??腕w的敏感度標(biāo)記稱為密級??腕w子集主體子集訪問第7頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制MAC機(jī)制就是通過對比主體的Label和客體的Label,最終確定主體是否能夠存取客體。當(dāng)某一主體以標(biāo)記label注冊入系統(tǒng)時(shí),系統(tǒng)要求他對任何客體的存取必須遵循如下規(guī)則:

①僅當(dāng)主體的許可證級別大于或等于客體的密級時(shí),該主體才能讀取相應(yīng)的客體;②

僅當(dāng)主體的許可證級別小于或等于客體的密級時(shí),該主體才能寫相應(yīng)的客體。這兩種規(guī)則的共同點(diǎn)在于它們均禁止了擁有高許可證級別的主體更新低密級的數(shù)據(jù)對象,從而防止了敏感數(shù)據(jù)的泄漏。第8頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制2.存取控制的實(shí)現(xiàn)(1)用戶分類和權(quán)限

用戶:系統(tǒng)用戶(DBA)、數(shù)據(jù)對象屬主(owner)、一般用戶、公共用戶(public)。權(quán)限:包括數(shù)據(jù)訪問權(quán)限(讀、插入、修改、刪除等)和數(shù)據(jù)庫模式修改權(quán)限(索引、資源、修改、撤消等)兩類。第9頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制

1、授權(quán)

GRANT語句向用戶授予操作權(quán)限一般格式為:

GRANT<權(quán)限>[,<權(quán)限>]…[ON<對象類型><對象名>]TO<用戶>[,<用戶>]...

[WITHGRANTOPTION]語義為:將對指定操作對象的指定操作權(quán)限授予指定的用戶。可將此權(quán)限轉(zhuǎn)授對不同類型的操作對象有不同的操作權(quán)限。如P130表3.4所示。第10頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制例:把查詢表SC和修改其學(xué)號的權(quán)限授給用戶

U2和U4。

GRANTSELECT,

UPDATE(Sno)ONTABLESCTOU2,U4;例:把對表SC的INSERT權(quán)限授給用戶U5,并允許將此權(quán)限再授予其他用戶。

GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;U5還可以將此權(quán)限授予U6:

GRANTINSERTONTABLESCTOU6;PUBLIC;全體。U6能不能再傳播此權(quán)限?第11頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制例:

DBA把在數(shù)據(jù)庫DB1中建立表的權(quán)限授予用戶U1。

GRANTCREATETABONDATABASEDB1TOU1;GRANT語句可以:一次向一個(gè)用戶授權(quán);一次向多個(gè)用戶授權(quán);一次傳播多個(gè)同類對象的權(quán)限;一次可以完成對基本表、視圖和屬性列這些不同對象的授權(quán)。

2、收回權(quán)限級聯(lián):(但系統(tǒng)只收回直接或間接從某處獲得的權(quán)限)UAUB改U1查U2改改U3UA回收U1隱含權(quán)限?第12頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制三、視圖機(jī)制通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護(hù)。四.數(shù)據(jù)加密以密碼形式存儲和傳輸數(shù)據(jù)。五、審計(jì)

審計(jì)是對選定的用戶動作的監(jiān)控和記錄,以監(jiān)測可能的不合法行為。

審計(jì)常用于:(1)審查可疑的活動。(2)監(jiān)視和收集關(guān)于數(shù)據(jù)庫活動的數(shù)據(jù)。第13頁,共29頁,2023年,2月20日,星期五7.2數(shù)據(jù)庫安全性控制六.統(tǒng)計(jì)數(shù)據(jù)庫的安全性統(tǒng)計(jì)數(shù)據(jù)庫:只允許用戶查詢聚集類型信息,不允許查詢單個(gè)記錄信息的數(shù)據(jù)庫。在統(tǒng)計(jì)DB中存在著特殊的安全問題:即可能有隱蔽的信息通道,使合法的查詢導(dǎo)出不合法的信息。如:P.348例1P.348例2方法:限定查詢的記錄量(查詢至少涉及N個(gè)以上的記錄)限定查詢的次數(shù)(規(guī)定任意兩個(gè)查詢相交的數(shù)據(jù)項(xiàng)不能超過M個(gè))第14頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制一、數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性:是指數(shù)據(jù)的正確性、有效性和相容性。說明:完整性是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出。

數(shù)據(jù)庫完整性約束條件:加在數(shù)據(jù)庫數(shù)據(jù)之上的語義約束條件。完整性檢查:而DBMS中檢查數(shù)據(jù)是否滿足完整性條件的機(jī)制。

第15頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制

DBMS的完整性控制機(jī)制應(yīng)具有三個(gè)方面的功能:(1)定義功能:提供定義完整性約束條件的機(jī)制。(2)檢查功能:檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。(3)防范功能:如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,采取一定的動作來保證數(shù)據(jù)的完整性。第16頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制

完整性控制的規(guī)則:一條完整性規(guī)則可以用一個(gè)五元組(D,O,A,C,P)來表示:(1)D(Data)約束作用的數(shù)據(jù)對象;(2)O(Operation)觸發(fā)完整性檢查的數(shù)據(jù)庫操作,即當(dāng)用戶發(fā)出什么操作請求時(shí)需要檢查該完整性規(guī)則,是立即檢查還是延遲檢查;(3)A(Assertion)數(shù)據(jù)對象必須滿足的斷言或語義約束,這是規(guī)則的主體;(4)C(Condition)選擇A作用的數(shù)據(jù)對象值的謂詞;(5)P(Procedure)違反完整性規(guī)則時(shí)觸發(fā)的過程。第17頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制如:在“教授工資不得低于1000元”的約束中:

D約束作用的對象為工資Sal屬性

O插入或修改職工元組時(shí)

ASal不能小于1000C職稱='教授'(A僅作用于職稱='教授'的記錄)P拒絕執(zhí)行該操作第18頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制

完整性的語義約束和檢查:(1)立即執(zhí)行約束:檢查是否違背完整性約束的時(shí)機(jī)通常是在一條語句執(zhí)行完后立即檢查。(2)延遲執(zhí)行約束:完整性檢查延遲到整個(gè)事務(wù)執(zhí)行結(jié)束后再進(jìn)行,檢查正確方可提交。(3)在事務(wù)的某些特定檢查點(diǎn)檢查。(4)在一個(gè)維護(hù)操作請求之后且執(zhí)行之前檢查。(5)在DBA或?qū)徲?jì)員發(fā)出檢查請求時(shí)。第19頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制二、完整性約束條件

作用的對象:關(guān)系、元組、列靜態(tài)約束:是指數(shù)據(jù)庫每一確定狀態(tài)時(shí)的數(shù)據(jù)對象所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)合理性的約束。動態(tài)約束:是指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(shí),新、舊值之間所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)變遷的約束。第20頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制1、靜態(tài)列級約束是對一個(gè)列的取值域的說明:對數(shù)據(jù)類型、格式的約束;對取值范圍或取值集合的約束;對空值的約束;其他約束,(例如關(guān)于列的排序說明,組合列等)。2、靜態(tài)元組約束是規(guī)定元組的各個(gè)列之間的約束關(guān)系。3、靜態(tài)關(guān)系約束在一個(gè)關(guān)系的各個(gè)元組之間或者若干關(guān)系之間常常存在各種聯(lián)系或約束。

常見的靜態(tài)關(guān)系約束有:

(1)實(shí)體完整性約束。

(2)參照完整性約束。

(3)函數(shù)依賴約束。

(4)統(tǒng)計(jì)約束。4、動態(tài)列級約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,包括下面兩方面:

(1)修改列定義時(shí)的約束

(2)修改列值時(shí)的約束第21頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制5、動態(tài)元組約束是指修改元組的值時(shí)元組中各個(gè)字段間需要滿足某種約束條件。6、動態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件。第22頁,共29頁,2023年,2月20日,星期五完整性約束條件分類

狀態(tài)粒度列級元組級關(guān)系級

靜態(tài)列級約束:列定義

·類型

·格式

·值域

·空值

靜態(tài)動態(tài)動態(tài)列級約束:改變列定義或列值動態(tài)元組約束:元組新舊值之間應(yīng)滿足約束條件動態(tài)關(guān)系約束:關(guān)系新舊狀態(tài)間應(yīng)滿足的的約束條件

靜態(tài)關(guān)系約束:實(shí)體完整性約束參照完整性約束函數(shù)依賴約束統(tǒng)計(jì)約束

靜態(tài)元組約束:元組的列之間應(yīng)滿足的約束關(guān)系第23頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制三、SQL中的完整性約束1、基本表的約束(1)主碼約束

PRIMARYKEY(<列名表>)(2)外碼約束

FOREIGNKEY(<列名表>)REFERENCE<目標(biāo)表>[(<列名表>)][ONDELETE<參照動作>][ONUPDATE<參照動作>]<參照動作>:NOACTION、CASCADE、RESTRICT、SETNULL、SETDEFAULT第24頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制實(shí)現(xiàn)參照完整性要考慮的問題:①在被參照關(guān)系中刪除元組這時(shí)主要有三種不同的策略:級聯(lián)刪除(CASCADE)受限刪除(RESTRICT)置空值刪除(SETNULL)

②修改被參照關(guān)系中主碼若允許修改主碼,主要有三種不同的策略:級聯(lián)修改(CASCADE)受限修改(RESTRICT)置空值修改(SETNULL)第25頁,共29頁,2023年,2月20日,星期五7.3數(shù)據(jù)庫的完整性控制(3)檢查約束

CHECK(<條件表達(dá)式>)2、域約束

CREATEDOMAIN<域名><域類型>CHECK(<條件>)

例:8.133、斷言注意:CHECK子句只對定義它的表起作用,對其它表不起作用。

例:8.11所以:當(dāng)約束條件涉及多個(gè)表、使用聚集操作時(shí)應(yīng)使用斷言。

CREATEASSERTION<斷言名>CHECK(<條件>)

例8.15、8.16第26頁,共29頁,2023年,2月20日,星期五7.4觸發(fā)器

觸發(fā)器:當(dāng)對相關(guān)表執(zhí)行INSERT、UPDATE、DELETE語句時(shí)被隱式執(zhí)行的過程。觸發(fā)器與存儲過程的區(qū)別:存儲過程由用戶或應(yīng)用顯示執(zhí)行;觸

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論