【數(shù)據(jù)庫系統(tǒng)】數(shù)據(jù)庫安全性_第1頁
【數(shù)據(jù)庫系統(tǒng)】數(shù)據(jù)庫安全性_第2頁
【數(shù)據(jù)庫系統(tǒng)】數(shù)據(jù)庫安全性_第3頁
【數(shù)據(jù)庫系統(tǒng)】數(shù)據(jù)庫安全性_第4頁
【數(shù)據(jù)庫系統(tǒng)】數(shù)據(jù)庫安全性_第5頁
已閱讀5頁,還剩122頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、西華師范大學(xué)計(jì)算機(jī)學(xué)院,第九章 數(shù)據(jù)庫安全性,第九章 數(shù)據(jù)庫安全性,問題的提出 數(shù)據(jù)庫的一大特點(diǎn)是數(shù)據(jù)可以共享 但數(shù)據(jù)共享必然帶來數(shù)據(jù)庫的安全性問題 數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)共享不能是無條件的共享 例:軍事秘密、 國(guó)家機(jī)密、 新產(chǎn)品實(shí)驗(yàn)數(shù)據(jù)、 市場(chǎng)需求分析、市場(chǎng)營(yíng)銷策略、銷售計(jì)劃、 客戶檔案、 醫(yī)療檔案、 銀行儲(chǔ)蓄數(shù)據(jù),數(shù)據(jù)庫安全性(續(xù)),數(shù)據(jù)庫中數(shù)據(jù)的共享是在DBMS統(tǒng)一的嚴(yán)格的控制之下的共享,即只允許有合法使用權(quán)限的用戶訪問允許他存取的數(shù)據(jù) 數(shù)據(jù)庫系統(tǒng)的安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)主要的性能指標(biāo)之一,數(shù)據(jù)庫安全性(續(xù)),什么是數(shù)據(jù)庫的安全性 數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫,防止因用戶非法使用數(shù)

2、據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。 什么是數(shù)據(jù)的保密 數(shù)據(jù)保密是指用戶合法地訪問到機(jī)密數(shù)據(jù)后能否對(duì)這些數(shù)據(jù)保密。 通過制訂法律道德準(zhǔn)則和政策法規(guī)來保證。,第九章 數(shù)據(jù)庫安全性,9.1 計(jì)算機(jī)安全性概論 9.2 數(shù)據(jù)庫安全性控制 9.3 統(tǒng)計(jì)數(shù)據(jù)庫安全性 9.4 小結(jié),9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.1 數(shù)據(jù)庫安全性控制概述,非法使用數(shù)據(jù)庫的情況 用戶編寫一段合法的程序繞過DBMS及其授權(quán)機(jī)制,

3、通過操作系統(tǒng)直接存取、修改或備份數(shù)據(jù)庫中的數(shù)據(jù); 直接編寫應(yīng)用程序執(zhí)行非授權(quán)操作;,數(shù)據(jù)庫安全性控制概述(續(xù)),通過多次合法查詢數(shù)據(jù)庫從中推導(dǎo)出一些保密數(shù)據(jù) 例:某數(shù)據(jù)庫應(yīng)用系統(tǒng)禁止查詢單個(gè)人的工資,但允許查任意一組人的平均工資。用戶甲想了解張三的工資,于是他: 首先查詢包括張三在內(nèi)的一組人的平均工資 然后查用自己替換張三后這組人的平均工資 從而推導(dǎo)出張三的工資 破壞安全性的行為可能是無意的,故意的,惡意的。,計(jì)算機(jī)系統(tǒng)中的安全模型,方法:,用戶標(biāo)識(shí) 和鑒定,存取控制 審計(jì) 視圖,操作系統(tǒng) 安全保護(hù),密碼存儲(chǔ),數(shù)據(jù)庫安全性控制概述(續(xù)),數(shù)據(jù)庫安全性控制的常用方法 用戶標(biāo)識(shí)和鑒定 存取控制 視

4、圖 審計(jì) 密碼存儲(chǔ),9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.2 用戶標(biāo)識(shí)與鑒別,用戶標(biāo)識(shí)與鑒別(Identification & Authentication) 系統(tǒng)提供的最外層安全保護(hù)措施,9.2.2 用戶標(biāo)識(shí)與鑒別,基本方法 系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份; 系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識(shí); 每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)核對(duì)用戶提供的身份標(biāo)識(shí); 通過鑒定后才提供機(jī)器使用權(quán)。

5、用戶標(biāo)識(shí)和鑒定可以重復(fù)多次,用戶標(biāo)識(shí)自己的名字或身份,用戶名/口令 簡(jiǎn)單易行,容易被人竊取 每個(gè)用戶預(yù)先約定好一個(gè)計(jì)算過程或者函數(shù) 系統(tǒng)提供一個(gè)隨機(jī)數(shù) 用戶根據(jù)自己預(yù)先約定的計(jì)算過程或者函數(shù)進(jìn)行計(jì)算 系統(tǒng)根據(jù)用戶計(jì)算結(jié)果是否正確鑒定用戶身份,9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.3 存取控制,存取控制機(jī)制的功能 存取控制機(jī)制的組成 定義存取權(quán)限 檢查存取權(quán)限 用戶權(quán)限定義和合法權(quán)檢查機(jī)制一起組成

6、了DBMS的安全子系統(tǒng),存取控制(續(xù)),定義存取權(quán)限 在數(shù)據(jù)庫系統(tǒng)中,為了保證用戶只能訪問他有權(quán)存取的數(shù)據(jù),必須預(yù)先對(duì)每個(gè)用戶定義存取權(quán)限。 檢查存取權(quán)限 對(duì)于通過鑒定獲得上機(jī)權(quán)的用戶(即合法用戶),系統(tǒng)根據(jù)他的存取權(quán)限定義對(duì)他的各種操作請(qǐng)求進(jìn)行控制,確保他只執(zhí)行合法操作。,存取控制(續(xù)),常用存取控制方法 自主存取控制(Discretionary Access Control ,簡(jiǎn)稱DAC) C2級(jí) 靈活 強(qiáng)制存取控制(Mandatory Access Control,簡(jiǎn)稱 MAC) B1級(jí) 嚴(yán)格,自主存取控制方法,同一用戶對(duì)于不同的數(shù)據(jù)對(duì)象有不同的存取權(quán)限 不同的用戶對(duì)同一對(duì)象也有不同的權(quán)

7、限 用戶還可將其擁有的存取權(quán)限轉(zhuǎn)授給其他用戶,強(qiáng)制存取控制方法,每一個(gè)數(shù)據(jù)對(duì)象被標(biāo)以一定的密級(jí) 每一個(gè)用戶也被授予某一個(gè)級(jí)別的許可證 對(duì)于任意一個(gè)對(duì)象,只有具有合法許可證的用戶才可以存取,9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.4 自主存取控制方法,定義存取權(quán)限 存取權(quán)限 存取權(quán)限由兩個(gè)要素組成 數(shù)據(jù)對(duì)象 操作類型,自主存取控制方法(續(xù)),關(guān)系系統(tǒng)中的存取權(quán)限 類型 數(shù)據(jù)對(duì)象操作類型 模 式 模

8、式建立、修改、刪除、檢索 外模式 建立、修改、刪除、檢索 內(nèi)模式建立、刪除、檢索 數(shù) 據(jù) 表查找、插入、修改、刪除 屬性列查找、插入、修改、刪除,自主存取控制方法(續(xù)),關(guān)系系統(tǒng)中的存取權(quán)限(續(xù)) 定義方法 GRANT/REVOKE,自主存取控制方法(續(xù)),關(guān)系系統(tǒng)中的存取權(quán)限(續(xù)) 例: 一張授權(quán)表 用戶名 數(shù)據(jù)對(duì)象名 允許的操作類型 王 平 關(guān)系Student SELECT 張明霞 關(guān)系Student UPDATE 張明霞 關(guān)系Course ALL 張明霞 SC. Grade UPDATE 張明霞 SC. Sno SELECT 張明霞 SC. Cno SELECT,自主存取控制方法(續(xù)),

9、檢查存取權(quán)限 對(duì)于獲得上機(jī)權(quán)后又進(jìn)一步發(fā)出存取數(shù)據(jù)庫操作的用戶 DBMS查找數(shù)據(jù)字典,根據(jù)其存取權(quán)限對(duì)操作的合法性進(jìn)行檢查 若用戶的操作請(qǐng)求超出了定義的權(quán)限,系統(tǒng)將拒絕執(zhí)行此操作,自主存取控制方法(續(xù)),授權(quán)粒度 授權(quán)粒度是指可以定義的數(shù)據(jù)對(duì)象的范圍 它是衡量授權(quán)機(jī)制是否靈活的一個(gè)重要指標(biāo)。 授權(quán)定義中數(shù)據(jù)對(duì)象的粒度越細(xì),即可以定義的數(shù)據(jù)對(duì)象的范圍越小,授權(quán)子系統(tǒng)就越靈活。,自主存取控制方法(續(xù)),關(guān)系數(shù)據(jù)庫中授權(quán)的數(shù)據(jù)對(duì)象粒度 數(shù)據(jù)庫 表 屬性列 行 能否提供與數(shù)據(jù)值有關(guān)的授權(quán)反映了授權(quán)子系統(tǒng)精巧程度,自主存取控制方法(續(xù)),實(shí)現(xiàn)與數(shù)據(jù)值有關(guān)的授權(quán) 利用存取謂詞 存取謂詞可以很復(fù)雜 可以引用

10、系統(tǒng)變量,如終端設(shè)備號(hào),系統(tǒng)時(shí)鐘等,實(shí)現(xiàn)與時(shí)間地點(diǎn)有關(guān)的存取權(quán)限,這樣用戶只能在某段時(shí)間內(nèi),某臺(tái)終端上存取有關(guān)數(shù)據(jù) 例:規(guī)定“教師只能在每年1月份和7月份星期一至星期五上午8點(diǎn)到下午5點(diǎn)處理學(xué)生成績(jī)數(shù)據(jù)”。,自主存取控制方法(續(xù)),例:擴(kuò)充后的授權(quán)表 用戶名 數(shù)據(jù)對(duì)象名 允許的操作類型 存取謂詞 王平 關(guān)系Student SELECT Sdept=CS 張明霞 關(guān)系Student UPDATE Sname=張明霞 張明霞 關(guān)系 Course ALL 空,自主存取控制方法(續(xù)),自主存取控制小結(jié) 定義存取權(quán)限 用戶 檢查存取權(quán)限 DBMS,自主存取控制方法(續(xù)),自主存取控制小結(jié)(續(xù)) 授權(quán)粒度

11、 數(shù)據(jù)對(duì)象粒度:數(shù)據(jù)庫、表、屬性列、行 數(shù)據(jù)值粒度:存取謂詞 授權(quán)粒度越細(xì),授權(quán)子系統(tǒng)就越靈活,能夠提供的安全性就越完善。但另一方面,因數(shù)據(jù)字典變大變復(fù)雜,系統(tǒng)定義與檢查權(quán)限的開銷也會(huì)相應(yīng)地增大。,自主存取控制方法(續(xù)),自主存取控制小結(jié)(續(xù)) 優(yōu)點(diǎn) 能夠通過授權(quán)機(jī)制有效地控制其他用戶對(duì)敏感數(shù)據(jù)的存取,自主存取控制方法(續(xù)),自主存取控制小結(jié)(續(xù)) 缺點(diǎn) 可能存在數(shù)據(jù)的“無意泄露” 原因:這種機(jī)制僅僅通過對(duì)數(shù)據(jù)的存取權(quán)限來進(jìn)行安全控制,而數(shù)據(jù)本身并無安全性標(biāo)記。 解決:對(duì)系統(tǒng)控制下的所有主客體實(shí)施強(qiáng)制存取控制策略,9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)

12、與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.5 強(qiáng)制存取控制方法,什么是強(qiáng)制存取控制 強(qiáng)制存取控制(MAC)是指系統(tǒng)為保證更高程度的安全性,按照TDI/TCSEC標(biāo)準(zhǔn)中安全策略的要求,所采取的強(qiáng)制存取檢查手段。 MAC不是用戶能直接感知或進(jìn)行控制的。 MAC適用于對(duì)數(shù)據(jù)有嚴(yán)格而固定密級(jí)分類的部門 軍事部門 政府部門,強(qiáng)制存取控制方法(續(xù)),主體與客體 在MAC中,DBMS所管理的全部實(shí)體被分為主體和客體兩大類 主體是系統(tǒng)中的活動(dòng)實(shí)體 DBMS所管理的實(shí)際用戶 代表用戶的各進(jìn)程 客

13、體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的 文件 基表 索引 視圖,強(qiáng)制存取控制方法(續(xù)),敏感度標(biāo)記 對(duì)于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label) 敏感度標(biāo)記分成若干級(jí)別 絕密(Top Secret) 機(jī)密(Secret) 可信(Confidential) 公開(Public),強(qiáng)制存取控制方法(續(xù)),主體的敏感度標(biāo)記稱為許可證級(jí)別(Clearance Level) 客體的敏感度標(biāo)記稱為密級(jí)(Classification Level) MAC機(jī)制就是通過對(duì)比主體的Label和客體的Label,最終確定主體是否能夠存取客體,強(qiáng)制存取控制方法(續(xù)),強(qiáng)制存取控制規(guī)則 當(dāng)

14、某一用戶(或某一主體)以標(biāo)記label注冊(cè)入系統(tǒng)時(shí),系統(tǒng)要求他對(duì)任何客體的存取必須遵循下面兩條規(guī)則: (1)僅當(dāng)主體的許可證級(jí)別大于或等于客體的密級(jí)時(shí),該主體才能讀取相應(yīng)的客體; (2)僅當(dāng)主體的許可證級(jí)別等于客體的密級(jí)時(shí),該主體才能寫相應(yīng)的客體。,強(qiáng)制存取控制方法(續(xù)),修正規(guī)則: 主體的許可證級(jí)別 =客體的密級(jí) 主體能寫客體 用戶可為寫入的數(shù)據(jù)對(duì)象賦予高于自 己的許可證級(jí)別的密級(jí) 一旦數(shù)據(jù)被寫入,該用戶自己也不能再讀該數(shù)據(jù)對(duì)象了。,強(qiáng)制存取控制方法(續(xù)),規(guī)則的共同點(diǎn) 禁止了擁有高許可證級(jí)別的主體 更新低密級(jí)的數(shù)據(jù)對(duì)象,強(qiáng)制存取控制方法(續(xù)),強(qiáng)制存取控制的特點(diǎn) MAC是對(duì)數(shù)據(jù)本身進(jìn)行密級(jí)

15、標(biāo)記 無論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體 只有符合密級(jí)標(biāo)記要求的用戶才可以操縱數(shù)據(jù) 從而提供了更高級(jí)別的安全性,MAC與DAC,DAC與MAC共同構(gòu)成DBMS的安全機(jī)制 原因:較高安全性級(jí)別提供的安全保護(hù)要包含較低級(jí)別的所有保護(hù) 先進(jìn)行DAC檢查,通過DAC檢查的數(shù)據(jù)對(duì)象再由系統(tǒng)進(jìn)行MAC檢查,只有通過MAC檢查的數(shù)據(jù)對(duì)象方可存取。,強(qiáng)制存取控制方法(續(xù)),DAC + MAC安全檢查示意圖 SQL語法分析 & 語義檢查 DAC 檢 查 安全檢查 MAC 檢 查 繼 續(xù),9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.

16、2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.6 視圖機(jī)制,視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來, 視圖機(jī)制更主要的功能在于提供數(shù)據(jù)獨(dú)立性,其安全保護(hù)功能太不精細(xì),往往遠(yuǎn)不能達(dá)到應(yīng)用系統(tǒng)的要求。,視圖機(jī)制(續(xù)),視圖機(jī)制與授權(quán)機(jī)制配合使用: 首先用視圖機(jī)制屏蔽掉一部分保密數(shù)據(jù) 視圖基礎(chǔ)上再進(jìn)一步定義存取權(quán)限 間接實(shí)現(xiàn)了支持存取謂詞的用戶權(quán)限定義,視圖機(jī)制(續(xù)),例:王平只能檢索計(jì)算機(jī)系學(xué)生的信息 先建立計(jì)算機(jī)系學(xué)生的視圖CS_Student CREATE VIEW CS_Student AS SE

17、LECT FROM Student WHERE Sdept=CS;,視圖機(jī)制(續(xù)),在視圖上進(jìn)一步定義存取權(quán)限 GRANT SELECT ON CS_Student TO 王平 ;,9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.7 審計(jì),什么是審計(jì) 啟用一個(gè)專用的審計(jì)日志(Audit Log) 將用戶對(duì)數(shù)據(jù)庫的所有操作記錄在上面 DBA可以利用審計(jì)日志中的追蹤信息 找出非法存取數(shù)據(jù)的人,審計(jì)(續(xù)),審計(jì)

18、功能的可選性 審計(jì)很費(fèi)時(shí)間和空間 DBA可以根據(jù)應(yīng)用對(duì)安全性的要求,靈活地打開或關(guān)閉審計(jì)功能。,審計(jì)(續(xù)),強(qiáng)制性機(jī)制: 用戶識(shí)別和鑒定、存取控制、視圖 預(yù)防監(jiān)測(cè)手段: 審計(jì)技術(shù),9.2 數(shù)據(jù)庫安全性控制,9.2.1 數(shù)據(jù)庫安全性控制概述 9.2.2 用戶標(biāo)識(shí)與鑒別 9.2.3 存取控制 9.2.4 自主存取控制方法 9.2.5 強(qiáng)制存取控制方法 9.2.6 視圖機(jī)制 9.2.7 審計(jì) 9.2.8 數(shù)據(jù)加密,9.2.8 數(shù)據(jù)加密,數(shù)據(jù)加密 防止數(shù)據(jù)庫中數(shù)據(jù)在存儲(chǔ)和傳輸中失密的有效手段 加密的基本思想 根據(jù)一定的算法將原始數(shù)據(jù)(術(shù)語為明文,Plain text)變換為不可直接識(shí)別的格式(術(shù)語為密

19、文,Cipher text) 不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容,數(shù)據(jù)加密(續(xù)),加密方法 替換方法 使用密鑰(Encryption Key)將明文中的每一個(gè)字符轉(zhuǎn)換為密文中的一個(gè)字符 置換方法 將明文的字符按不同的順序重新排列 混合方法 美國(guó)1977年制定的官方加密標(biāo)準(zhǔn):數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,簡(jiǎn)稱DES),數(shù)據(jù)加密(續(xù)),DBMS中的數(shù)據(jù)加密 有些數(shù)據(jù)庫產(chǎn)品提供了數(shù)據(jù)加密例行程序 有些數(shù)據(jù)庫產(chǎn)品本身未提供加密程序,但提供了接口,數(shù)據(jù)加密(續(xù)),數(shù)據(jù)加密功能通常也作為可選特征,允許用戶自由選擇 數(shù)據(jù)加密與解密是比較費(fèi)時(shí)的操作 數(shù)據(jù)加密與解密程序會(huì)占用

20、大量系統(tǒng)資源 應(yīng)該只對(duì)高度機(jī)密的數(shù)據(jù)加密,第九章 數(shù)據(jù)庫安全性,9.1 計(jì)算機(jī)安全性概論 9.2 數(shù)據(jù)庫安全性控制 9.3 統(tǒng)計(jì)數(shù)據(jù)庫安全性 9.4 小結(jié),9.3 統(tǒng)計(jì)數(shù)據(jù)庫安全性,統(tǒng)計(jì)數(shù)據(jù)庫的特點(diǎn) 允許用戶查詢聚集類型的信息(例如合計(jì)、平均值等) 不允許查詢單個(gè)記錄信息 例:允許查詢“程序員的平均工資是多少?” 不允許查詢“程序員張勇的工資?”,統(tǒng)計(jì)數(shù)據(jù)庫安全性(續(xù)),統(tǒng)計(jì)數(shù)據(jù)庫中特殊的安全性問題 隱蔽的信息通道 從合法的查詢中推導(dǎo)出不合法的信息,統(tǒng)計(jì)數(shù)據(jù)庫安全性(續(xù)),例1:下面兩個(gè)查詢都是合法的: 1本公司共有多少女高級(jí)程序員? 2本公司女高級(jí)程序員的工資總額是多少? 如果第一個(gè)查詢的結(jié)

21、果是“1”, 那么第二個(gè)查詢的結(jié)果顯然就是這個(gè)程序員的工資數(shù)。 規(guī)則1:任何查詢至少要涉及N(N足夠大)個(gè)以上的記錄,統(tǒng)計(jì)數(shù)據(jù)庫安全性(續(xù)),例2:用戶A發(fā)出下面兩個(gè)合法查詢: 1用戶A和其他N個(gè)程序員的工資總額是多少? 2用戶B和其他N個(gè)程序員的工資總額是多少? 若第一個(gè)查詢的結(jié)果是X,第二個(gè)查詢的結(jié)果是Y, 由于用戶A知道自己的工資是Z, 那么他可以計(jì)算出用戶B的工資=Y-(X-Z)。 原因:兩個(gè)查詢之間有很多重復(fù)的數(shù)據(jù)項(xiàng) 規(guī)則2:任意兩個(gè)查詢的相交數(shù)據(jù)項(xiàng)不能超過M個(gè),統(tǒng)計(jì)數(shù)據(jù)庫安全性(續(xù)),可以證明,在上述兩條規(guī)定下,如果想獲知用戶B的工資額 A至少需要進(jìn)行1+(N-2)/M次查詢 規(guī)則

22、3:任一用戶的查詢次數(shù)不能超過1+(N-2)/M 如果兩個(gè)用戶合作查詢就可以使這一規(guī)定失效,統(tǒng)計(jì)數(shù)據(jù)庫安全性(續(xù)),數(shù)據(jù)庫安全機(jī)制的設(shè)計(jì)目標(biāo): 試圖破壞安全的人所花費(fèi)的代價(jià) 得到的利益,第九章 數(shù)據(jù)庫安全性,9.1 計(jì)算機(jī)安全性概論 9.2 數(shù)據(jù)庫安全性控制 9.3 統(tǒng)計(jì)數(shù)據(jù)庫安全性 9.4 小結(jié),9.4 小結(jié),隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)的共享日益加強(qiáng),數(shù)據(jù)的安全保密越來越重要 DBMS是管理數(shù)據(jù)的核心,因而其自身必須具有一整套完整而有效的安全性機(jī)制。,小結(jié)(續(xù)),可信計(jì)算機(jī)系統(tǒng)評(píng)測(cè)標(biāo)準(zhǔn)TCSEC/TDI是目前各國(guó)所引用或制定的一系列安全標(biāo)準(zhǔn)中最重要的一個(gè)。 CSEC/TDI從安全策略、責(zé)任、

23、保證和文檔四個(gè)方面描述了安全性級(jí)別的指標(biāo),小結(jié)(續(xù)),實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術(shù)和方法有多種,最重要的是存取控制技術(shù)和審計(jì)技術(shù)。 目前許多大型DBMS 達(dá)到了C2級(jí),其安全版本達(dá)到了B1 C2級(jí)的DBMS必須具有自主存取控制功能和初步的審計(jì)功能 B1級(jí)的DBMS必須具有強(qiáng)制存取控制和增強(qiáng)的審計(jì)功能 自主存取控制功能一般是通過SQL 的GRANT語句和REVOKE語句來實(shí)現(xiàn)的,西華師范大學(xué)計(jì)算機(jī)學(xué)院,數(shù)據(jù)庫系統(tǒng)概論 An Introduction to Database System 第十章 數(shù)據(jù)庫完整性,第十章 數(shù)據(jù)庫完整性,什么是數(shù)據(jù)庫的完整性 數(shù)據(jù)的正確性和相容性 防止不合語義的數(shù)據(jù)進(jìn)入數(shù)

24、據(jù)庫。 例: 學(xué)生的年齡必須是整數(shù),取值范圍為14-29; 學(xué)生的性別只能是男或女; 學(xué)生的學(xué)號(hào)一定是唯一的; 學(xué)生所在的系必須是學(xué)校開設(shè)的系; 完整性:否真實(shí)地反映現(xiàn)實(shí)世界,完整性控制機(jī)制,1.完整性約束條件定義機(jī)制 2.完整性檢查機(jī)制 3.違約反應(yīng),完整性約束條件定義,完整性約束條件:數(shù)據(jù)模型的組成部分約束數(shù)據(jù)庫中數(shù)據(jù)的語義 DBMS應(yīng)提供定義數(shù)據(jù)庫完整性約束條件,并把它們作為模式的一部分存入數(shù)據(jù)庫中,完整性控制機(jī)制,檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件,違約反應(yīng),如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性。,第十章 數(shù)據(jù)庫完整性,10.

25、1 完整性約束條件 10.2 完整性控制 10.3 小結(jié),完整性約束條件(續(xù)),完整性約束條件作用的對(duì)象 列:對(duì)屬性的取值類型、范圍、精度等的約束條件 元組:對(duì)元組中各個(gè)屬性列間的聯(lián)系的約束 關(guān)系:對(duì)若干元組間、關(guān)系集合上以及關(guān)系之間的聯(lián)系的約束,完整性約束條件(續(xù)),靜態(tài) 對(duì)靜態(tài)對(duì)象的約束是反映數(shù)據(jù)庫狀態(tài)合理性的約束 動(dòng)態(tài) 對(duì)動(dòng)態(tài)對(duì)象的約束是反映數(shù)據(jù)庫狀態(tài)變遷的約束,完整性約束條件分類,六類完整性約束條件 靜態(tài)列級(jí)約束 靜態(tài)元組約束 靜態(tài)關(guān)系約束 動(dòng)態(tài)列級(jí)約束 動(dòng)態(tài)元組約束 動(dòng)態(tài)關(guān)系約束,完整性約束條件(續(xù)),對(duì)象狀態(tài) 動(dòng)態(tài)列級(jí)約束 動(dòng)態(tài)元組約束 動(dòng)態(tài)關(guān)系約束 動(dòng)態(tài) 靜態(tài)列級(jí)約束 靜態(tài)元組約

26、束 靜態(tài)關(guān)系約束 靜態(tài) 列 元組 關(guān)系 對(duì)象粒度,完整性約束條件(續(xù)),1. 靜態(tài)列級(jí)約束 靜態(tài)列級(jí)約束:對(duì)列的取值域的說明 最常見、最簡(jiǎn)單、最容易實(shí)現(xiàn)的一類完整性約束,完整性約束條件(續(xù)),五類靜態(tài)列級(jí)約束 1) 數(shù)據(jù)類型約束:數(shù)據(jù)的類型、長(zhǎng)度、單位、精度等 例:學(xué)生姓名的數(shù)據(jù)類型為字符型,長(zhǎng)度為8 2) 對(duì)數(shù)據(jù)格式的約束 例: 學(xué)號(hào):前兩位表示入學(xué)年份,后四位為順序編號(hào) 日期:YY.MM.DD。,完整性約束條件(續(xù)),3) 取值范圍或取值集合的約束 例:規(guī)定成績(jī)的取值范圍為0-100 年齡的取值范圍為14-29 性別的取值集合為男,女 4) 對(duì)空值的約束 空值:未定義或未知的值 空值:與零

27、值和空格不同 有的列允許空值,有的則不允許,如成績(jī)可為空值 5) 其他約束 例:關(guān)于列的排序說明,組合列等,完整性約束條件(續(xù)),2. 靜態(tài)元組約束 規(guī)定元組的各個(gè)列之間的約束關(guān)系 例:訂貨關(guān)系中發(fā)貨量=700元 靜態(tài)元組約束只局限在元組上,完整性約束條件(續(xù)),3. 靜態(tài)關(guān)系約束 關(guān)系的各個(gè)元組之間或若干關(guān)系之間存在的各種聯(lián)系或約束 常見靜態(tài)關(guān)系約束: 1) 實(shí)體完整性約束 2) 參照完整性約束 3) 函數(shù)依賴約束 4) 統(tǒng)計(jì)約束,函數(shù)依賴約束,關(guān)系字段間存在的函數(shù)依賴 例:在學(xué)生課程教師關(guān)系 SJT(S,J,T) 的函數(shù)依賴: ( (S,J)T, TJ ) 主碼: (S, J),統(tǒng)計(jì)約束,

28、定義某個(gè)字段值一個(gè)關(guān)系多個(gè)元組的統(tǒng)計(jì)值之間的約束關(guān)系 例:職工平均工資的2倍=部門經(jīng)理的工資= 職工平均工資的5倍 職工平均工資值: 統(tǒng)計(jì)值,完整性約束條件(續(xù)),4. 動(dòng)態(tài)列級(jí)約束 動(dòng)態(tài)列級(jí)約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,完整性約束條件(續(xù)),1) 修改列定義時(shí)的約束 例:將原來允許空值的列改為不允許空值時(shí): 該列目前已存在空值,則拒絕這種修改 2) 修改列值時(shí)的約束 修改列值時(shí)新舊值之間要滿足的約束條件 例:職工工資調(diào)整 = 原來工資 年齡只能增長(zhǎng),完整性約束條件(續(xù)),5. 動(dòng)態(tài)元組約束 修改元組值: 各個(gè)字段之間要滿足的約束條件 例: 職工工資調(diào)整不得低于其原來工資 + 工齡

29、*1.5,完整性約束條件(續(xù)),6. 動(dòng)態(tài)關(guān)系約束 關(guān)系變化前后狀態(tài):限制條件 例:事務(wù)一致性、原子性等約束條件,完整性約束條件小結(jié),第十章 數(shù)據(jù)庫完整性,10.1 完整性約束條件 10.2 完整性控制 10.3 小結(jié),10.2 完整性控制,一、DBMS的完整性控制機(jī)制 二、關(guān)系系統(tǒng)三類完整性的實(shí)現(xiàn) 三、參照完整性的實(shí)現(xiàn),一、DBMS的完整性控制機(jī)制,1. 定義功能 一個(gè)完善的完整性控制機(jī)制應(yīng)該允許用戶定義各類完整性約束條件。,DBMS的完整性控制機(jī)制(續(xù)),2. 檢查功能 立即執(zhí)行的約束(Immediate constraints) 語句執(zhí)行完后立即檢查是否違背完整性約束 延遲執(zhí)行的約束(D

30、eferred constrainsts) 完整性檢查延遲到整個(gè)事務(wù)執(zhí)行結(jié)束后 進(jìn)行,DBMS的完整性控制機(jī)制(續(xù)),例:銀行數(shù)據(jù)庫中“借貸總金額應(yīng)平衡”的約束 就應(yīng)該是延遲執(zhí)行的約束 從賬號(hào)A轉(zhuǎn)一筆錢到賬號(hào)B為一個(gè)事務(wù),從賬號(hào)A轉(zhuǎn)出去錢后賬就不平了,必須等轉(zhuǎn)入賬號(hào)B后賬才能重新平衡,這時(shí)才能進(jìn)行完整性檢查。,DBMS的完整性控制機(jī)制(續(xù)),3. 違約反應(yīng) 拒絕該操作 其他處理方法,DBMS的完整性控制機(jī)制(續(xù)),完整性規(guī)則五元組表示: (D,O,A,C,P) D(Data) 約束作用的數(shù)據(jù)對(duì)象; O(Operation) 觸發(fā)完整性檢查的數(shù)據(jù)庫操作 當(dāng)用戶發(fā)出什么操作請(qǐng)求時(shí)需要檢查該完整性規(guī)

31、則 是立即檢查還是延遲檢查; A(Assertion) 數(shù)據(jù)對(duì)象必須滿足的斷言或語義約束這是規(guī)則的主體; C(Condition) 選擇A作用的數(shù)據(jù)對(duì)象值的謂詞; P(Procedure) 違反完整性規(guī)則時(shí)觸發(fā)的過程。,DBMS的完整性控制機(jī)制(續(xù)),例1:在“學(xué)號(hào)不能為空”的約束中 D 約束作用的對(duì)象為Sno屬性 O 插入或修改Student 元組時(shí) A Sno不能為空 C 無(A可作用于所有記錄的Sno屬性) P 拒絕執(zhí)行該操作,DBMS的完整性控制機(jī)制(續(xù)),例2:在“教授工資不得低于1000元”的約束中 D 約束作用的對(duì)象為工資Sal屬性 O 插入或修改職工元組時(shí) A Sal不能小于1

32、000 C 職稱=教授 (A僅作用于職稱=教授的記錄) P 拒絕執(zhí)行該操作,二、關(guān)系系統(tǒng)三類完整性的實(shí)現(xiàn),關(guān)系數(shù)據(jù)庫系統(tǒng)都提供了定義和檢查實(shí)體完整性、參照完整性和用戶定義的完整性的功能 違反實(shí)體完整性規(guī)則和用戶定義的完整性規(guī)則的操作: 一般是拒絕執(zhí)行 違反參照完整性的操作: 拒絕執(zhí)行 接受這個(gè)操作,同時(shí)執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的狀態(tài)正確,三、參照完整性的實(shí)現(xiàn),例:職工部門數(shù)據(jù)庫包含職工表EMP和部門表DEPT 1 DEPT關(guān)系的主碼為部門號(hào)Deptno 2 EMP關(guān)系的主碼為職工號(hào)Empno, 外碼為部門號(hào)Deptno 稱DEPT為被參照關(guān)系或目標(biāo)關(guān)系,EMP為參照關(guān)系 RDBMS實(shí)現(xiàn)

33、參照完整性時(shí)需要考慮以下4方面:,1. 外碼是否可以接受空值的問題,外碼是否能夠取空值:依賴于應(yīng)用環(huán)境的語義 實(shí)現(xiàn)參照完整性: 系統(tǒng)提供定義外碼的機(jī)制 定義外碼列是否允許空值的機(jī)制,1. 外碼是否可以接受空值的問題,例1:在職工部門數(shù)據(jù)庫中, EMP關(guān)系包含有外碼Deptno 某元組的這一列若為空值,表示這個(gè)職工尚未分配到任何具體的部門工作 和應(yīng)用環(huán)境的語義是相符,1. 外碼是否可以接受空值的問題,例2:學(xué)生選課數(shù)據(jù)庫 Student關(guān)系為被參照關(guān)系,其主碼為Sno。 SC為參照關(guān)系,外碼為Sno。 若SC的Sno為空值:表明尚不存在的某個(gè)學(xué)生,或者某個(gè)不知學(xué)號(hào)的學(xué)生,選修了某門課程,其成績(jī)記

34、錄在Grade中 與學(xué)校的應(yīng)用環(huán)境是不相符的,因此SC的Sno列不能取空值。,2.在被參照關(guān)系中刪除元組時(shí)的問題,出現(xiàn)違約操作的情形: 刪除被參照關(guān)系的某個(gè)元組(student) 而參照關(guān)系有若干元組(SC)的外碼值與被刪除的被參照關(guān)系的主碼值相同,2.在被參照關(guān)系中刪除元組時(shí)的問題,違約反應(yīng):可有三種策略 級(jí)聯(lián)刪除(CASCADES) 受限刪除(RESTRICTED) 置空值刪除(NULLIFIES) 這三種處理方法,哪一種是正確的,要依應(yīng)用環(huán)境的語義來定,2.在被參照關(guān)系中刪除元組時(shí)的問題,級(jí)聯(lián)刪除 將參照關(guān)系中外碼值與被參照關(guān)系中要?jiǎng)h除元 組主碼值相對(duì)應(yīng)的元組一起刪除 受限刪除 當(dāng)參照關(guān)

35、系中沒有任何元組的外碼值與要?jiǎng)h除 的被參照關(guān)系的元組的主碼值相對(duì)應(yīng)時(shí),系統(tǒng) 才執(zhí)行刪除操作,否則拒絕此刪除操作,2.在被參照關(guān)系中刪除元組時(shí)的問題,置空值刪除 刪除被參照關(guān)系的元組,并將參照關(guān)系 中與被參照關(guān)系中被刪除元組主碼值相 等的外碼值置為空值。,2.在被參照關(guān)系中刪除元組時(shí)的問題,例:要?jiǎng)h除Student關(guān)系中Sno=950001的元組, 而SC關(guān)系中有4個(gè)元組的Sno都等于950001。 級(jí)聯(lián)刪除:將SC關(guān)系中所有4個(gè)Sno=950001的元組一起刪除。如果參照關(guān)系同時(shí)又是另一個(gè)關(guān)系的被參照關(guān)系,則這種刪除操作會(huì)繼續(xù)級(jí)聯(lián)下去 受限刪除:系統(tǒng)將拒絕執(zhí)行此刪除操作。,2.在被參照關(guān)系中刪

36、除元組時(shí)的問題,置空值刪除:將SC關(guān)系中所有Sno=950001的元組的Sno值置為空值。 在學(xué)生選課數(shù)據(jù)庫中,顯然第一種方法和第二種方法都是對(duì)的。第三種方法不符合應(yīng)用環(huán)境語義。,3.在參照關(guān)系中插入元組時(shí)的問題,出現(xiàn)違約操作的情形 需要在參照關(guān)系中插入元組,而被參照關(guān)系不存在相應(yīng)的元組 違約反應(yīng) 受限插入 遞歸插入,3.在參照關(guān)系中插入元組時(shí)的問題,受限插入 僅當(dāng)被參照關(guān)系中存在相應(yīng)的元組,其主碼值與參照關(guān)系插入元組的外碼值相同時(shí),系統(tǒng)才執(zhí)行插入操作,否則拒絕此操作。 遞歸插入 首先向被參照關(guān)系中插入相應(yīng)的元組,其主碼值等于參照關(guān)系插入元組的外碼值,然后向參照關(guān)系插入元組。,3.在參照關(guān)系中插入元組時(shí)的問題,例:向SC關(guān)系插入(99001,1,90)元組,而Student關(guān)系中尚沒有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論