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

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)基礎教程第7章 數(shù)據(jù)庫安全性與完整性計算機普及帶來數(shù)據(jù)保密企業(yè)運營需要防止數(shù)據(jù)被破壞巨額資金數(shù)據(jù)庫管理需要保護數(shù)據(jù)第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1數(shù)據(jù)庫安全性保護7.1.1數(shù)據(jù)庫安全性問題提出1計算機外部環(huán)境保護2計算機內(nèi)部系統(tǒng)保護第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.2 數(shù)據(jù)庫安全性保護范圍關系數(shù)據(jù)庫系統(tǒng)的軟件平臺是操作系統(tǒng),DBMS需要建立在操作系統(tǒng)之上,操作系統(tǒng)統(tǒng)管數(shù)據(jù)系統(tǒng)的各種資源,同時某些DBMS還使用操作系統(tǒng)中的文件管理功能。安全的操作系統(tǒng)是安全的數(shù)據(jù)庫重要前提。操作系統(tǒng)應能保證數(shù)據(jù)庫中的數(shù)據(jù)必須經(jīng)由DBMS方可訪問,不容許

2、用戶超越DBMS直接通過操作系統(tǒng)進入數(shù)據(jù)庫。即是說,數(shù)據(jù)庫必須時刻處在DBMS的監(jiān)控之下,即使通過操作系統(tǒng)要訪問數(shù)據(jù)庫,也必須在DBMS中辦理注冊手續(xù)。 第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.3 操作系統(tǒng)安全性保護1.身份標識與鑒別用戶身份標識與鑒別(Identification And Authentication)是系統(tǒng)提供的最外層安全保護措施。其方法是每個用戶在系統(tǒng)中必須有一個標志自己身份的標識符,用以和其它用戶相區(qū)別。當用戶進入系統(tǒng)時,由系統(tǒng)將用戶提供的身份標識與系統(tǒng)內(nèi)部記錄的合法用戶標識進行核對,通過鑒別后方提供數(shù)據(jù)庫的使用權 第7章 數(shù)據(jù)庫安全性與完整性: 7

3、.1 安全性保護 7.1.4 DBMS安全性保護(1) 2.存取控制在存取控制技術中,DBMS所管理的全體實體分為主體和客體兩類。主體(Subject)是系統(tǒng)中的活動實體,它包括DBMS所管理的實際用戶,也包括代表用戶的各種進程??腕w(Object)是系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基本表、索引和視圖等。第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.4 DBMS安全性保護(2) 3.審計追蹤在數(shù)據(jù)庫安全中除了采取有效手段對主體訪問客體作檢查外,還采取輔助的跟蹤、審計手段,隨時記錄主體對客體訪問的軌跡,并做出分析供參考,同時在一旦發(fā)生非法訪問后即能提供初始記錄供進一步處

4、理,這就是數(shù)據(jù)庫安全保護中的審計(Audit)。在DBS中,通常將用于安全目的的數(shù)據(jù)庫日志稱為審計追蹤(audit trail)第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.4 DBMS安全性保護(3) 1.視圖機制在數(shù)據(jù)庫安全性問題中,一般用戶使用數(shù)據(jù)庫時,需要對其使用范圍設定必要限制,即每個用戶只能訪問數(shù)據(jù)庫中的一部分數(shù)據(jù)。這種必須的限制可以通過使用視圖實現(xiàn)。具體來說,就是根據(jù)不同的用戶定義不同的視圖,通過視圖機制將具體用戶需要訪問的數(shù)據(jù)加以確定,而將要保密的數(shù)據(jù)對無權存取這些數(shù)據(jù)的用戶隱藏起來,使得用戶只能在視圖定義的范圍內(nèi)訪問數(shù)據(jù),不能隨意訪問視圖定義外的數(shù)據(jù),從而自動地

5、對數(shù)據(jù)提供相應的安全保護。第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(1)2.授權機制在SQL中提供了自主訪問控制權的功能,它包括了操作、數(shù)據(jù)域和用戶等部分。 操作 SQL提供六種操作權限。 SELECT權限:即數(shù)據(jù)對象查詢權。 INSERT權限:即數(shù)據(jù)對象插入權。 DELETE權限:即數(shù)據(jù)對象刪除權。第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(2) UPDATE權限:即數(shù)據(jù)對象修改權。 REFRENCE權限:也就是定義新表時允許使用其它表的屬性集作為其外鍵。 USAGE權:也就是允許用戶使用已定義的屬性。第7

6、章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(3) 數(shù)據(jù)對象 數(shù)據(jù)對象即是用戶訪問的數(shù)據(jù)對象的粒度,SQL包含三種數(shù)據(jù)對象。表:即是以基本表作為訪問對象。視圖:即是以視圖為訪問對象。屬性:即是以基表中屬性為訪問對象。 用戶 即是數(shù)據(jù)庫中所登錄的用戶。第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(4) 授權語句 SQL提供了授權語句,其語句形式如下:GRANT,| ALL ONTO,用戶|PUBLICWITH GRANT OPTION第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(5

7、) 回收語句 用戶A將某權限授予用戶B,則用戶A也可以在它認為必要時將權限從B中回收,收回權限的語句稱為回收語句,其具體形式如下:REVOKE|ALLONFROM,,| PUBLIC CASCADE | RESTRICT第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(6)3.角色機制 在較大規(guī)模的DBS中,用戶數(shù)量通常都非常之大,使用數(shù)據(jù)庫的權限也不盡相同。為了便于管理,需要引入角色概念。第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(7)可以把使用數(shù)據(jù)庫的權限用GRANT語句授予角色,在把角色授予用戶,這樣用戶就擁有

8、了使用數(shù)據(jù)庫的權限,其一般語句格式如下:GRANT ON TOGRANT TO 角色之間可以存在一個角色鏈,也就是說可以將一個角色授予另一個角色,而后一個角色也擁有前一個角色的權限,其語句格式為:GRANT TO 第7章 數(shù)據(jù)庫安全性與完整性: 7.1 安全性保護 7.1.5 SQL安全性保護機制(8)通常所講到的數(shù)據(jù)庫的完整性(Integrity)的基本含義是指數(shù)據(jù)庫的正確性、有效性和相容性,其主要目的是防止錯誤的數(shù)據(jù)進入數(shù)據(jù)庫。正確性(correctness) 是指數(shù)據(jù)的合法性,例如數(shù)值型數(shù)據(jù)中只能含有數(shù)字而不能含有字母。有效性(valid) 是指數(shù)據(jù)是否屬于所定義域的有效范圍。相容性(c

9、onsistency) 是指表示同一事實的兩個數(shù)據(jù)應當一致,不一致即是不相容。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念 (1) 2.完整性約束條件 靜態(tài)屬性級約束 靜態(tài)元組級約束 靜態(tài)關系級約束 動態(tài)屬性級約束 動態(tài)元組級約束 動態(tài)關系級約束 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念 (2) 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(3) (1)實體完整性規(guī)則當屬性A是基本關系R的主屬性時,屬性A不能取空值第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.

10、2.1 完整性基本概念(4) (2)參照完整性規(guī)則如果屬性或?qū)傩越MF是基本表R的外鍵,它與基本表S的主鍵Ks相對應(這里R和S不一定是兩個不同的關系),則對于R中每個元組在F上的取值應當滿足:或者取空值,即F的每個屬性值均為空值?;蛘叩扔赟中某個元組的主鍵值。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(5) 例7-8 學生實體和課程實體可以用關系S和C表示:S(S#,Sn,Se,Sa,C#)C(C#,Cn)其中,S#,Sn,Sex,Sa,C#, Cn分別表示屬性:學號、姓名、性別、年齡、課程號和課程名;而帶下劃線的屬性表示主鍵。第7章 數(shù)據(jù)庫安全性與完整性:

11、 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(6) 這兩個關系存在屬性的引用。關系S引用關系C的主鍵“C#”。關系S中的“C#”必須是確實存在的課程編號,即為關系C中該課程的記錄,而關系S中的“C#”屬性必須參照關系C中的“C#”屬性取值。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(7) 此時,參照關系是C,依賴關系是S。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(8) 此時,依賴關系S中每個元組的C#只能取下面兩類值: 空值:表示尚未給該學生分配課程。 非空值:此時該值應當是關系C中某個元組的課程號,它表示該學生不能

12、分配到一個未開設的課程,即參照關系C中一定存在一個元組,其主鍵值等于依賴關系S中的外鍵值。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(9) 例7-9設有下面三個關系:S(S#,Sn,Se,Sa,C#)C(C#,Cn)SC(S#,C#,G)其中,S和C是上例中的學生關系和課程關系,而SC是學生課程關系,屬性“G”表示課程成績。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(10) 在這3個關系間也存在著屬性引用聯(lián)系。SC引用S的主鍵“S#”和C的主鍵“C#”。這樣,SC中的S#必須是真正存在的學號,即S中應當有該學生的記錄;SC

13、中的“C#”也必須是確實存在的課程號,即C中應當有該門課程的記錄。這也就是說,關系SC中某些屬性的取值需要參照關系S和關系C的屬性方可進行 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(11) 此時,關系SC的“S#”屬性與關系S中主鍵“S#”相對應,關系SC中“C#”屬性與關系C中的主鍵“C#”相對應,因此,“S#”和“C#”是關系SC的外鍵,這里SC是依賴關系,而S和C均是參照關系, 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(12) 依賴關系SC中S#和C#可以取兩類值:空值和已經(jīng)存在的值。由于S#和C#都是關系SC的

14、主屬性,依照實體完整性規(guī)則,它們均不能取空值,所以依賴關系SC中的S#和C#屬性實際上只能取相應參照關系S和C中已經(jīng)存在的主鍵值。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念(13) (3)用戶完整性規(guī)則實體完整性規(guī)則和參照完整性規(guī)則適用于任何關系數(shù)據(jù)庫庫系統(tǒng),即是關系數(shù)據(jù)庫必需遵守的規(guī)則,任何一個RDBMS都必須支持。根據(jù)具體應用環(huán)境不同,不同的關系數(shù)據(jù)庫往往還需要一些相應的特殊完整性約束條件,這就是用戶定義的完整性約束規(guī)則 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.1 完整性基本概念 (14) 1.完整性約束控制功能 定義功能 檢查功能

15、處理功能第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (1) 2.參照完整性實現(xiàn)策略實體完整性規(guī)則在三類完整性約束規(guī)則中最為基本,但實現(xiàn)起來相對簡單,即DBMS需要提供主鍵值不得為空的機制。參照完整性規(guī)則和用戶自定義完整性規(guī)則涉及因素較多,呈現(xiàn)出相對復雜的情形。用戶自定義完整性需要考慮不同的應用實際,不可能有統(tǒng)一的范式,而參照完整性處在抽象語義層面,可以一般研究其實現(xiàn)的各種基本策略。 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (2) (1) 依賴關系中外鍵空值問題在外鍵取空值問題上,存在兩種情況: 如果依賴關系的外鍵是其主鍵組成部

16、分,由實體完整性規(guī)則,此時外鍵值不允許取空值。如果依賴關系的外鍵不是主鍵的組成部分,則可以根據(jù)具體的語義環(huán)境確定外鍵值是否允許空值。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (3) (2) 參照關系中刪除元組問題 級聯(lián)刪除(Cascades Delete) 就是將依賴關系中所有外鍵值及參照關系中要刪除元組主鍵值相同的元組一起刪除。在例7-9中,刪除參照關系S中S# = 03001的元組同時,將依賴關系SC中4個S#=03001的元組一起刪除。如果參照關系同時又是另一個關系的依賴關系,則這種刪除關系操作會持續(xù)級聯(lián)下去。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)

17、庫完整性7.2.2 完整性控制 (4) 受限刪除(Restricted Delete) 就是僅當依賴關系中沒有任何元組的外鍵值與參照關系中要刪除元組的主鍵值相同時,系統(tǒng)才執(zhí)行刪除操作,否則拒絕這個刪除操作。例如對于上面的情況,由于依賴關系SC中有4個元組的S#都等于03001,系統(tǒng)將拒絕刪除參照S關系中S#=03001的元組。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (5) 置空值刪除(Nullifies Delete) 就是刪除參照關系的元組時,將依賴關系中相應元組的外鍵值置空。上述例7-9中,在刪除參照關系S中S#=03001的元組時,將依賴關系SC中所有

18、S#=03001的元組的S#值置為空值。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (6) (3) 依賴關系中插入元組問題 受限插入 如果參照關系中不存在相應元組,其主鍵值與依賴關系插入元組的外鍵值相同時,系統(tǒng)就拒絕執(zhí)行插入操作。 遞歸插入 如果參照關系存在元組,其主鍵值等于依賴關系插入元組的外鍵值,則先向參照關系插入相應元組,然后再向依賴關系插入元組。 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (7) (4) 元組中主鍵值修改問題 不容許修改主鍵 容許修改主鍵 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完

19、整性控制 (8) (4) 元組中主鍵值修改問題 不容許修改主鍵 容許修改主鍵 第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.2 完整性控制 (9) 1基本表完整性約束(1) 候選鍵與主鍵定義候選鍵定義格式為 UNIQUE();主鍵定義格式為 PRIMARY KEY();第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.3 SQL的完整性機制(1) 其中,“UNIQUE()” 中列名序列可以為空,而“PRIMARY KEY()”中不能為空。一個關系表只能有一個PRIMARY KEY,但可以由多個UNIQUE,即使說,PRIMARY KEY定義了主鍵(不能為空),而UNIQ

20、UE定義了候選鍵(可以為空)。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.3 SQL的完整性機制(2) (2) 外鍵定義外鍵定義基本形式為FOREIGN KEY()REFERENCES表名|()ON DELETE ON UPDATE ;第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.3 SQL的完整性機制 (3) 我們已經(jīng)知道,作為外鍵的關系表稱為依賴表,作為主鍵的關系表稱為參照表。在上述定義中“FOREIGN KEY()”中的“”是依賴表的外鍵。第7章 數(shù)據(jù)庫安全性與完整性: 7.2 數(shù)據(jù)庫完整性7.2.3 SQL的完整性機制 (4) “REFERENCES表名|()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論