




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)1 數(shù)據(jù)庫原理與技術(shù) 北京師范大學(xué)經(jīng)濟(jì)與工商管理學(xué)院 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)2 課程內(nèi)容 數(shù)據(jù)庫的完整性(重點(diǎn)) 實(shí)體完整性實(shí)體完整性 參照完整性參照完整性 用戶定義的完整性用戶定義的完整性 完整性約束命名字句完整性約束命名字句 觸發(fā)器觸發(fā)器 數(shù)據(jù)庫的安全性(略講) 計(jì)算機(jī)安全性概述計(jì)算機(jī)安全性概述 數(shù)據(jù)庫安全性控制數(shù)據(jù)庫安全性控制 視圖機(jī)制視圖機(jī)制 審計(jì)(審計(jì)(AuditAudit) 數(shù)據(jù)加密數(shù)據(jù)加密 統(tǒng)計(jì)數(shù)據(jù)庫安全性統(tǒng)計(jì)數(shù)據(jù)庫安全性 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)3 網(wǎng)上書店的關(guān)系模式 書(書號,書名,出版社,出版社地址,出版社電話, 定價(jià),作者,簡介
2、,倉庫號碼,倉庫地址,倉庫聯(lián) 系人,庫存量) 會(huì)員(編號,姓名,性別,單位,電話,郵箱,通訊 地址,郵編,會(huì)員級別,折扣率) 訂單(號碼,會(huì)員號碼,下單日期,送書日期,地點(diǎn), 收件人,聯(lián)系人,書號,數(shù)量,備注) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)4 數(shù)據(jù)庫完整性 數(shù)據(jù)庫的完整性 數(shù)據(jù)的正確性和相容性 數(shù)據(jù)的完整性和安全性是兩個(gè)不同概念 數(shù)據(jù)的完整性 防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),也就是防止數(shù)據(jù)庫中存在不正確的數(shù)據(jù) 防范對象:不合語義的、不正確的數(shù)據(jù) 數(shù)據(jù)的安全性 保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取 防范對象:非法用戶和非法操作 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)5 數(shù)據(jù)庫完整性(續(xù)) 為維護(hù)數(shù)據(jù)
3、庫的完整性,DBMS必須: n1.提供定義完整性約束條件的機(jī)制 n2.提供完整性檢查的方法 n3.違約處理 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)6 實(shí)體完整性 實(shí)體完整性定義實(shí)體完整性定義 實(shí)體完整性檢查和違約處理實(shí)體完整性檢查和違約處理 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)7 實(shí)體完整性定義 關(guān)系模型的實(shí)體完整性 CREATE TABLE中用PRIMARY KEY定義 單屬性構(gòu)成的碼有兩種說明方法 定義為列級約束條件 定義為表級約束條件 對多個(gè)屬性構(gòu)成的碼只有一種說明方法 定義為表級約束條件 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)8 實(shí)體完整性定義(續(xù)) 例1 將Student表中的Sno屬性定義為碼 (1)(
4、1)在列級定義主碼在列級定義主碼 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)9 實(shí)體完整性定義(續(xù)) (2)(2)在表級定義主碼在表級定義主碼 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), PRIMARY KE
5、Y (Sno) ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)10 實(shí)體完整性定義(續(xù)) 例2將SC表中的Sno,Cno屬性組定義為碼 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) /*只能在表 級定義主碼*/ ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)11 實(shí)體完整性檢查和違約處理 插入或?qū)χ鞔a列進(jìn)行更新操作時(shí),RDBMS按照實(shí)體完 整性規(guī)則自動(dòng)進(jìn)行檢查。包括: 檢查主碼值是否唯一,如果不唯一則拒絕插入或修改 檢查主碼的各個(gè)屬性是否為空,只要有一個(gè)為空就拒
6、絕插入或修改 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)12 實(shí)體完整性檢查和違約處理(續(xù)) 檢查記錄中主碼值是否唯一的一種方法是進(jìn)行全 表掃描 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)13 實(shí)體完整性檢查和違約處理(續(xù)) 索引 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)14 2 參照完整性 參照完整性定義參照完整性定義 參照完整性檢查和違約處理參照完整性檢查和違約處理 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)15 參照完整性定義 關(guān)系模型的參照完整性定義 在CREATE TABLE中用FOREIGN KEY短語定義哪些 列為外碼 用REFERENCES短語指明這些外碼參照哪些表的主 碼 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)16 參照完整性定
7、義(續(xù)) 例:關(guān)系SC中一個(gè)元組表示一個(gè)學(xué)生選修的某門課程的成績,(Sno,Cno) 是主碼。Sno,Cno分別參照引用Student表的主碼和Course表的主碼 例3 定義SC中的參照完整性 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表級定義實(shí)體完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /*在表級定義參照完整性*/ FOREIGN KEY (Cno) REFERENCES
8、 Course(Cno) /*在表級定義參照完整性*/ ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)17 參照完整性檢查和違約處理 可能破壞參照完整性的情況及違約處理 被參照表(例如Student)參照表(例如SC)違約處理 可能破壞參照完整性 插入元組拒絕 可能破壞參照完整性 修改外碼值拒絕 刪除元組 可能破壞參照完 整性 拒絕/級連刪除/設(shè)置為 空值 修改主碼值 可能破壞參照完 整性 拒絕/級連修改/設(shè)置為 空值 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)18 違約處理 參照完整性違約處理 1. 拒絕(NO ACTION)執(zhí)行 默認(rèn)策略 2. 級聯(lián)(CASCADE)操作 3. 設(shè)置為空值(SET-NULL)
9、對于參照完整性,除了應(yīng)該定義外碼,還應(yīng)定義外碼列是 否允許空值 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)19 違約處理(續(xù)) 例4 顯式說明參照完整性的違約處理示例 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE /*級聯(lián)刪除SC表中相應(yīng)的元組*/ ON UPDATE CASCADE, /*級聯(lián)更新SC表中相應(yīng)的元組*/ FOREIGN
10、KEY (Cno) REFERENCES Course(Cno) ON DELETE NO ACTION /*當(dāng)刪除course 表中的元組造成了與SC表不一致時(shí)拒絕刪除*/ ON UPDATE CASCADE /*當(dāng)更新course表中的cno時(shí),級聯(lián)更新SC表中相應(yīng)的元組*/ ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)20 3 用戶定義的完整性 用戶定義的完整性就是針對某一具體應(yīng)用的 數(shù)據(jù)必須滿足的語義要求 RDBMS提供,而不必由應(yīng)用程序承擔(dān) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)21 3 用戶定義的完整性 屬性上的約束條件的定義屬性上的約束條件的定義 屬性上的約束條件檢查和違約處理屬性上的約束條件檢
11、查和違約處理 元組上的約束條件的定義元組上的約束條件的定義 元組上的約束條件檢查和違約處理元組上的約束條件檢查和違約處理 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)22 屬性上的約束條件的定義 CREATE TABLE時(shí)定義 列值非空(NOT NULL) 列值唯一(UNIQUE) 檢查列值是否滿足一個(gè)布爾表達(dá)式(CHECK) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)23 屬性上的約束條件的定義(續(xù)) 1.不允許取空值 例5 在定義SC表時(shí),說明Sno、Cno、Grade屬性不允許取 空值。 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Gr
12、ade SMALLINT NOT NULL, PRIMARY KEY (Sno, Cno), /* 如果在表級定義實(shí)體完整性,隱含了Sno,Cno 不允許取空值,則在列級不允許取空值的定義就不必寫了 * / ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)24 屬性上的約束條件的定義(續(xù)) 2.列值唯一 例6 建立表DEPT,要求名稱Dname列取值唯一,編號 Deptno列為主碼 CREATE TABLE DEPT (Deptno NUMERIC(2), Dname CHAR(9) UNIQUE,/*要求Dname列值唯一 */ Location CHAR(10), PRIMARY KEY (Deptn
13、o) ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)25 屬性上的約束條件的定義(續(xù)) 3. 用CHECK短語指定列值應(yīng)該滿足的條件 例7 Student表的Sex只允許取“男”或“女”。 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(8) NOT NULL, Sex CHAR(2) CHECK (Sex IN (男, 女) ) , /*性別屬性Sex只允許取男或女 */ Sage SMALLINT, Sdept CHAR(20) ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)26 2 屬性上的約束條件檢查和違約處理 插入元組或修改屬性的值時(shí),
14、RDBMS檢查屬性 上的約束條件是否被滿足 如果不滿足則操作被拒絕執(zhí)行 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)27 3 元組上的約束條件的定義 在CREATE TABLE時(shí)可以用CHECK短語定義元組上的約 束條件,即元組級的限制 同屬性值限制相比,元組級的限制可以設(shè)置不同屬 性之間的取值的相互約束條件 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)28 元組上的約束條件的定義(續(xù)) 例9 當(dāng)學(xué)生的性別是男時(shí),其名字不能以Ms.打頭。 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(8) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdep
15、t CHAR(20), PRIMARY KEY (Sno), CHECK (Sex=CHECK (Sex=女女 OR Sname NOT LIKE Ms.%) OR Sname NOT LIKE Ms.%) /*定義了元組中Sname和 Sex兩個(gè)屬性值之間的約束條件*/ ); 性別是女性的元組都能通過該項(xiàng)檢查,因?yàn)镾sex=女成立; 當(dāng)性別是男性時(shí),要通過檢查則名字一定不能以Ms.打頭 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)29 元組上的約束條件檢查和違約處理 插入元組或修改屬性的值時(shí),RDBMS檢查元組上的約 束條件是否被滿足 如果不滿足則操作被拒絕執(zhí)行 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)30 4 完
16、整性約束命名子句 CONSTRAINT 約束 CONSTRAINT PRIMARY KEY短語 |FOREIGN KEY短語 |CHECK短語 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)31 完整性約束命名子句(續(xù)) 例10 建立學(xué)生登記表Student,要求學(xué)號在9000099999 之間,姓名不能取空值,年齡小于30,性別只能是“男”或 “女”。 CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sa
17、ge NUMERIC(3) CONSTRAINT C3 CHECK (Sage 30), Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN ( 男,女), CONSTRAINT StudentKey PRIMARY KEY(Sno) ); 在Student表上建立了5個(gè)約束條件,包括主碼約束(命名為 StudentKey)以及C1、C2、C3、C4四個(gè)列級約束。 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)32 完整性約束命名子句(續(xù)) 修改表中的完整性限制修改表中的完整性限制 使用ALTER TABLE語句修改表中的完整性限 制 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)33 完整性
18、約束命名子句(續(xù)) 例13 修改表Student中的約束條件,要求學(xué)號改為 在900000999999之間,年齡由小于30改為小于40 可以先刪除原來的約束條件,再增加新的約束條件 ALTER TABLE Student DROP CONSTRAINT C1; ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999), ALTER TABLE Student DROP CONSTRAINT C3; ALTER TABLE Student ADD CONSTRAINT C3 CHECK (Sage 40
19、); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)34 5 觸發(fā)器 觸發(fā)器(Trigger)是用戶定義在關(guān)系表上的 一類由事件驅(qū)動(dòng)的特殊過程 由服務(wù)器自動(dòng)激活 可以進(jìn)行更為復(fù)雜的檢查和操作,具有更精細(xì)和 更強(qiáng)大的數(shù)據(jù)控制能力 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)35 觸發(fā)器 定義觸發(fā)器定義觸發(fā)器 激活觸發(fā)器激活觸發(fā)器 刪除觸發(fā)器刪除觸發(fā)器 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)36 定義觸發(fā)器 CREATE TRIGGER語法格式 CREATE TRIGGER BEFORE | AFTER ON FOR EACH ROW | STATEMENT WHEN 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)37 定義觸發(fā)器(續(xù)) 定義觸發(fā)器的
20、語法說明: 1. 創(chuàng)建者:表的擁有者 2. 觸發(fā)器名 3. 表名:觸發(fā)器的目標(biāo)表 4. 觸發(fā)事件:INSERT、DELETE、UPDATE 5. 觸發(fā)器類型 行級觸發(fā)器(FOR EACH ROW) 語句級觸發(fā)器(FOR EACH STATEMENT) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)38 定義觸發(fā)器(續(xù)) 假設(shè)在例11的TEACHER表上創(chuàng)建了一個(gè)AFTER UPDATE觸發(fā)器。如果表TEACHER有1000行,執(zhí)行如下 語句: UPDATE TEACHER SET Deptno=5; 如果該觸發(fā)器為語句級觸發(fā)器,那么執(zhí)行完該語句后, 觸發(fā)動(dòng)作只發(fā)生一次 如果是行級觸發(fā)器,觸發(fā)動(dòng)作將執(zhí)行1000
21、次 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)39 定義觸發(fā)器(續(xù)) 6. 觸發(fā)條件 觸發(fā)條件為真 省略WHEN觸發(fā)條件 7. 觸發(fā)動(dòng)作體 觸發(fā)動(dòng)作體可以是一個(gè)匿名PL/SQL過程塊 也可以是對已創(chuàng)建存儲過程的調(diào)用 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)40 定義觸發(fā)器(續(xù)) 例18 定義一個(gè)BEFORE行級觸發(fā)器,為教師表Teacher定義完整性規(guī) 則“教授的工資不得低于4000元,如果低于4000元,自動(dòng)改為4000 元”。 CREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher /*觸發(fā)事件是插入或更新操作*/ FOR E
22、ACH ROW /*行級觸發(fā)器*/ AS BEGIN /*定義觸發(fā)動(dòng) 作體,是PL/SQL過程塊*/ IF (new.Job=教授) AND (new.Sal 4000) THEN new.Sal :=4000; END IF; END; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)41 定義觸發(fā)器(續(xù)) 例19定義AFTER行級觸發(fā)器,當(dāng)教師表Teacher的工資發(fā) 生變化后就自動(dòng)在工資變化表Sal_log中增加一條相應(yīng)記 錄 首先建立工資變化表Sal_log CREATE TABLE Sal_log (Eno NUMERIC(4) references teacher(eno), Sal NUMERIC
23、(7,2), Username char(10), Date TIMESTAMP ); 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)42 定義觸發(fā)器(續(xù)) 例19(續(xù)) CREATE TRIGGER Insert_Sal AFTER INSERT ON Teacher /*觸發(fā)事件是INSERT*/ FOR EACH ROW AS BEGIN INSERT INTO Sal_log VALUES( new.Eno,new.Sal,CURRENT_USER, CURRENT_TIMESTAMP); END; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)43 定義觸發(fā)器(續(xù)) 例19(續(xù)) CREATE TRIGGER Up
24、date_Sal AFTER UPDATE ON Teacher /*觸發(fā)事件是UPDATE */ FOR EACH ROW AS BEGIN IF (new.Sal old.Sal) THEN INSERT INTO Sal_log VALUES( new.Eno,new.Sal,CURRENT_USER,CURRENT_TIMESTAMP); END IF; END; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)44 激活觸發(fā)器 觸發(fā)器的執(zhí)行,是由觸發(fā)事件激活的,并由數(shù)據(jù)庫 服務(wù)器自動(dòng)執(zhí)行 一個(gè)數(shù)據(jù)表上可能定義了多個(gè)觸發(fā)器 同一個(gè)表上的多個(gè)觸發(fā)器激活時(shí)遵循如下的執(zhí)行順序: (1) 執(zhí)行該表上的BEFOR
25、E觸發(fā)器; (2) 激活觸發(fā)器的SQL語句; (3) 執(zhí)行該表上的AFTER觸發(fā)器。 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)45 激活觸發(fā)器(續(xù)) 例20執(zhí)行修改某個(gè)教師工資的SQL語句,激活上述定義的 觸發(fā)器。 UPDATE Teacher SET Sal=800 WHERE Ename=陳平; 執(zhí)行順序是: 執(zhí)行觸發(fā)器Insert_Or_Update_Sal 執(zhí)行SQL語句“UPDATE Teacher SET Sal=800 WHERE Ename=陳平;” 執(zhí)行觸發(fā)器Insert_Sal; 執(zhí)行觸發(fā)器Update_Sal 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)46 刪除觸發(fā)器 刪除觸發(fā)器的SQL語法:
26、 DROP TRIGGER ON ; 觸發(fā)器必須是一個(gè)已經(jīng)創(chuàng)建的觸發(fā)器,并且只能由 具有相應(yīng)權(quán)限的用戶刪除。 例21 刪除教師表Teacher上的觸發(fā)器Insert_Sal DROP TRIGGER Insert_Sal ON Teacher; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)47 小結(jié) 數(shù)據(jù)庫的完整性是為了保證數(shù)據(jù)庫中存儲的 數(shù)據(jù)是正確的 RDBMS完整性實(shí)現(xiàn)的機(jī)制 完整性約束定義機(jī)制 完整性檢查機(jī)制 違背完整性約束條件時(shí)RDBMS應(yīng)采取的動(dòng)作 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)48 數(shù)據(jù)庫安全性 問題的提出 數(shù)據(jù)庫的一大特點(diǎn)是數(shù)據(jù)可以共享 數(shù)據(jù)共享必然帶來數(shù)據(jù)庫的安全性問題 數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)共
27、享不能是無條件的共享 例: 軍事秘密、國家機(jī)密、新產(chǎn)品實(shí)驗(yàn)數(shù)據(jù)、 市場需求分析、市場營銷策略、銷售計(jì)劃、 客戶檔案、醫(yī)療檔案、銀行儲蓄數(shù)據(jù) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)49 數(shù)據(jù)庫安全性 計(jì)算機(jī)安全性概述計(jì)算機(jī)安全性概述 數(shù)據(jù)庫安全性控制數(shù)據(jù)庫安全性控制 視圖機(jī)制視圖機(jī)制 審計(jì)(審計(jì)(AuditAudit) 數(shù)據(jù)加密數(shù)據(jù)加密 統(tǒng)計(jì)數(shù)據(jù)庫安全性統(tǒng)計(jì)數(shù)據(jù)庫安全性 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)50 計(jì)算機(jī)安全性概述 計(jì)算機(jī)系統(tǒng)的三類安全性問題計(jì)算機(jī)系統(tǒng)的三類安全性問題 內(nèi)容:硬件、軟件及數(shù)據(jù) 防止其因偶然或惡意的原因使系統(tǒng)遭到破壞,數(shù)據(jù)遭到更改或泄露等 技術(shù)安全類 管理安全類 政策法律類 安全標(biāo)
28、準(zhǔn)簡介安全標(biāo)準(zhǔn)簡介 TCSEC標(biāo)準(zhǔn) CC標(biāo)準(zhǔn) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)51 數(shù)據(jù)庫安全性控制概述 非法使用數(shù)據(jù)庫的情況 編寫合法程序繞過DBMS及其授權(quán)機(jī)制 直接或編寫應(yīng)用程序執(zhí)行非授權(quán)操作 通過多次合法查詢數(shù)據(jù)庫從中推導(dǎo)出一些保密數(shù) 據(jù) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)52 數(shù)據(jù)庫安全性控制概述(續(xù)) 計(jì)算機(jī)系統(tǒng)中,安全措施是一級一級層層設(shè)置 計(jì)算機(jī)系統(tǒng)的安全模型 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)53 數(shù)據(jù)庫安全性控制概述(續(xù)) 數(shù)據(jù)庫安全性控制的常用方法 用戶標(biāo)識和鑒定 存取控制 視圖 審計(jì) 密碼存儲 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)54 用戶標(biāo)識與鑒別 用戶標(biāo)識與鑒別 (Identifi
29、cation 語義:將對指定操作對象的指定操作權(quán)限授予指定的 用戶 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)61 GRANT(續(xù)) 發(fā)出GRANT: DBA 數(shù)據(jù)庫對象創(chuàng)建者(即屬主Owner) 擁有該權(quán)限的用戶 按受權(quán)限的用戶 一個(gè)或多個(gè)具體用戶 PUBLIC(全體用戶) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)62 WITH GRANT OPTION子句 WITH GRANT OPTION子句: 指定:可以再授予 沒有指定:不能傳播 不允許循環(huán)授權(quán) 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)63 例題 例1 把查詢Student表權(quán)限授給用戶U1 GRANT SELECT ON TABLE Student TO U1;
30、數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)64 例題(續(xù)) 例2 把對Student表和Course表的全部權(quán)限授 予用戶U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)65 例題(續(xù)) 例3 把對表SC的查詢權(quán)限授予所有用戶 GRANT SELECT ON TABLE SC TO PUBLIC; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)66 例題(續(xù)) 例4 把查詢Student表和修改學(xué)生學(xué)號的權(quán) 限授給用戶U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO
31、U4; 對屬性列的授權(quán)時(shí)必須明確指出相應(yīng)屬性列 名 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)67 例題(續(xù)) 例5 把對表SC的INSERT權(quán)限授予U5用戶, 并允許他再將此權(quán)限授予其他用戶 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)68 傳播權(quán)限 執(zhí)行例5后,U5不僅擁有了對表SC的INSERT權(quán)限, 還可以傳播此權(quán)限: 例6 GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION; 同樣,U6還可以將此權(quán)限授予U7: 例7 GRANT INSERT ON TABLE SC
32、 TO U7; 但U7不能再傳播此權(quán)限。 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)69 授權(quán)與回收(續(xù)) 二、二、REVOKEREVOKE 授予的權(quán)限可以由DBA或其他授權(quán)者用REVOKE 語句收回 REVOKE語句的一般格式為: REVOKE ,. ON FROM ,.; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)70 REVOKE(續(xù)) 例8 把用戶U4修改學(xué)生學(xué)號的權(quán)限收回 REVOKE UPDATE(Sno) ON TABLE Student FROM U4; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)71 REVOKE(續(xù)) 例9 收回所有用戶對表SC的查詢權(quán)限 REVOKE SELECT ON TABLE SC F
33、ROM PUBLIC; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)72 REVOKE(續(xù)) 例10 把用戶U5對SC表的INSERT權(quán)限收回 REVOKE INSERT ON TABLE SC FROM U5 CASCADE ; 將用戶U5的INSERT權(quán)限收回的時(shí)候必須級聯(lián)(CASCADE) 收回 系統(tǒng)只收回直接或間接從U5處獲得的權(quán)限 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)73 REVOKE(續(xù)) 執(zhí)行例8到例10的語句后,學(xué)生-課程數(shù)據(jù)庫中的 用戶權(quán)限定義表 授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫對象名允許的操作類 型 能否轉(zhuǎn)授權(quán) DBAU1關(guān)系StudentSELECT不能 DBAU2關(guān)系StudentALL不能
34、DBAU2關(guān)系CourseALL不能 DBAU3關(guān)系StudentALL不能 DBAU3關(guān)系CourseALL不能 DBAU4關(guān)系StudentSELECT不能 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)74 小結(jié):SQL靈活的授權(quán)機(jī)制 DBA:擁有所有對象的所有權(quán)限 不同的權(quán)限授予不同的用戶 用戶:擁有自己建立的對象的全部的操作權(quán)限 GRANT:授予其他用戶 被授權(quán)的用戶 “繼續(xù)授權(quán)”許可:再授予 所有授予出去的權(quán)力在必要時(shí)又都可用REVOKE語 句收回 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)75 授權(quán)與回收(續(xù)) 三、創(chuàng)建數(shù)據(jù)庫模式的權(quán)限三、創(chuàng)建數(shù)據(jù)庫模式的權(quán)限 DBA在創(chuàng)建用戶時(shí)實(shí)現(xiàn) CREATE USER
35、語句格式 CREATE USER WITHDBA | RESOURCE | CONNECT 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)76 授權(quán)與回收(續(xù)) 擁有的權(quán) 限 可否執(zhí)行的操作 CREATE USER CREATE SCHEMA CREATE TABLE 登錄數(shù)據(jù)庫 執(zhí)行數(shù)據(jù)查詢 和操縱 DBA可以可以可以可以 RESOURC E 不可以不可以不可以不可以 CONNECT不可以不可以不可以可以,但必須擁有相應(yīng)權(quán) 限 權(quán)限與可執(zhí)行的操作對照表 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)77 數(shù)據(jù)庫角色 數(shù)據(jù)庫角色:被命名的一組與數(shù)據(jù)庫操作相 關(guān)的權(quán)限 角色是權(quán)限的集合 可以為一組具有相同權(quán)限的用戶創(chuàng)建一個(gè)角色
36、 簡化授權(quán)的過程 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)78 數(shù)據(jù)庫角色 角色的創(chuàng)建角色的創(chuàng)建 CREATE ROLE 給角色授權(quán)給角色授權(quán) GRANT , ON 對象名 TO , 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)79 數(shù)據(jù)庫角色 將一個(gè)角色授予其他的角色或用戶將一個(gè)角色授予其他的角色或用戶 GRANT , TO , WITH ADMIN OPTION 角色權(quán)限的收回角色權(quán)限的收回 REVOKE , ON FROM , 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)80 數(shù)據(jù)庫角色(續(xù)) 例11通過角色來實(shí)現(xiàn)將一組權(quán)限授予一個(gè)用戶。 步驟如下: 1. 首先創(chuàng)建一個(gè)角色 R1 CREATE ROLE R1; 2. 然后使用GRANT語句,使角色R1擁有Student表的 SELECT、UPDATE、INSERT權(quán)限 GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1; 數(shù)據(jù)庫原理與技術(shù)-北京師范大學(xué)81 數(shù)據(jù)庫角色(續(xù)) 3. 將這個(gè)角色授予王平,張明,趙玲。使他們具 有角色R1所包含的全部權(quán)限 GRANT R1 TO 王平,張明,趙玲; 4. 可以一次性通過R1來回收王平的這3個(gè)權(quán)限 REVOK
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年植物保護(hù)專業(yè)資格考試試題及答案
- 2025年聲樂與音樂教育專業(yè)技能考核試卷及答案
- 2025年化學(xué)工程與工藝專業(yè)考試試卷及答案
- 2025年物業(yè)管理專業(yè)能力測試試卷及答案
- 2025年黃金投資分析師考試試卷及答案
- 2025年鄉(xiāng)村醫(yī)學(xué)考試試卷及答案
- 2025年健康管理師資格考試試題及答案發(fā)布
- 燒烤網(wǎng)紅店品牌形象授權(quán)及區(qū)域代理合作協(xié)議
- 跨境法律文書快遞保險(xiǎn)及價(jià)值保全合同附件
- 跨區(qū)域物流企業(yè)叉車操作員派遣服務(wù)合同
- 23G409先張法預(yù)應(yīng)力混凝土管樁
- MOOC 國情分析與商業(yè)設(shè)計(jì)-暨南大學(xué) 中國大學(xué)慕課答案
- 電氣二次回路-版課件
- 國有企業(yè)職場禮儀培訓(xùn)XXXX最新版課件
- 骨科疾病的康復(fù)課件
- 第節(jié)-國際直接投資理論P(yáng)PT優(yōu)秀資料
- 動(dòng)火許可證(模板)
- 具備履行合同所必需的設(shè)備和專業(yè)技術(shù)能力的證明材料范文五篇
- 預(yù)拌混凝土運(yùn)輸單(正本)
- (完整word版)冰柜投放協(xié)議(免投版)
- 【學(xué)習(xí)課件】第七章天然氣處理與輕烴回收
評論
0/150
提交評論