?? 第九章數據庫安全性.txt
字號:
第九章 數據庫安全性
一、選擇題
1. 以下( )不屬于實現數據庫系統安全性的主要技術和方法。
A. 存取控制技術 B. 視圖技術
C. 審計技術 D. 出入機房登記和加鎖
2. SQL中的視圖提高了數據庫系統的( )。
A. 完整性 B. 并發控制
C. 隔離性 D. 安全性
3. SQL語言的GRANT和REMOVE語句主要是用來維護數據庫的( )。
A. 完整性 B. 可靠性
C. 安全性 D. 一致性
4. 在數據庫的安全性控制中,授權的數據對象的( ),授權子系統就越靈活。
A. 范圍越小 B. 約束越細致
C. 范圍越大 D. 約束范圍大
選擇題答案:
(1) D (2) D (3) C (4) A
三、簡答題
1. 什么是數據庫的安全性?
答:
數據庫的安全性是指保護數據庫以防止不合法的使用所造成的數據泄露、更改或破壞。
2. 數據庫安全性和計算機系統的安全性有什么關系?
答:
安全性問題不是數據庫系統所獨有的,所有計算機系統都有這個問題。只是在數據庫系統中大量數據集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。
系統安全保護措施是否有效是數據庫系統的主要指標之一。
數據庫的安全性和計算機系統的安全性,包括操作系統、網絡系統的安全性是緊密聯系、相互支持的,
3.試述實現數據庫安全性控制的常用方法和技術。
答:
實現數據庫安全性控制的常用方法和技術有:
1)用戶標識和鑒別:該方法由系統提供一定的方式讓用戶標識自己的名字或身份。每次用戶要求進入系統時,由系統進行核對,通過鑒定后才提供系統的使用權。
2)存取控制:通過用戶權限定義和合法權檢查確保只有合法權限的用戶訪問數據庫,所有未被授權的人員無法存取數據。例如C2級中的自主存取控制(DAC),B1級中的強制存取控制(MAC);
3)視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數據對無權存取的用戶隱藏起來,從而自動地對數據提供一定程度的安全保護。
4)審計:建立審計日志,把用戶對數據庫的所有操作自動記錄下來放入審計日志中, DBA可以利用審計跟蹤的信息,重現導致數據庫現有狀況的一系列事件,找出非法存取數據的人、時間和內容等。
5)數據加密:對存儲和傳輸的數據進行加密處理,從而使得不知道解密算法的人無法獲知數據的內容。
具體內容請參見《概論》9.2。
4.什么是數據庫中的自主存取控制方法和強制存取控制方法?
答:
自主存取控制方法:定義各個用戶對不同數據對象的存取權限。當用戶對數據庫訪問時首先檢查用戶的存取權限。防止不合法用戶對數據庫的存取。
強制存取控制方法:每一個數據對象被(強制地)標以一定的密級,每一個用戶也被(強制地)授予某一個級別的許可證。系統規定只有具有某一許可證級別的用戶才能存取某一個密級的數據對象。
*解析:自主存取控制中自主的含義是:用戶可以將自己擁有的存取權限“自主”地授予別人。即用戶具有一定的“自主”權。
5.SQL語言中提供了哪些數據控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。
答:
SQL中 的自主存取控制是通過GRANT 語句和 REVOKE 語句來實現的。如:
GRANT SELECT, INSERT ON Student
TO 王平
WITH GRANT OPTION;
就將Student表的SELECT和INSERT權限授予了用戶王平,后面的“WITH GRANT OPTION”子句表示用戶王平同時也獲得了“授權”的權限,即可以把得到的權限繼續授予其他用戶。
REVOKE INSERT ON Student FROM 王平 CASCADE;
就將Student表 的INSERT權限從用戶王平處收回,選項 CASCADE 表示,如果用戶王平將 Student 的 INSERT 權限又轉授給了其他用戶,那么這些權限也將從其他用戶處收回。
6.今有兩個關系模式:
職工(職工號,姓名,年齡,職務,工資,部門號)
部門(部門號,名稱,經理名,地址,電話號)
請用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;
這里假定系統的GRANT語句支持WHEN子句和USER()的使用。用戶將自己的名字作為ID。注意,不同的系統這些擴展語句可能是不同的。讀者應該了解你使用的DBMS產品的擴展語句。
(d) 用戶劉星對職工表有SELECT權力,對工資字段具有更新權力;
GRANT SELECT,UPDATE(工資) ON 職工
TO 劉星;
(e) 用戶張新具有修改這兩個表的結構的權力;
GRANT ALTER TABLE ON 職工,部門
TO 張新;
(f) 用戶周平具有對兩個表所有權力(讀,插,改,刪數據),并具有給其他用戶授權的權力;
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 楊蘭;
7.把習題8中(a)~(g) 的每一種情況,撤銷各用戶所授予的權力。
答:
(a)
REVOKE SELECT ON 職工,部門
FROM 王明;
(b)
REVOKE INSERT,DELETE ON 職工,部門
FROM 李勇;
(c)
REOVKE SELECT ON 職工
WHEN USER()= NAME
FROM ALL;
這里假定用戶將自己的名字作為ID,且系統的REOVKE語句支持WHEN子句,系統也支持USER()的使用。
(d)
REVOKE SELECT,UPDATE ON 職工
FROM 劉星;
(e)
REVOKE ALTER TABLE ON 職工,部門
FROM 張新;
(f)
REVOKE ALL PRIVILIGES ON 職工,部門
FROM 周平;
(g)
REVOKE SELECT ON 部門工資
FROM 楊蘭;
DROP VIEW 部門工資;
8.為什么強制存取控制提供了更高級別的數據庫安全性?
答:
強制存取控制(MAC)是對數據本身進行密級標記,無論數據如何復制,標記與數據是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數據,從而提供了更高級別的安全性。
9.理解并解釋MAC機制中主體、客體、敏感度標記的含義。
答:
主體是系統中的活動實體,既包括DBMS所管理的實際用戶,也包括代表用戶的各進程。
客體是系統中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等。
對于主體和客體,DBMS為它們每個實例(值)指派一個敏感度標記(Label)。敏感度標記被分成若干級別,例如絕密(Top Secret)、機密(Secret)、可信(Confidential)、公開(Public)等。主體的敏感度標記稱為許可證級別(Clearance Level),客體的敏感度標記稱為密級(Classification Level)。
10.什么是數據庫的審計功能,為什么要提供審計功能?
答:
審計功能是指DBMS的審計模塊在用戶對數據庫執行操作的同時把所有操作自動記錄到系統的審計日志中。
因為任何系統的安全保護措施都不是完美無缺的,蓄意盜竊破壞數據的人總可能存在。利用數據庫的審計功能,DBA可以根據審計跟蹤的信息,重現導致數據庫現有狀況的一系列事件,找出非法存取數據的人、時間和內容等。
11.統計數據庫中存在何種特殊的安全性問題?
答:
統計數據庫允許用戶查詢聚集類型的信息,如合計、平均值、最大值、最小值等,不允許查詢單個記錄信息。但是,人們可以從合法的查詢中推導出不合法的信息,即可能存在隱蔽的信息通道,這是統計數據庫要研究和解決的特殊的安全性問題。
*12. 試述你了解的某一個實際的DBMS產品的安全性措施。
答:
不同的DBMS產品以及同一產品的不同版本的安全措施各不相同,仁者見仁,智者見智,請讀者自己了解。《概論》上9.4 簡單介紹了有關ORACLE數據庫的安全性措施。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -