版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫的安全數(shù)據(jù)庫的安全(nqun)和完整約束和完整約束第一頁,共26頁。8.1.1 8.1.1 視圖的定義視圖的定義(dngy)(dngy)和查詢修和查詢修改改 (1) 定義視圖,可以限制各個用戶的訪問范圍;定義視圖,可以限制各個用戶的訪問范圍; (2) 有些有些DBMS沒有視圖功能,但是系統(tǒng)可以根據(jù)沒有視圖功能,但是系統(tǒng)可以根據(jù)用戶的訪問限制條件用戶的訪問限制條件(tiojin),自動的修改查詢條件,自動的修改查詢條件(tiojin),使其只能在給定訪問范圍內(nèi)查詢。,使其只能在給定訪問范圍內(nèi)查詢。第2頁/共26頁第1頁/共26頁第二頁,共26頁。8.1.2 8.1.2 訪問控制訪問控制 訪
2、問控制訪問控制(access control)是對用戶訪問數(shù)據(jù)庫各種資是對用戶訪問數(shù)據(jù)庫各種資源的權(quán)力源的權(quán)力(qunl)的控制。的控制?;?、視圖、各種目錄以及實(shí)用程序等基表、視圖、各種目錄以及實(shí)用程序等創(chuàng)建、撤銷、查詢、增、刪、改等創(chuàng)建、撤銷、查詢、增、刪、改等 在同一在同一DBMS下,可能下,可能(knng)建立多個數(shù)據(jù)庫,訪問控建立多個數(shù)據(jù)庫,訪問控制在數(shù)據(jù)庫之間是相互獨(dú)立的。制在數(shù)據(jù)庫之間是相互獨(dú)立的。第3頁/共26頁第2頁/共26頁第三頁,共26頁。 數(shù)據(jù)庫用戶:數(shù)據(jù)庫用戶: 1.一般數(shù)據(jù)庫用戶;一般數(shù)據(jù)庫用戶; 2.具有支配數(shù)據(jù)庫部分具有支配數(shù)據(jù)庫部分(b fen)資源權(quán)限的數(shù)據(jù)
3、庫用戶;資源權(quán)限的數(shù)據(jù)庫用戶; 3.具有具有DBA特權(quán)的數(shù)據(jù)庫用戶特權(quán)的數(shù)據(jù)庫用戶 DBMS須解決:用戶的標(biāo)識與鑒別須解決:用戶的標(biāo)識與鑒別(jinbi)以及授權(quán)以及授權(quán)(grant-revoke)的問題。)的問題。第4頁/共26頁第3頁/共26頁第四頁,共26頁。 在數(shù)據(jù)庫中,許多用戶的權(quán)限相同在數(shù)據(jù)庫中,許多用戶的權(quán)限相同(xin tn),如分別授權(quán),十分繁瑣,可以為他們定義一個角色。如分別授權(quán),十分繁瑣,可以為他們定義一個角色。 對角色授權(quán),某用戶承擔(dān)某種角色就擁有該角色對角色授權(quán),某用戶承擔(dān)某種角色就擁有該角色的權(quán)限,一個用戶可以擁有多個角色和其他權(quán)限。的權(quán)限,一個用戶可以擁有多個角色
4、和其他權(quán)限。 角色不是用戶,不能用做登陸!角色不是用戶,不能用做登陸!第5頁/共26頁第4頁/共26頁第五頁,共26頁。8.3 8.3 完整性約束完整性約束(yush)(yush)檢查檢查 8.3.1 完整性約束完整性約束(yush)的類型的類型 以關(guān)系以關(guān)系(gun x)數(shù)據(jù)模型為例分類。數(shù)據(jù)模型為例分類。 1. 靜態(tài)約束(靜態(tài)約束(static constraints) (1) 固有約束固有約束(inherent constraints) 第一范式第一范式 (2) 隱含約束隱含約束(implicit constraints) 用用DDL說明,例如:域完整性、實(shí)體完整性、說明,例如:域完整性
5、、實(shí)體完整性、 引用完整性等。引用完整性等。 (3) 顯式約束顯式約束(explicit constraints) 依賴于數(shù)據(jù)的語義和應(yīng)用。依賴于數(shù)據(jù)的語義和應(yīng)用。第6頁/共26頁第5頁/共26頁第六頁,共26頁。2. 動態(tài)動態(tài)(dngti)約束(約束(dynamic constraints) 不是對數(shù)據(jù)庫狀態(tài)的約束不是對數(shù)據(jù)庫狀態(tài)的約束(yush),而是數(shù)據(jù)庫從一個狀態(tài)轉(zhuǎn)到另一個狀態(tài)時要遵守的約束,而是數(shù)據(jù)庫從一個狀態(tài)轉(zhuǎn)到另一個狀態(tài)時要遵守的約束(yush)。第7頁/共26頁第6頁/共26頁第七頁,共26頁。 8.3.2 完整性約束完整性約束(yush)的說明的說明 約束的顯式說明約束的顯式
6、說明(shumng)方法:方法: 1.用過程說明用過程說明(shumng)約束約束 讓應(yīng)用程序完成約束的說明讓應(yīng)用程序完成約束的說明(shumng)和檢驗(yàn)。和檢驗(yàn)。 缺點(diǎn):檢驗(yàn)缺點(diǎn):檢驗(yàn)(jinyn)分散在應(yīng)用程序中,增加程序員的負(fù)擔(dān),約束改變會導(dǎo)致程序要修改。分散在應(yīng)用程序中,增加程序員的負(fù)擔(dān),約束改變會導(dǎo)致程序要修改。 優(yōu)點(diǎn):優(yōu)點(diǎn):容易實(shí)現(xiàn),目前應(yīng)用較多。容易實(shí)現(xiàn),目前應(yīng)用較多。第8頁/共26頁第7頁/共26頁第八頁,共26頁。 2.用斷言用斷言(assertions)說明約束說明約束 DBMS提供斷言說明語言,用此語言可以提供斷言說明語言,用此語言可以(ky)寫出數(shù)據(jù)庫完整性斷言,由系統(tǒng)
7、編譯成約束庫寫出數(shù)據(jù)庫完整性斷言,由系統(tǒng)編譯成約束庫(constraint base) 。 DBMS的完整性控制子系統(tǒng),對每個更新事務(wù),用相關(guān)斷言進(jìn)行檢查,如果發(fā)現(xiàn)違反的完整性控制子系統(tǒng),對每個更新事務(wù),用相關(guān)斷言進(jìn)行檢查,如果發(fā)現(xiàn)違反(wifn)約束,就回卷該事務(wù)。約束,就回卷該事務(wù)。 例如:例如:Assert 余額余額(y )約束約束 on 儲蓄帳:余額儲蓄帳:余額(y )0第9頁/共26頁第8頁/共26頁第九頁,共26頁。 缺點(diǎn):實(shí)現(xiàn)缺點(diǎn):實(shí)現(xiàn)(shxin)復(fù)雜,開銷大,處理單一。復(fù)雜,開銷大,處理單一。 優(yōu)點(diǎn)優(yōu)點(diǎn)(yudin):集中控制,用戶不編程,維護(hù)方便;:集中控制,用戶不編程,維
8、護(hù)方便; 3.用觸發(fā)子用觸發(fā)子(triggers)表示表示(biosh)約束約束 觸發(fā)子是一種軟件機(jī)制,形如:觸發(fā)子是一種軟件機(jī)制,形如: whenever then Event(激活觸發(fā)器激活觸發(fā)器)Condition(檢驗(yàn)觸發(fā)器的條件是否滿足檢驗(yàn)觸發(fā)器的條件是否滿足)Actions(觸發(fā)器運(yùn)行后的動作觸發(fā)器運(yùn)行后的動作)第10頁/共26頁第9頁/共26頁第十頁,共26頁。 傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)只能按照用戶或應(yīng)用程序的要求,對數(shù)據(jù)庫進(jìn)行操作,而不能根據(jù)發(fā)生的事件或數(shù)據(jù)庫的狀態(tài)主動進(jìn)行相應(yīng)傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)只能按照用戶或應(yīng)用程序的要求,對數(shù)據(jù)庫進(jìn)行操作,而不能根據(jù)發(fā)生的事件或數(shù)據(jù)庫的狀態(tài)主動進(jìn)行相應(yīng)
9、(xingyng)的處理,這樣的數(shù)據(jù)庫系統(tǒng)是被動的。的處理,這樣的數(shù)據(jù)庫系統(tǒng)是被動的。 主動主動(zhdng)數(shù)據(jù)庫系統(tǒng)就是具有主動數(shù)據(jù)庫系統(tǒng)就是具有主動(zhdng)數(shù)據(jù)庫功能的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫功能的數(shù)據(jù)庫系統(tǒng)。第11頁/共26頁第10頁/共26頁第十一頁,共26頁。 問題:主動數(shù)據(jù)庫系統(tǒng)和關(guān)系數(shù)據(jù)庫系統(tǒng)、面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的區(qū)別問題:主動數(shù)據(jù)庫系統(tǒng)和關(guān)系數(shù)據(jù)庫系統(tǒng)、面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的區(qū)別(qbi)和聯(lián)系?和聯(lián)系? 主動數(shù)據(jù)庫只是主動數(shù)據(jù)庫只是(zhsh)數(shù)據(jù)庫系統(tǒng)的一種功能!數(shù)據(jù)庫系統(tǒng)的一種功能!第12頁/共26頁第11頁/共26頁第十二頁,共26頁。假假 設(shè)有下列三個關(guān)系設(shè)有下列三個
10、關(guān)系(gun x)(gun x):Sailors(sid, sname, rating, birth, masterSailors(sid, sname, rating, birth, master)/ /* *分別為水手的編號、名字、級別、出生日期、師父的編號,每個水手的師父也是水手分別為水手的編號、名字、級別、出生日期、師父的編號,每個水手的師父也是水手* */ /Boats(bid, bname, color)Boats(bid, bname, color) / /* *分別為船的編號、名字、顏色分別為船的編號、名字、顏色* */ /Reserves(sid, bid, day)Rese
11、rves(sid, bid, day) / /* *分別為訂船水手編號、所訂船編號、日期分別為訂船水手編號、所訂船編號、日期* */ / 第13頁/共26頁第12頁/共26頁第十三頁,共26頁。范例范例. .引用完整性規(guī)則的實(shí)現(xiàn)引用完整性規(guī)則的實(shí)現(xiàn)(shxin)(shxin) 以以Sailors,Boats,ReservesSailors,Boats,Reserves三張表為例,寫出實(shí)現(xiàn)三張表為例,寫出實(shí)現(xiàn)(shxin)(shxin)引用完整性約束的規(guī)則。引用完整性約束的規(guī)則。有哪些操作會影響到三張有哪些操作會影響到三張(sn zhn(sn zhn) )表間的引用完整性?表間的引用完整性?n
12、Reserves表的表的Insert操作操作(cozu)n Sailors表的表的Delete操作操作(cozu)n Boats表的表的Delete操作操作(cozu)n Reserves表的表的Update操作操作 n Sailors表的表的Update操作操作n Boats表的表的Update操作操作 是否對所有屬性的是否對所有屬性的Update操作都操作都影響引用完整性?影響引用完整性?第14頁/共26頁第13頁/共26頁第十四頁,共26頁。 規(guī)則規(guī)則1 1 創(chuàng)建觸發(fā)器,對創(chuàng)建觸發(fā)器,對ReservesReserves表的表的InsertInsert操作進(jìn)行監(jiān)控,操作進(jìn)行監(jiān)控,如果插入如
13、果插入(ch r)(ch r)元組的外鍵屬性在元組的外鍵屬性在SailorsSailors和和BoatsBoats表表中不存在中不存在, ,回卷插入回卷插入(ch r)(ch r)該記錄的操作。該記錄的操作。Create trigger referential_integrity_checkBefore Insert on ReservesReferencing NEW as NFor Each RowEvent第15頁/共26頁第14頁/共26頁第十五頁,共26頁。When (not (exists(Select * From Sailors Where sid = N.sid) and (
14、exists(Select * From Boats Where bid = N.bid) )Rollback;ConditionAction第16頁/共26頁第15頁/共26頁第十六頁,共26頁。 規(guī)則規(guī)則2 2 創(chuàng)建觸發(fā)器,對創(chuàng)建觸發(fā)器,對BoatsBoats表的表的DeleteDelete操作進(jìn)行監(jiān)控,如果操作進(jìn)行監(jiān)控,如果(rgu)(rgu)刪除元組的主鍵是刪除元組的主鍵是ReservesReserves表中的外鍵表中的外鍵, ,回卷刪除回卷刪除該記錄的操作。該記錄的操作。Create trigger boats_deleteBefore Delete on BoatsReferenc
15、ing OLD as OFor Each RowEvent第17頁/共26頁第16頁/共26頁第十七頁,共26頁。When (exists(Select * From Reserves Where bid = O.bid)Rollback;ConditionAction第18頁/共26頁第17頁/共26頁第十八頁,共26頁。 規(guī)則規(guī)則(guz)3(guz)3 創(chuàng)建觸發(fā)器,對創(chuàng)建觸發(fā)器,對SailorsSailors表的表的DeleteDelete操作進(jìn)行監(jiān)控,如操作進(jìn)行監(jiān)控,如果刪除元組的主鍵是果刪除元組的主鍵是ReservesReserves表中的外鍵表中的外鍵, ,則將則將Reserves
16、Reserves表中的相關(guān)記錄刪除。表中的相關(guān)記錄刪除。Create trigger sailors_deleteAfter Delete on SailorsReferencing OLD as OFor Each RowEvent第19頁/共26頁第18頁/共26頁第十九頁,共26頁。When (exists(Select * From Reserves Where sid = O.sid)Delete From Reserves Where sid = O.sid;ConditionAction第20頁/共26頁第19頁/共26頁第二十頁,共26頁。 規(guī)則規(guī)則4 4 創(chuàng)建觸發(fā)器,對創(chuàng)建觸
17、發(fā)器,對ReservesReserves表的表的UpdateUpdate操作進(jìn)行監(jiān)控,如果修改元操作進(jìn)行監(jiān)控,如果修改元組組sidsid和和bidbid屬性值在屬性值在SailorsSailors和和BoatsBoats表中不存在表中不存在(cnzi),(cnzi),回卷修回卷修改該記錄的操作。改該記錄的操作。Create trigger referential_integrity_check Update of sid,bid on ReservesReferencing NEW as NFor Each RowEventBefore第21頁/共26頁第20頁/共26頁第二十一頁,共26頁。
18、When (not (exists(Select * From Sailors Where sid = N.sid) and (exists(Select * From Boats Where bid = N.bid) )Rollback;ConditionAction第22頁/共26頁第21頁/共26頁第二十二頁,共26頁。 規(guī)則規(guī)則(guz)5(guz)5 Create trigger sailors_sid_updateBefore Update of sid on SailorsReferencing Old as OFor Each RowWhen (exists(Select * From Reserves Where sid = O.sid)Rollback; 創(chuàng)建觸發(fā)器,對創(chuàng)建觸發(fā)器,對SailorsSailors表的表的UpdateUpdate操作操作(cozu)(cozu)進(jìn)行監(jiān)控,進(jìn)行監(jiān)控,如果如果ReservesReserves表中有元組引用修改前的表中有元組引用修改前的sidsid值作為外鍵值作為外鍵, ,回卷此修回卷此修改操作改操作(cozu)(cozu)。第23頁/共26頁第22頁/共26頁
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)培訓(xùn)中的團(tuán)隊(duì)凝聚力培養(yǎng)與音樂游戲
- 商業(yè)思維在學(xué)生時間管理中的應(yīng)用
- 2025中國航天科工集團(tuán)第十研究院校園招聘593人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國科學(xué)院紫金山天文臺人才公開招聘6人(江蘇南京市第2期)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國石化江蘇油田分公司畢業(yè)生招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信股份限公司數(shù)字智能科技分公司社會招聘21人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信安全公司社會招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國核工業(yè)集團(tuán)限公司校園招聘7000人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國兵器裝備集團(tuán)限公司總部招聘5人(北京)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中化學(xué)國際工程限公司招聘32人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 大學(xué)美育(同濟(jì)大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年湖北省工業(yè)建筑集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 10000中國普通人名大全
- 2018級成考專升本漢語言文學(xué)專業(yè)12月份考試資料文獻(xiàn)學(xué)復(fù)習(xí)資料
- 戴煒棟英語語言學(xué)概論Chapter 1
- 2020年廣東省中考數(shù)學(xué)試卷
- 醫(yī)學(xué)英語構(gòu)詞法講座
- 公司管理制度-公司管理制度
- 廣東省義務(wù)教育階段學(xué)生學(xué)籍卡
- 疫情索賠公式及相應(yīng)表格模板Excel
- 下肢動脈血栓相關(guān)知識
評論
0/150
提交評論