【文章內容簡介】
ETE FROM SPJ WHERE SNO=‘S2’(11)請將(S2,J6,P4,200)插入供應情況關系。 INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)6 .什么是基本表?什么是視圖?答兩者的區(qū)別和聯(lián)系是什么?基本表是本身獨立存在的表,在 sQL 中一個關系就對應一個表。視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 7 .試述視圖的優(yōu)點。答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據(jù); ( 3 )視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性; ( 4 )視圖能夠對機密數(shù)據(jù)提供安全保護。8 .所有的視圖是否都可以更新?為什么?答:不是。視圖是不實際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉換為對基本表的更新。因為有些視圖的更新不能惟一有意義地轉換成對相應基本表的更新,所以,并不是所有的視圖都是可更新的.9 .哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。答:基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數(shù)、表達式,則該視圖肯定是不可以更新的。10 .試述某個你熟悉的實際系統(tǒng)中對視圖更新的規(guī)定。答VFP11.請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件代碼(PNO)、供應數(shù)量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE = AND =39。三建39。針對該視圖VSP完成下列查詢:(1)找出三建工程項目使用的各種零件代碼及其數(shù)量。SELECT DIST PNO,QTY FROM VSP(2)找出供應商S1的供應情況。SELECT DIST * FROM VSP WHERE SNO=39。S139。第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)系、相互支持的,3 .試述可信計算機系統(tǒng)評測標準的情況,試述TDI / TCSEC 標準的基本內容。答:各個國家在計算機安全技術方面都建立了一套可信標準。目前各國引用或制定的一系列安全標準中,最重要的是美國國防部(DoD )正式頒布的《 DoD 可信計算機系統(tǒng)評估標準》 (伽sted Co 哪uter system Evaluation criteria ,簡稱TcsEc ,又稱桔皮書)。(TDI / TCSEC 標準是將TcsEc 擴展到數(shù)據(jù)庫管理系統(tǒng),即《 可信計算機系統(tǒng)評估標準關于可信數(shù)據(jù)庫系統(tǒng)的解釋》 (Tmsted Database Interpretation 簡稱TDI , 又稱紫皮書)。在TDI 中定義了數(shù)據(jù)庫管理系統(tǒng)的設計與實現(xiàn)中需滿足和用以進行安全性級別評估的標準。TDI 與TcsEc 一樣,從安全策略、責任、保證和文檔四個方面來描述安全性級別劃分的指標。每個方面又細分為若干項。4 .試述TcsEC ( TDI )將系統(tǒng)安全級別劃分為4 組7 個等級的基本內容。答:根據(jù)計算機系統(tǒng)對安全性各項指標的支持情況,TCSEC ( TDI )將系統(tǒng)劃分為四組(division ) 7 個等級,依次是D 、C ( CI , CZ )、B ( BI , BZ , B3 )、A ( AI ) ,按系統(tǒng)可靠或可信程度逐漸增高。這些安全級別之間具有一種偏序向下兼容的關系,即較高安全性級別提供的安全保護包含較低級別的所有保護要求,同時提供更多或更完善的保護能力。各個等級的基本內容為:D 級D 級是最低級別。一切不符合更高標準的系統(tǒng),統(tǒng)統(tǒng)歸于D 組。Cl 級只提供了非常初級的自主安全保護。能夠實現(xiàn)對用戶和數(shù)據(jù)的分離,進行自主存取控制(DAC ) ,保護或限制用戶權限的傳播。C2 級實際是安全產品的最低檔次,提供受控的存取保護,即將Cl 級的DAC 進一步細化,以個人身份注冊負責,并實施審計和資源隔離。Bl 級標記安全保護。對系統(tǒng)的數(shù)據(jù)加以標記,并對標記的主體和客體實施強制存取控制(MAC )以及審計等安全機制。B2 級結構化保護。建立形式化的安全策略模型并對系統(tǒng)內的所有主體和客體實施DAC 和MACo B3 級安全域。該級的TCB 必須滿足訪問監(jiān)控器的要求,審計跟蹤能力更強,并提供系統(tǒng)恢復過程。Al 級驗證設計,即提供B3 級保護的同時給出系統(tǒng)的形式化設計說明和驗證以確信各安全保護真正實現(xiàn)。5 .試述實現(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ù)的人、時間和內容等。( 5 )數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內容。6 .什么是數(shù)據(jù)庫中的自主存取控制方法和強制存取控制方法? 答:自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權限。當用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權限。防止不合法用戶對數(shù)據(jù)庫的存取。強制存取控制方法:每一個數(shù)據(jù)對象被(強制地)標以一定的密級,每一個用戶也被(強制地)授予某一個級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個密級的數(shù)據(jù)對象。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 權限又轉授給了其他用戶,那么這些權限也將從其他用戶處收回。8.請用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 楊蘭。9 .把習題8 中(1)(7)的每一種情況,撤銷各用戶所授予的權力(1) REVOKE SELECT ON 職工,部門 FROM 王明;(2) REVOKE INSERT , DELETE ON 職工,部門 FROM 李勇;(3) REOVKE SELECT ON 職工WHEN USER ( ) =NAMEFROM 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 部門工資;10. 為什么強制存取控制提供了更高級別的數(shù)據(jù)庫安全性?答:強制存取控制(MAC )是對數(shù)據(jù)本身進行密級標記,無論數(shù)據(jù)如何復制,標記與數(shù)據(jù)是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級別的安全性。11 .理解并解釋MAC 機制中主體、客體、敏感度標記的含義。答:主體是系統(tǒng)中的活動實體,既包括DBMS 所管理的實際用戶,也包括代表用戶的各進程??腕w是系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等。對于主體和 客體,DBMS 為它們每個實例(值)指派一個敏感度標記(Label )。敏感度標記被分成若干級別,例如絕密(Top Secret )、機密(Secret ) 可信( Confidential )、公開(PubliC )等。主體的敏感度標記稱為許可證級別(ClearanCe 玫vel ) ,客體的敏感度標記稱為密級(Classification Level )。13 .什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?答:審計功能是指DBMS 的審計模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時把所有操作自動記錄到系統(tǒng)的審計日志中。因為任何系統(tǒng)的安全保護措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計功能,DBA 可以根據(jù)審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內容等。14 .統(tǒng)計數(shù)據(jù)庫中存在何種特殊的安全性問題?答:統(tǒng)計數(shù)據(jù)庫允許用戶查詢聚集類型的信息,如合計、平均值、最大值、最小值等,不允許查詢單個記錄信息。但是,人們可以從合法的查詢中推導出不合法的信息,即可能存在隱蔽的信息通道,這是統(tǒng)計數(shù)據(jù)庫要研究和解決的特殊的安全性問題。第5章 數(shù)據(jù)庫完整性1什么是數(shù)據(jù)庫的完整性?答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。2 .數(shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?答:數(shù)據(jù)的完整性和安全性是兩個不同的概念,但是有一定的聯(lián)系。前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出( Garba : e In Garba : e out )所造成的無效操作和錯誤結果。后者是保護數(shù)據(jù)庫防止惡意的破壞和非法的存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數(shù)據(jù)。3 .什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?答完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應該滿足的語義約束條件。一般可以分為六類:靜態(tài)列級約束、靜態(tài)元組約束、靜態(tài)關系約束、動態(tài)列級約束、動態(tài)元組約束、動態(tài)關系約束。靜態(tài)列級約束是對一個列的取值域的說明,包括以下幾個方面: ( l )對數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位、精度等; ( 2 )對數(shù)據(jù)格式的約束; ( 3 )對取值范圍或取值集合的約束; ( 4 )對空值的約束; ( 5 )其他約束。靜態(tài)元組約束就是規(guī)定組成一個元組的各個列之間的約束關系,靜態(tài)元組約束只局限在單個元組上。靜態(tài)關系約束是在一個關系的各個元組之間或者若干關系之間常常存在各種聯(lián)系或約束。常見的靜態(tài)關系約束有: ( l )實體完整性約束; ( 2 )參照完整性約束; ( 3 )函數(shù)依賴約束。動態(tài)列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面: ( l )修改列定義時的約束; ( 2 )修改列值時的約束。動態(tài)元組約束是指修改某個元組的值時需要參照其舊值,并且新舊值之間需要滿足某種約束條件。動態(tài)關系約束是加在關系變化前后狀態(tài)上的限制條件,例如事務一致性、原子性等約束條件。4 . DBMS 的完整性控制機制應具有哪些功能?答:DBMS 的完整性控制機制應具有三個方面的功能: ( l )定義功能,即提供定義完整性約束條件的機制; ( 2 )檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件;( 3 )違約反應:如果