數(shù)據(jù)庫實用教程董健全丁寶康編著清華大學出版社第8章2.ppt_第1頁
數(shù)據(jù)庫實用教程董健全丁寶康編著清華大學出版社第8章2.ppt_第2頁
數(shù)據(jù)庫實用教程董健全丁寶康編著清華大學出版社第8章2.ppt_第3頁
數(shù)據(jù)庫實用教程董健全丁寶康編著清華大學出版社第8章2.ppt_第4頁
數(shù)據(jù)庫實用教程董健全丁寶康編著清華大學出版社第8章2.ppt_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

8.4 數(shù)據(jù)庫的完整性,8.4.1 完整性子系統(tǒng)和完整性規(guī)則 數(shù)據(jù)庫中完整性(Integrity)一詞是指數(shù)據(jù)的正確性、有效性和相容性,防止錯誤的數(shù)據(jù)進入數(shù)據(jù)庫。所謂正確性是指數(shù)據(jù)的合法性,譬如數(shù)值型數(shù)據(jù)中只能含數(shù)字而不能含字母;所謂有效性是指數(shù)據(jù)是否屬于所定義的有效范圍;所謂相容性是指表示同一事實的兩個數(shù)據(jù)應(yīng)相同,不一致就是不相容。,DDBMS必須提供一種功能來保證數(shù)據(jù)庫中數(shù)據(jù)是正確的,避免非法的不符合語義的錯誤數(shù)據(jù)的輸入和輸出,即所謂“垃圾進垃圾出”(Garbage In Garbage Out)所造成的無效操作和錯誤操作。檢查數(shù)據(jù)庫中數(shù)據(jù)是否滿足規(guī)定的條件稱為“完整性檢查”。數(shù)據(jù)庫中數(shù)據(jù)應(yīng)該滿足的條件稱為“完整性約束條件”,有時也稱為完整性規(guī)則。 DBMS中執(zhí)行完整性檢查的子系統(tǒng)稱為“完整性子系統(tǒng)”。完整性子系統(tǒng)的主要功能有兩點: (1)監(jiān)督事務(wù)的執(zhí)行,并測試是否違反完整性規(guī)則。,(2)若有違反現(xiàn)象,則采取恰當?shù)牟僮?,譬如拒絕操作、報告違反情況、改正錯誤等方法來處理。 完整性子系統(tǒng)是根據(jù)“完整性規(guī)則集”工作的。完整性規(guī)則集是由 DBA或應(yīng)用程序員事先向完整性子系統(tǒng)提供的有關(guān)數(shù)據(jù)約束的一組規(guī)則。 每個完整性規(guī)則應(yīng)由三部分組成: (1)什么時候使用規(guī)則進行檢查(稱為規(guī)則的“觸發(fā)條件”)。 (2)要檢查什么樣的錯誤(稱為“約束條件”或“謂詞”)。 (3)如果查出錯誤,應(yīng)該怎么辦(稱為“ELSE子句”,即違反時要做的動作)。,8.4.2 SQL中的完整性約束 SQL中把完整性約束分成三大類:域約束、基本表約束和斷言,下面分別介紹。 1域約束 SQL可以用“CREATE DOMAIN”語句定義新的域,并且還可出現(xiàn)CHECK 子句。 例8.10定義一個新的域COLOR.可用下列語句實現(xiàn): CREATE DOMAIN COLOR CHAR(6) DEFAULT ? CONSTRAINT VALID_COLORS CHECK(VALUE IN (Red,Yellow, Blue, Green, ?) ;,此處”CONSTRAINT VALIDCOLORS”表示為這個域約束起個名字 VALIDCOLORS 假定為基本表PART創(chuàng)建表: CREATE TABLE PART (, COLOR COLOR, ); 若用戶插入一個零件記錄時未提交顏色COLOR值那么顏色值將被默認為“?”。若用戶輸入非法的顏色值,則操作失敗,系統(tǒng)將產(chǎn)生一個約束名為VALIDCOLORS的診斷信息。 通常,SQL允許域約束上的CHECK子句中可以有任意復(fù)雜的條件表達式。,2基本表約束 SQL的基本表約束主要有三種形式:候選鍵定義、外鍵定義和“檢查約束”定義。這些定義都可以在前面加“CONSTRAINT ”,由此為新約束起個名字。為簡化,下面都將忽視這一選項。 (1)候選鍵的定義 候選鍵的定義形式為: UNIQUE(列名序列)或 PRIMAR KEY(列名序列),實際上 UNIQUE方式定義了表的候選鍵,但只表示了值是惟一的,值非空還需在列定義時帶有選項 NOT NULL。 PRIMARY方式定義了表的主鍵,一個基本表只能指定一個主鍵。當是主鍵時,指定的列會自動被認為是非空的。 (2)外鍵的定義 外鍵的定義形式為: FOREIGN KEY(列名序列) REFERENES 參照表(列名序列) ON DELETE 參照動作 ON UPDATE 參照動作,此處,第一個列名序列是外鍵第二個列名序列是參照表中的主鍵或候選鍵。參照動作可以有5種方式:NO ACTION(默認)、CASCADE、RESTRICT、SET NULL或SET DEFAULT 在實際應(yīng)用中,作為主鍵的關(guān)系稱為參照表,作為外鍵的關(guān)系稱為依賴表。 對參照表的刪除操作和修改主鍵值的操作,會對依賴關(guān)系產(chǎn)生的影響由參照動作決定。,刪除參照表中元組時的考慮 如果要刪除參照表的某個元組(即要刪除一個主鍵值),那么對依賴表有什么影響,由參照動作決定: NO ACTION方式:對依賴表沒有影響。 CASCADE方式:將依賴表中所有外鍵值與參照表中要刪除的主鍵值相對應(yīng)的元組一起刪除。 RESTRICT方式:只有當依賴表中沒有一個外鍵值與要刪除的參照表中主鍵值相對應(yīng)時,系統(tǒng)才能執(zhí)行刪除操作,否則拒絕此刪除操作。,SET NULL方式:刪除參照表中元組時,將依賴表中所有與參照表中被刪主鍵值相對應(yīng) 的外鍵值均置為空值。 SET DEFAULT方式:與上述 SET NULL方式類似,只是把外鍵值均置為預(yù)先定義好的默認值。 對于這五種方式,選擇哪一種,要視應(yīng)用環(huán)境而定。 修改參照表中主鍵值時的考慮 如果要修改參照表的某個主鍵值時,那么對依賴關(guān)系的影響將由下列參照動作決定: NO ACTION:對依賴表沒有影響。,CASCADE方式:將依賴表中與參照表中要修改的主鍵值相對應(yīng)的所有外鍵值一起修改。 RESTRICT方式:只有當依賴表中沒有外鍵值與參照表中要修改的主鍵值相對應(yīng)時,系 統(tǒng)才能修改參照表中的主鍵值,否則拒絕此修改操作。 SET NULL方式:修改參照表中主鍵值時,將依賴表中所有與這個主鍵值相對應(yīng)的外鍵 值均置為空值。 SET DEFAULT方式:與上述 SET NULL方式類似,只是把外鍵值均置為預(yù)先定義好的默認值。 對于這五種方式,選擇哪一種也要視應(yīng)用環(huán)境而定。,(3)“檢查約束”的定義 這種約束是對單個關(guān)系的元組值加以約束。方法是在關(guān)系定義中的任何所需地方加上關(guān)鍵字CHECK和約束的條件: CHECK(條件表達式) 在條件中還可提及本關(guān)系的其他元組或其他關(guān)系的元組。這個子句也稱為檢查子句。 這種約束在插入元組或修改元組時,系統(tǒng)要測試新的元組值是否滿足條件。如果新的元組值不滿足檢查約束中的條件,那么系統(tǒng)將拒絕這個插入操作或修改操作。,下面若干例子還是針對教學數(shù)據(jù)庫中的關(guān)系: 學生關(guān)系 S(SNO,SNAME,AGE,SEX,SDEPT) 選課關(guān)系 SC(SN,CNO,GRADE) 課程關(guān)系 C(CN,CNAME,CDEPT,TNAME) 例8.11在教學數(shù)據(jù)庫中,如果要求學生關(guān)系S中存儲的學生信息滿足下列條件:男同學的年齡應(yīng)在 1535歲之間,女同學的年齡應(yīng)在 1530歲之間,那么可在關(guān)系 S的定義中加入一個檢查子句: CHECK(AGE=15 AND (SEX=男AND AGE=35) OR(SEX=女AND AGE=30);,雖然檢查子句中條件可以很復(fù)雜,也能表示許多復(fù)雜的約束,但是有可能產(chǎn)生違反約束的現(xiàn)象。這是因為檢查子句只對定義它的關(guān)系R1起約束作用,而對條件中提及的其他關(guān)系R2(R2很可能就是R1本身)不起約束作用。此時在R2中插入或修改元組時產(chǎn)生的新元組,有可能使檢查子句中的條件值為假,而系統(tǒng)對此無能為力。下例說明了這個問題。,例8.12在關(guān)系SC的定義中,參照完整性也可以 不用外鍵子句定義,而用檢查子句定義: CREATE TABLE SC ( SNO CHAR(4), CNO CHAR(4), GRADE SMALLINT, PRIMY KEY(SNO,CNO), CHECK(SNO IN(SELECT SNO FROM S ), CHECK(CNOIN(SELECT CNO FROM C);,此時可得到下面三種情況: 在關(guān)系SC中插入一個元組,如果CNO值在關(guān)系C中不存在,那么系統(tǒng)將拒絕這個插入操作。 在關(guān)系SC中插入一個元組,如果SNO值在關(guān)系S中不存在,那么系統(tǒng)將拒絕這個插入操作。 在關(guān)系S中刪除一個元組,這個操作將與關(guān)系SC中的檢查子句無關(guān)。如果此時關(guān)系SC中存在被刪學生的選課元組時,關(guān)系SC將出現(xiàn)違反檢查子句中條件的情況。,最后一種情況是我們不希望發(fā)生的,但系統(tǒng)無法排除。 從上例可以看出,檢查子句中的條件盡可能不要涉及其他關(guān)系,應(yīng)盡量利用外鍵子句或下面提到的“斷言”來定義完整性約束。 3斷言 如果完整性約束牽涉面較廣,與多個關(guān)系有關(guān),或者與聚合操作有關(guān),那么SQL2提供“斷言”(Assertions)機制讓用戶書寫完整性約束。,斷言可以像關(guān)系一樣,用CREATE語句定義,其句法如下: CREATE ASSERTION 斷言名 CHECK(條件) 這里條件與SELECT語句中WHERE子句中的條件表達式一樣。 撤消斷言的句法是: DROP ASSERTION 斷言名 但是撤消斷言的句法中不提供 RESTRICT和 CASCADE選項。,例8.13在教學數(shù)據(jù)庫的關(guān)系S,SC,C中,可以用斷言來寫出完整性約束。 每位教師開設(shè)的課程不能超過10門。 CREATE ASSERTION ASSE1 CHECK ( 10= ALL(SELECT COUNT(CNO) FROM C GROUP BY TNAME );,不允許男同學選修WU老師的課程。 CREATE ASSERTION ASSE2 CHECK (NOT EXISTS (SELECT * FROM SC WHERE CNO IN(SELECT CNO FROM C WHERE TEACHER=WU) AND SNO IN ( SELECT SNO FROM S WHERE SEX=男 );,每門課程最多50名男學生選修 CREATE ASSERTION ASSE3 CHECK (50 = ALL( SELECT COUNT( SCSNO) FROM S, SC WHERE S.SNO=SC.SNO AND SEX=男 GROUP BY CNO); 有時,斷言也可以在關(guān)系定義中用檢查子句形式定義,但是檢查子句不一定能保證完整性約束徹底實現(xiàn),而斷言能保證不出差錯。,8.4.3 SQL3 的觸發(fā)器 前面提到的一些約束機制,屬于被動的約束機制。在檢查出對數(shù)據(jù)庫的操作違反約束后,只能做些比較簡單的動作,譬如拒絕操作。比較復(fù)雜的操作還需要由程序員去安排。如果我們希望在某個操作后,系統(tǒng)能自動根據(jù)條件轉(zhuǎn)去執(zhí)行各種操作,甚至執(zhí)行與原操作無關(guān)的一些操作,那么這種設(shè)想可以用SQL3中的觸發(fā)器機制實現(xiàn)。,1觸發(fā)器結(jié)構(gòu) 定義9.8 觸發(fā)器(Trigger)是一個能由系統(tǒng)自動執(zhí)行對數(shù)據(jù)庫修改的語句。觸發(fā)器有時也稱為主動規(guī)則(Active Rule)或事件條件動作規(guī)則(EventConditionActionRuleECA規(guī)則)。 一個觸發(fā)器由三部分組成: (1)事件。事件是指對數(shù)據(jù)庫的插入、刪除、修改等操作。觸發(fā)器在這些事件發(fā)生時,將開始工作。,(2)條件。觸發(fā)器將測試條件是否成立。如果條件成立,就執(zhí)行相應(yīng)的動作,否則什么也不做。 (3)動作。如果觸發(fā)器測試滿足預(yù)定的條件,那么就由 DBMS執(zhí)行這些動作(即對數(shù)據(jù)庫的操作)。這些動作能使觸發(fā)事件不發(fā)生,即撤消事件,例如刪除一插入的元組等。這些動作也可以是一系列對數(shù)據(jù)庫的操作,甚至可以是與觸發(fā)事件本身無關(guān)的其他操作。,2SQL3的觸發(fā)器實例 先舉例說明 SQL3觸發(fā)器的定義,然后解釋觸發(fā)器的結(jié)構(gòu)。 例8.14下面是應(yīng)用于選課關(guān)系 SC的一個觸發(fā)器。這個觸發(fā)器規(guī)定,在修改關(guān)系 SC的成績值時,要求修改后的成績一定不能比原來的低,否則就拒絕修改。該觸發(fā)器的程序如下: CREATE TRIGGER TRIG1 AFTER UPDATE OF GRADE ON SC REFERENCING OLD AS OLDTUPLE ,NEW AS NEWTUPLE WHEN(OLDTUPLGRADE NEWTUPLEGRADE) UPDATE SC SETGRADEOLDTUPLEGRADE WHERE CNONEWTUPLECNO FOR EACH ROW 第行說明觸發(fā)器的名字為TRIG1。第行給出觸發(fā)事件,即對關(guān)系SC的成績值修改后激活觸發(fā)器。,第行為觸發(fā)器的條件和動作部分設(shè)置必要的元組變量,OLDTUPLE和NEWTUPLE分別為修改前、后的元組變量。 第行是觸發(fā)器的條件部分。這里,如果修改后的值比修改前的值小,那么必須恢復(fù)修改前的值。 第行是觸發(fā)器的動作部分。這里是SQL的修改語句。這個語句的作用是恢復(fù)修改前的舊值。 第行表示觸發(fā)器對每一個修改的元組都要檢查一次。如果默認,表示觸發(fā)器對SQL語句的執(zhí)行結(jié)果只檢查一次。,3觸發(fā)器結(jié)構(gòu)的組成說明 這里較詳細地介紹觸發(fā)器的構(gòu)成。 (1)觸發(fā)事件中的時間關(guān)鍵字有三種。 AFTER:在觸發(fā)事件完成以后,測試WHEN條件是否滿足,若滿足則執(zhí)行動作部分的操作。 BEFORE:在觸發(fā)事件進行以前,測試WHEN條件是否滿足。若滿足則先執(zhí)行動作部分的操作,然后再執(zhí)行觸發(fā)事件的操作(此時可不管WHEN條件是否滿足)。,INSTEAD OF:在觸發(fā)事件發(fā)生時。只要滿足 WHEN條件,就執(zhí)行動作部分的操作,而觸發(fā)事件的操作不再執(zhí)行。 (2)觸發(fā)事件有三類:UPDATE、DELETE和INSERT。在UPDATE時,允許后面跟“OF屬性表”短語。在其他兩種情況時,是對整個元組的操作,不允許后面跟“OF屬性表”短語。,(3)動作部分可以只有一個 SQL語句,也可以有多個 SQL語句,語句之間用分號隔開。 (4)如果觸發(fā)事件是 UPDATE,那么應(yīng)該用“OLD AS”和“NEW AS”子句定義修改前后的元組變量。如果是 DELETE,那么只要用“OLD AS”子句定義元組變量。如果是 INSERT,那么只要用“NEW AS”子句定義元組變量。,(5)觸發(fā)器有兩類:元組級觸發(fā)器和語句級觸發(fā)器。兩者的差別是前者帶“FOR EACH ROW”子句,而后者沒有;前者對每一個修改的元組都要檢查一次,而后者對 SQL語句的執(zhí)行結(jié)果去檢查。 在語句級觸發(fā)器,不能直接引用修改前后的元組,但可以引用修改前后的元組集。舊的元組集由被刪除的元組或被修改元組的舊值組成,而新的元組集由插入的元組或被修改元組的新值組成。,8.5 數(shù)據(jù)庫的安全性 8.5.1 安全性級別 數(shù)據(jù)庫的安全性(Security)是指保護數(shù)據(jù)庫,防止不合法的使用,以免數(shù)據(jù)的泄密、更改或破壞。對數(shù)據(jù)庫不合法的使用,稱為數(shù)據(jù)庫的濫用。數(shù)據(jù)庫的濫用可分為無意的和惡意的兩類。 無意的濫用是指系統(tǒng)故障、并發(fā)操作帶來的錯誤,違反數(shù)據(jù)完整性約束的邏輯錯誤。,惡意的濫用是指未經(jīng)授權(quán)的讀數(shù)據(jù)(即偷竊信息);未經(jīng)授權(quán)的修改數(shù)據(jù)(即破壞數(shù)據(jù))。 一般,數(shù)據(jù)庫的完整性是指盡可能避免對數(shù)據(jù)庫無意的濫用;數(shù)據(jù)庫的安全性是指盡可能避免對數(shù)據(jù)庫惡意的濫用。為了保護數(shù)據(jù)庫,防止惡意的濫用,可以在從低到高的五個級別上設(shè)置各種安全措施。 (1)環(huán)境級:計算機系統(tǒng)的機房和設(shè)備應(yīng)加以保護,防止有人進行物理破壞。 (2)職員級:工作人員應(yīng)清正廉潔,正確授予用戶訪問數(shù)據(jù)庫的權(quán)限。,(3)OS級:應(yīng)防止未經(jīng)授權(quán)的用戶從OS處著手訪問數(shù)據(jù)庫。 (4)網(wǎng)絡(luò)級:由于大多數(shù)DBS都允許用戶通過網(wǎng)絡(luò)進行遠程訪問,因此網(wǎng)絡(luò)軟件內(nèi)部的安全性是很重要的。 (5)DBS級:DBS的職責是檢查用戶的身份是否合法及使用數(shù)據(jù)庫的權(quán)限是否正確。 上述環(huán)境級和職員級的安全性問題屬于社會倫理道德問題,不是本教材的內(nèi)容。OS的安全性從口令到并發(fā)處理的控制,以及文件系統(tǒng)的安全,都屬于 OS的內(nèi)容。網(wǎng)絡(luò)級的安全性措施已在國際電子商務(wù)中廣泛應(yīng)用,屬于網(wǎng)絡(luò)教材中的內(nèi)容。下面主要介紹關(guān)系數(shù)據(jù)庫的安全性措施。,8.5.2 權(quán) 限 用戶(或應(yīng)用程序)使用數(shù)據(jù)庫的方式稱為“權(quán)限”(Authorization)。權(quán)限有下列幾種: (1)讀(Read)權(quán)限:允許用戶讀數(shù)據(jù),但不能修改數(shù)據(jù)。 (2)插入(Insert)權(quán)限:允許用戶插入新的數(shù)據(jù),但不能修改數(shù)據(jù)。 (3)修改(Update)權(quán)限:允許用戶修改數(shù)據(jù),但不能刪除數(shù)據(jù)。 (4)刪除(Delete)權(quán)限:允許用戶刪除數(shù)據(jù)。,根據(jù)需要,可以授給用戶上述權(quán)限中的一個或多個,也可以不授予上述任何一個權(quán)限。 除了訪問數(shù)據(jù)的權(quán)限,系統(tǒng)還提供給用戶修改數(shù)據(jù)庫模式的權(quán)限: (1)索引(Index)權(quán)限:允許用戶創(chuàng)建和刪除索引。 (2)資源(Resource)權(quán)限:允許用戶創(chuàng)建新的關(guān)系。 (3)修改(Alteration)權(quán)限:允許用戶在關(guān)系結(jié)構(gòu)中加入或刪除屬性。 (4)撤消(Drop)權(quán)限:允許用戶撤消關(guān)系。,8.5.3 SQL中的安全性機制 SQL中有兩個機制提供了安全性:一是視圖機制,它可以用來對無權(quán)用戶屏蔽數(shù)據(jù);二是授權(quán)子系統(tǒng),它允許有特定存取權(quán)的用戶有選擇地和動態(tài)地把這些權(quán)限授予其他用戶。 1視圖 視圖(View)是從一個或多個基本表導(dǎo)出的表。但視圖僅是一個定義,視圖本身沒有數(shù)據(jù)不占磁盤空間。,視圖一經(jīng)定義就可以和基本表一樣被查詢,也可以用來定義新的視圖,但更新(插、刪、改)操作將有一定限制。這已在第4章444節(jié)介紹過。 視圖機制使系統(tǒng)具有三個優(yōu)點:數(shù)據(jù)安全性、邏輯數(shù)據(jù)獨立性和操作簡便性。 用戶只能使用視圖定義中的數(shù)據(jù),而不能使用視圖定義外的其他數(shù)據(jù),從而保證了數(shù)據(jù)安全性。,2SQL2中的用戶權(quán)限及其操作 (1)用戶權(quán)限 SQL2定義了六類權(quán)限供用戶選擇使用: SELECT INSERT DELETE UPDATE REFERENCES USAGE 前四類權(quán)限分別允許用戶對關(guān)系或視圖執(zhí)行查、插、刪、修操作。 REFERENCES權(quán)限允許用戶定義新關(guān)系時,引用其他關(guān)系的主鍵作為外鍵。 USAGE權(quán)限允許用戶使用已定義的域。,(2)授權(quán)語句 授予其他用戶使用關(guān)系和視圖的權(quán)限的語句格式如下: GRANT 權(quán)限表 ON 數(shù)據(jù)庫元素 TO 用戶名表 WITH GRANT OPTION 這里權(quán)限表中的權(quán)限可以是前面提到的六種權(quán)限。如果權(quán)限表中包括全都六種權(quán)限,那么可用關(guān)鍵字“ALL PRIVILEGES”代替。數(shù)據(jù)庫元素可以是關(guān)系、視圖或域,但是在域名前要加關(guān)鍵字 DOMAIN。短語WITH GRANT OPTION表示獲得權(quán)限的用戶處能獲得傳遞權(quán)限,把獲得的權(quán)限轉(zhuǎn)授給其他用戶。,例8.15 下面有若干授權(quán)語句: GRANT SELECT,UPDATE ON S TO WANG WITH GRANT OPTION 該語句把對關(guān)系S的咨詢、修改權(quán)限授給用戶WANG,并且WANG還可以把這些權(quán)限轉(zhuǎn)授給其他用戶。 GRANT INSERT(SNO,CNO)ON SC TO LOU WITH GRANT OPTION 該話句把對關(guān)系SC的插入(只能插入SNO,CNO值)權(quán)限授給用戶LOU,同時LOU還獲得了轉(zhuǎn)授權(quán)。,GRANT UPDATE(GRADE)ON SC TO WEN 該語句把對關(guān)系SC的成績修改權(quán)限授給用戶WEN GRANT REFERENCES(CNO)ON C TO BAO WITH GRANT OPTION 該語句允許用戶BAO建立新關(guān)系時,可以引用關(guān)系C的主鍵CNO作為新關(guān)系的外鍵,并有轉(zhuǎn)讓權(quán)限。 GRANT USAGE ON DOMAIN AGE TO CHEN 該語句將允許用戶CHEN使用已定義過的域AGE。 在授權(quán)語句中,關(guān)鍵字PUBLIC表示系統(tǒng)中所有目前的和將來可能出現(xiàn)的所有用戶。,(3)回收語句 如果用戶Ui已經(jīng)將權(quán)限P授予其他用戶,那么用戶Ui隨后也可以用回收語句REVOKE從其他用戶回收權(quán)限P。回收語句格式如下: REVOKE 權(quán)限表 ON 數(shù)據(jù)庫元素 FROM 用戶名表 RESTRICT | CASCADE 該語句中帶CASCADE,表示回收權(quán)限時要引起連鎖回收。即用戶Ui從用戶Uj回收權(quán)限時,要把用戶Uj轉(zhuǎn)授出去的同樣的權(quán)限同時回收。如果語句中帶RESTRICT。則當不存在連鎖回收現(xiàn)象時,才能回收權(quán)限,否則系統(tǒng)拒絕回收。 另外,回收語句中“REVOKE”可用“REVOKE GRANT OPTION FOR”代替,其意思是回收轉(zhuǎn)授出去的轉(zhuǎn)讓權(quán)限,而不是回收轉(zhuǎn)授出去的權(quán)限。,例 8.16下面有若干權(quán)限回收語句: REVOKE SELECT,UPDATE ON S FROM WAN CASCADE 該語句表示從用戶WANG回收對關(guān)系S的查詢、修改權(quán)限,并且是連鎖回收。 REVOKE INSERT(SNO,CNO)ON SC FROM ZHAN RESTRICT 如果ZHANG已把獲得的插入權(quán)限轉(zhuǎn)授給其他用戶,那么上述回收語句執(zhí)行失敗,否則回收成功。 REVOKE GRANT OPTION FOR REFERENCES(CNO)ON C FROM BAO 該語句從用戶 BAO回收對關(guān)系 C中主鍵 CNO引用的轉(zhuǎn)授權(quán)。,8.5.4 數(shù) 據(jù) 加 密 為了更好地保證數(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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論