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