|
1.視圖 | | | | 視圖(View): | 是從一個(gè)或多個(gè)基本表導(dǎo)出的表。但視圖僅是一個(gè)定義,視圖本身沒有數(shù)據(jù),不占磁盤空間。視圖一經(jīng)定義就可以和基本表一樣被查詢,也可以用來定義新的視圖,但更新(插、刪、改)操作將有一定限制。 | | | | | | | 視圖機(jī)制使系統(tǒng)具有三個(gè)優(yōu)點(diǎn):數(shù)據(jù)安全性、邏輯數(shù)據(jù)獨(dú)立性和操作簡(jiǎn)便性。 視圖被用來對(duì)無權(quán)用戶屏蔽數(shù)據(jù)。用戶只能使用視圖定義中的數(shù)據(jù),而不能使用視圖定義外的其他數(shù)據(jù),從而保證了數(shù)據(jù)安全性。 |
2.權(quán)限 (1)用戶權(quán)限 SELECT INSERT DELETE UPDATE REFERENCES:允許用戶定義新關(guān)系時(shí),引用其他關(guān)系的主鍵作為外鍵。 USAGE:允許用戶使用已定義的域。 (2)授權(quán)語(yǔ)句 ①語(yǔ)句格式 GRANT <權(quán)限表> ON <數(shù)據(jù)庫(kù)元素> TO <用戶名表> [WITH GRANT OPTION] ②說明 這里權(quán)限表中的權(quán)限可以是前面提到的六種權(quán)限。 如果權(quán)限表中包括全部六種權(quán)限,那么可用關(guān)鍵字“ALL PRIVILEGES”代替。 數(shù)據(jù)庫(kù)元素可以是關(guān)系、視圖或域,但是在域名前要加關(guān)鍵字DOMAIN。 短語(yǔ)WITH GRANT OPTION表示獲得權(quán)限的用戶還能獲得傳遞權(quán)限,把獲得的權(quán)限轉(zhuǎn)授給其他用戶。 在授權(quán)語(yǔ)句中,關(guān)鍵字PUBLIC表示系統(tǒng)中所有目前的和將來可能出現(xiàn)的所有用戶。 (3)實(shí)例 GRANT SELECT, UPDATE ON S TO WANG WITH GRANT OPTION /* 把對(duì)關(guān)系S的查詢、修改權(quán)限授給用戶WANG,并且WANG還可以把這些權(quán)限轉(zhuǎn)授給其他用戶。*/ GRANT INSERT (S#, C#) ON SC TO LOU WITH GRANT OPTION /* 把對(duì)關(guān)系SC的插入(只能插入S#,C#值)權(quán)限授給用戶LOU,同時(shí)LOU還獲得了轉(zhuǎn)授權(quán)。*/ GRANT UPDATE (GRADE) ON SC TO WEN /* 把對(duì)關(guān)系SC的成績(jī)修改權(quán)限授給用戶WEN。*/ GRANT REFERENCES (CNO) ON C TO BAO WITH GRANT OPTION /* 允許用戶BAO建立新關(guān)系時(shí),可以引用關(guān)系C的主鍵CNO作為新關(guān)系的外鍵,并有轉(zhuǎn)讓權(quán)限。*/ GRANT USAGE ON DOMAIN AGE TO CHEN /* 允許用戶CHEN使用已定義過的域AGE。*/ (4)回收語(yǔ)句 ①語(yǔ)句格式 REVOKE <權(quán)限表> ON <數(shù)據(jù)庫(kù)元素> FROM <用戶名表> [RESTRICT | CASCADE] ②說明 該語(yǔ)句中帶CASCADE,表示回收權(quán)限時(shí)要引起連鎖回收。即用戶Ui從用戶Uj回收權(quán)限時(shí),要把用戶Uj轉(zhuǎn)授出去的同樣的權(quán)限同時(shí)回收。如果語(yǔ)句中帶RESTRICT,則當(dāng)不存在連鎖回收現(xiàn)象時(shí),才能回收權(quán)限,否則系統(tǒng)拒絕回收。 回收語(yǔ)句中“REVOKE”可用“REVOKE GRANT OPTION FOR”代替,其意思是回收轉(zhuǎn)授出去的轉(zhuǎn)讓權(quán)限,而不是回收轉(zhuǎn)授出去的權(quán)限。 ③權(quán)限回收的實(shí)例 REVOKE SELECT, UPDATE ON S FROM WANG CASCADE /* 該語(yǔ)句表示從用戶WANG回收對(duì)關(guān)系S的查詢、修改權(quán)限,并且是連鎖回收。*/ REVOKE INSERT (S#, C#) ON SC FROM ZHANG RESTRICT /* 如果ZHANG已把獲得的插入權(quán)限轉(zhuǎn)授給其他用戶,那么上述回收語(yǔ)句執(zhí)行失敗,否則回收成功。*/ REVOKE GRANT OPTION FOR REFERENCES (C#) ON C FROM BAO /* 該語(yǔ)句從用戶BAO回收對(duì)關(guān)系C中主鍵CNO引用的轉(zhuǎn)授權(quán)。*/ |
3.角色 (1)角色的概念 在SQL中,用戶(User)是實(shí)際的人或是訪問數(shù)據(jù)庫(kù)的應(yīng)用程序。而角色(Role)是一組具有相同權(quán)限的用戶,實(shí)際上角色是屬于目錄一級(jí)的概念。 (2)用戶與角色的關(guān)系 ①SQL標(biāo)準(zhǔn)并不包含CREATE USER和DROP USER語(yǔ)句,由具體的系統(tǒng)確定如何創(chuàng)建和撤銷用戶、如何組成一個(gè)合理的用戶標(biāo)識(shí)和口令系統(tǒng)。 ②用戶和角色之間存在著多對(duì)多聯(lián)系,即一個(gè)用戶可以參與多個(gè)角色,一個(gè)角色也可授予多個(gè)用戶。 ③可以把使用數(shù)據(jù)庫(kù)的權(quán)限用GRANT語(yǔ)句授予角色,再把角色授予用戶,這樣用戶也就擁有了使用數(shù)據(jù)庫(kù)的權(quán)限。 ④角色之間可能存在一個(gè)角色鏈。即可以把一個(gè)角色授予另一角色,則后一個(gè)角色也就擁有了前一個(gè)角色的權(quán)限。 (3)角色的定義語(yǔ)句 GRANT <權(quán)限列表> ON <基本表名或視圖名> TO <角色名> GRANT <角色名> TO <用戶名> GRANT <角色名> TO <角色名> 用REVOKE語(yǔ)句把權(quán)限或角色收回。 |
4.審計(jì) | | | | 審計(jì)追蹤(Audit Trail): | 用于安全性目的的數(shù)據(jù)庫(kù)日志,稱為審計(jì)追蹤(Audit Trail)。 | | | | | | | 審計(jì)追蹤是一個(gè)對(duì)數(shù)據(jù)庫(kù)作更改(插、刪、修)的日志,還包括一些其他信息,如哪個(gè)用戶執(zhí)行了更新和什么時(shí)候執(zhí)行的更新等。 如果懷疑數(shù)據(jù)庫(kù)被篡改了,那么就開始執(zhí)行DBMS的審計(jì)軟件。該軟件將掃描審計(jì)追蹤中某一時(shí)間段內(nèi)的日志,以檢查所有作用于數(shù)據(jù)庫(kù)的存取動(dòng)作和操作。當(dāng)發(fā)現(xiàn)一個(gè)非法的或未授權(quán)的操作時(shí),DBA就可以確定執(zhí)行這個(gè)操作的賬號(hào)。 |