第4章 數(shù)據(jù)庫安全性
1 .什么是數(shù)據(jù)庫的安全性?
答:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
2 .?dāng)?shù)據(jù)庫安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?
答:安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。
系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。
數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的,
4?.試述實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。
答:實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:
( l )用戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過鑒定后才提供系統(tǒng)的使用權(quán)。
( 2 )存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如CZ 級(jí)中的自主存取控制( DAC ) , Bl 級(jí)中的強(qiáng)制存取控制(MAC )。
( 3 )視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存取的用戶隱藏起來,從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。
( 4 )審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫的所有操作自動(dòng)記錄下來放入審計(jì)日志中,DBA 可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
( 5 )數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
?
5.什么是數(shù)據(jù)庫中的自主存取控制方法和強(qiáng)制存取控制方法??
答:
自主存取控制方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫訪問時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對(duì)數(shù)據(jù)庫的存取。
強(qiáng)制存取控制方法:每一個(gè)數(shù)據(jù)對(duì)象被(強(qiáng)制地)標(biāo)以一定的密級(jí),每一個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級(jí)別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級(jí)別的用戶才能存取某一個(gè)密級(jí)的數(shù)據(jù)對(duì)象。
?
6. (1) GRANT ALL PRIVILEGES?ON Student,Class??
TO U1
WITH GRANT OPTION ;
??(2)GRANT SELECT,UPDATE(家庭住址),DELETE ON Student TO U2;
??(3)GRANT SELECT?ON Class TO PUBLIC;
??(4)GRANT SELECT,UPDATE?ON Student TO R1;
??(5)GRANT R1 TO U1 WITH ADMIN?OPTION ;
?
7 .SQL 語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請(qǐng)?jiān)嚺e幾例說明它們的使用方法。
答:
SQL 中的自主存取控制是通過GRANT語句和REVOKE語句來實(shí)現(xiàn)的。如:
GRANT SELECT , INSERT ON Student ?
TO 王平
WITH GRANT ?OPTION ;
就將Student 表的SELECT 和INSERT 權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION ”子句表示用戶王平同時(shí)也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。
REVOKE INSERT ON Student FROM 王平CASCADE ;
就將Student 表的INSERT 權(quán)限從用戶王平處收回,選項(xiàng)CASCADE 表示,如果用戶王平將Student 的INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。
7.請(qǐng)用SQL的GRANT 和REVOKE語句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:
( a )用戶王明對(duì)兩個(gè)表有SELECT 權(quán)力。
GRANT SELECT ON 職工,部門
TO 王明
( b )用戶李勇對(duì)兩個(gè)表有INSERT 和DELETE 權(quán)力。
GRANT INSERT,DELETE ON 職工,部門
TO 李勇
( c ) 每個(gè)職工只對(duì)自己的記錄有SELECT 權(quán)力。
GRANT SELECT ON 職工
WHEN USER()=NAME
TO ALL;
( d )用戶劉星對(duì)職工表有SELECT 權(quán)力,對(duì)工資字段具有更新權(quán)力。
GRANT SELECT,UPDATE(工資) ON 職工
TO 劉星
?( e )用戶張新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)力。
GRANT ALTER TABLE ON 職工,部門
TO 張新;
?( f )用戶周平具有對(duì)兩個(gè)表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力。
GRANT ALL PRIVILIGES ON 職工,部門
TO 周平
WITH GRANT OPTION;
( g )用戶楊蘭具有從每個(gè)部門職工中SELECT 最高工資、最低工資、平均工資的權(quán)力,他不能查看每個(gè)人的工資。
CREATE VIEW 部門工資 AS
SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE 職工.部門號(hào)=部門.部門號(hào)
GROUP BY 職工.部門號(hào)
GRANT SELECT ON 部門工資
TO 楊蘭;
?
8?.把習(xí)題8 中(1)---(7)的每一種情況,撤銷各用戶所授予的權(quán)力
(1) REVOKE SELECT ON 職工,部門 FROM 王明;
(2) REVOKE INSERT , DELETE ON 職工,部門 FROM 李勇;
(3) REOVKE SELECT ON 職工
WHEN USER ( ) =NAME
FROM ALI ;
(4) REVOKE SELECT , UPDATE ON 職工
FROM 劉星;
(5) REVOKE ALTER TABLE ON 職工,部門
FROM 張新;
(6) REVOKE ALL PRIVILIGES ON 職工,部門
FROM 周平;
(7) REVOKE SELECT ON 部門工資
FROM 楊蘭;
DROP VIEW 部門工資;
?
9.理解并解釋MAC 機(jī)制中主體、客體、敏感度標(biāo)記的含義。
答:
主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS 所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。
客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等。對(duì)于主體和 客體,DBMS 為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label )。
敏感度標(biāo)記被分成若干級(jí)別,例如絕密(Top Secret )、機(jī)密(Secret )· 可信( Confidential )、公開(PubliC )等。主體的敏感度標(biāo)記稱為許可證級(jí)別(ClearanCe 玫vel ) ,客體的敏感度標(biāo)記稱為密級(jí)(Classification Level )。
?
11?.什么是數(shù)據(jù)庫的審計(jì)功能,為什么要提供審計(jì)功能?
答:審計(jì)功能是指DBMS 的審計(jì)模塊在用戶對(duì)數(shù)據(jù)庫執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。
因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計(jì)功能,DBA 可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。