




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章數(shù)據(jù)庫安全性與完整性主要內(nèi)容5.1數(shù)據(jù)庫安全性概述5.2Oracle的安全機(jī)制5.3數(shù)據(jù)庫完整性控制5.4實驗5.5本章小結(jié)5.1數(shù)據(jù)庫安全性概述
第5章數(shù)據(jù)庫安全性與完整性5.1數(shù)據(jù)庫安全性概述5.1.1安全控制模型在一般計算機(jī)系統(tǒng)中,安全措施往往是一級一級層層設(shè)置的,其安全模型如圖5.1所示。45.1數(shù)據(jù)庫安全性概述在這個安全模型中,用戶要求進(jìn)入計算機(jī)時,系統(tǒng)首先根據(jù)輸入的用戶標(biāo)識進(jìn)行用戶身份鑒定,只有合法用戶才準(zhǔn)許進(jìn)入計算機(jī)系統(tǒng)。對已進(jìn)入系統(tǒng)的用戶,DBMS還要設(shè)置很多訪問限制,例如DBMS級訪問控制主要有自由存取控制(DiscretionaryAccessControl,簡稱DAC)和強(qiáng)制存取控制方法(MandatoryAccessControl,簡稱MAC),并只允許用戶進(jìn)行合法操作。操作系統(tǒng)一級也有自己的保護(hù)措施,它主要是基于用戶訪問權(quán)限的訪問控制。數(shù)據(jù)最后還可以以密碼形式存儲到數(shù)據(jù)庫中。55.1數(shù)據(jù)庫安全性概述5.1.2安全層次簡介在安全問題上,DBMS應(yīng)與操作系統(tǒng)達(dá)到某種意向,理清關(guān)系,分工協(xié)作,以加強(qiáng)DBMS的安全性。數(shù)據(jù)庫系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。主要包括以下幾個層次的安全措施:1.?dāng)?shù)據(jù)庫系統(tǒng)層次2.操作系統(tǒng)層次3.網(wǎng)絡(luò)層次4.物理層次5.人員層次65.1數(shù)據(jù)庫安全性概述5.1.3安全標(biāo)準(zhǔn)簡介1.TCSEC標(biāo)準(zhǔn)TCSEC是指1985年美國國防部正式頒布的《DoD可信計算機(jī)系統(tǒng)評估準(zhǔn)則》。在TCSEC中,美國國防部按處理信息的等級和應(yīng)采用的響應(yīng)措施,將計算機(jī)安全從高到低分為:A、B、C、D四類八個級別,共27條評估準(zhǔn)則。隨著安全等級的提高,系統(tǒng)的可信度隨之增加,風(fēng)險逐漸減少,如表5.1所示。75.1數(shù)據(jù)庫安全性概述85.1數(shù)據(jù)庫安全性概述2.CC(CommonCriteria,CC)標(biāo)準(zhǔn)國際《信息技術(shù)安全性評估通用準(zhǔn)則》(簡稱為《通用準(zhǔn)則》,CC)是北美和歐盟聯(lián)合以開發(fā)一個統(tǒng)一的國際互認(rèn)的安全標(biāo)準(zhǔn)的結(jié)果,是在美國、加拿大、歐洲等國家和地區(qū)分別自行推出的評估標(biāo)準(zhǔn)及具體實踐的基礎(chǔ)上,通過相互間的總結(jié)和互補(bǔ)發(fā)展起來的。95.1數(shù)據(jù)庫安全性概述3.我國的信息安全評估標(biāo)準(zhǔn)我國在信息系統(tǒng)安全的研究與應(yīng)用方面與其他先進(jìn)國家相比有一定的差距,但近年來,國內(nèi)的研究人員已經(jīng)在安全操作系統(tǒng)、安全數(shù)據(jù)庫、安全網(wǎng)關(guān)、防火墻、入侵檢測系統(tǒng)等方面做了許多工作,1999年發(fā)布的國家強(qiáng)制性標(biāo)準(zhǔn)《計算機(jī)信息系統(tǒng)安全保護(hù)等級劃分準(zhǔn)則》(GB17859-1999)為安全產(chǎn)品的研制提供了技術(shù)支持,也為安全系統(tǒng)的建設(shè)和管理提供了技術(shù)指導(dǎo)。該標(biāo)準(zhǔn)是我國計算機(jī)信息系統(tǒng)安全保護(hù)等級系列標(biāo)準(zhǔn)的第一部分,其他相關(guān)應(yīng)用指南、評估準(zhǔn)則等正在建設(shè)之中,該標(biāo)準(zhǔn)的制定參照了美國的TCSEC。105.2Oracle的安全機(jī)制
第5章數(shù)據(jù)庫安全性與完整性5.2Oracle的安全機(jī)制5.2.1用戶管理在Oracle中,最外層的安全措施就是讓用戶標(biāo)識自己的名字,然后由系統(tǒng)進(jìn)行核實。Oracle允許用戶重復(fù)標(biāo)識三次,如果三次未通過,系統(tǒng)就自動退出。在Oracle數(shù)據(jù)庫系統(tǒng)中可以通過設(shè)置用戶的安全參數(shù)維護(hù)安全性。為了防止非授權(quán)用戶對數(shù)據(jù)庫進(jìn)行存取,在創(chuàng)建用戶時必須使用安全參數(shù)對用戶進(jìn)行限制。用戶的安全參數(shù)包括:用戶名、口令、用戶默認(rèn)表空間、用戶臨時表空間、用戶空間存取限制和用戶資源存取限制。125.2Oracle的安全機(jī)制1.創(chuàng)建用戶使用SQL命令創(chuàng)建用戶的語法如下:語法:CREATEUSER用戶名IDENTIFIEDBY口令
[DEFAULTTABLESPACE表空間名][TEMPORARYTABLESPACE表空間名][QUOTAnK|M|UNLIMITEDONtablespace_name][PROFILEprofile_name][PASSWORDEXPIRE][ACCOUNT{LOCK|UNLOCK}]135.2Oracle的安全機(jī)制例題5.1創(chuàng)建一個c##test用戶,口令為c##test。該用戶口令沒有到期,賬號也沒有被鎖住,默認(rèn)表空間為users,在該表空間的配額為20MB,臨時表空間為temp。例題解析:CREATEUSERc##testIDENTIFIEDBYc##testDEFAULTTABLESPACEusersTEMPORARYTABLESPACEtempQUOTA20MONusersACCOUNTUNLOCK;說明:當(dāng)建立用戶后,必須給用戶授權(quán),用戶才能連接到數(shù)據(jù)庫,并對數(shù)據(jù)庫中的對象進(jìn)行操作。只有擁有CREATESESSION權(quán)限的用戶才能連接到數(shù)據(jù)庫。可用下列語句對test用戶授權(quán)。GRANTCREATESESSIONTOc##test;145.2Oracle的安全機(jī)制2.修改用戶建立用戶時指定的所有特性都可以使用ALTERUSER命令加以修改。使用此命令可修改用戶的默認(rèn)表空間、臨時表空間、口令、口令期限以及加鎖設(shè)置,但是不能更改用戶名。執(zhí)行該語句必須具有ALTERUSER的系統(tǒng)權(quán)限。修改用戶的語法如下:ALTERUSER用戶名IDENTIFIEDBY口令[DEFAULTTABLESPACE表空間名][TEMPORARYTABLESPACE表空間名][PASSWORDEXPIRE][ACCOUNT{LOCK|UNLOCK}]155.2Oracle的安全機(jī)制例題5.2將c##test用戶的口令修改為Oracle19c,并且將其口令設(shè)置為到期。例題解析:ALTERUSERc##testIDENTIFIEDBYOracle19cPASSWORDEXPIRE;例題5.3修改c##test用戶的默認(rèn)表空間和賬戶的狀態(tài)。將默認(rèn)表空間改為system,賬戶的狀態(tài)設(shè)置為鎖定狀態(tài)。例題解析:ALTERUSERc##testDEFAULTTABLESPACEsystemACCOUNTLOCK;165.2Oracle的安全機(jī)制3.刪除用戶使用DROPUSER命令可以從數(shù)據(jù)庫中刪除一個用戶。當(dāng)一個用戶被刪除時,其所擁有對象也隨之被刪除。刪除用戶的語法如下:DROPUSER用戶名;假如用戶擁有對象,必須指定CASCADE關(guān)鍵字才能刪除用戶,否則返回一個錯誤。假如指定了CASCADE關(guān)鍵字,Oracle先刪除該用戶所擁有的所有對象,然后刪除該用戶。如果其他數(shù)據(jù)庫對象(如存儲過程、函數(shù)等)引用了該用戶的數(shù)據(jù)庫對象,則這些數(shù)據(jù)庫對象將被標(biāo)識為失效(INVALID)。175.2Oracle的安全機(jī)制例題5.4刪除c##test用戶。例題解析:DROPUSERc##test;說明:如果我們已經(jīng)在c##test用戶下創(chuàng)建了相應(yīng)的對象,如表、視圖,那么我們在使用上述命令對用戶進(jìn)行刪除時將出現(xiàn)錯誤,此時語句應(yīng)改為:DROPUSERc##testCASCADE;但是,一個連接到Oracle服務(wù)器的用戶是不能被刪除的。185.2Oracle的安全機(jī)制4.查詢用戶信息可以通過查詢數(shù)據(jù)字典視圖或動態(tài)性能視圖來獲取用戶信息。(1)ALL_USERS:包含數(shù)據(jù)庫所有用戶的用戶名、用戶ID和用戶創(chuàng)建時間。(2)DBA_USERS:包含數(shù)據(jù)庫所有用戶的詳細(xì)信息。(3)USER_USERS:包含當(dāng)前用戶的詳細(xì)信息。(4)V$SESSION:包含用戶會話信息。(5)V$OPEN_CURSOR:包含用戶執(zhí)行的SQL語句信息。普通用戶只能查詢USER_USERS數(shù)據(jù)字典,只有擁有DBA權(quán)限的用戶才能查詢DBA_USERS數(shù)據(jù)字典。195.2Oracle的安全機(jī)制例題5.5查詢當(dāng)前用戶的詳細(xì)信息。例題解析:SELECTUSERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,ACCOUNT_STATUS,EXPIRY_DATEFROMUSER_USERS;205.2Oracle的安全機(jī)制例題5.6查詢數(shù)據(jù)庫中所有用戶名、默認(rèn)表空間和賬戶的狀態(tài)。例題解析:SELECTUSERNAME,DEFAULT_TABLESPACE,ACCOUNT_STATUSFROMDBA_USERS;215.2Oracle的安全機(jī)制5.2.2權(quán)限管理創(chuàng)建了用戶,并不意味著用戶就可以對數(shù)據(jù)庫隨心所欲地進(jìn)行操作。創(chuàng)建用戶賬號也只是意味著用戶具有了連接、操作數(shù)據(jù)庫的資格,用戶對數(shù)據(jù)庫進(jìn)行的任何操作,都需要具有相應(yīng)的操作權(quán)限。權(quán)限是在數(shù)據(jù)庫中執(zhí)行一種操作的權(quán)力。在Oracle數(shù)據(jù)庫中,根據(jù)系統(tǒng)管理方式的不同,可以將權(quán)限分為兩類,即系統(tǒng)權(quán)限和對象權(quán)限。225.2Oracle的安全機(jī)制1.系統(tǒng)權(quán)限系統(tǒng)權(quán)限可劃分成下列三類:
第一類:允許在系統(tǒng)范圍內(nèi)操作的權(quán)限。如:CREATESESSION、CREATETABLESPACE等與用戶無關(guān)的權(quán)限。第二類:允許在用戶自己的賬號內(nèi)管理對象的權(quán)限。如:CREATETABLE等建立、修改、刪除指定對象的權(quán)限。第三類:允許在任何用戶賬號內(nèi)管理對象的權(quán)限。如:CREATEANYTABLE等帶ANY的權(quán)限,允許用戶在任何用戶賬號下建表。235.2Oracle的安全機(jī)制245.2Oracle的安全機(jī)制使用GRANT命令可以將系統(tǒng)權(quán)限授予給一個用戶、角色或PUBLIC。給用戶授予系統(tǒng)權(quán)限是應(yīng)該根據(jù)用戶身份的不同進(jìn)行的。語法格式如下:GRANT{系統(tǒng)權(quán)限|角色}[,{系統(tǒng)權(quán)限|角色}]…TO{用戶|角色|PUBLIC}[,{用戶|角色|PUBLIC}]…[WITHADMINOPTION]說明:①PUBLIC是創(chuàng)建數(shù)據(jù)庫時自動創(chuàng)建的一個特殊的用戶組,數(shù)據(jù)庫中所有的用戶都屬于該用戶組。如果將某個權(quán)限授予PUBLIC用戶組,則數(shù)據(jù)庫中所有用戶都具有該權(quán)限。②WITHADMINOPTION表示允許得到權(quán)限的用戶進(jìn)一步將這些權(quán)限或角色授予給其他的用戶或角色。255.2Oracle的安全機(jī)制例題5.7先創(chuàng)建用戶c##user1,再為用戶c##user1授予CREATESESSION系統(tǒng)權(quán)限,保證用戶c##user1成功登錄。265.2Oracle的安全機(jī)制27通過授權(quán)解決用戶登錄失敗的問題,程序如下:GRANTCREATESESSIONTOc##user1;為用戶c##user1授予權(quán)限后,再次登錄的結(jié)果如圖5.5所示。5.2Oracle的安全機(jī)制例題5.8為用戶c##user1授予CREATETABLE系統(tǒng)權(quán)限。例題解析:在例題5.7中用戶c##user1已經(jīng)創(chuàng)建成功,并且能夠成功登錄數(shù)據(jù)庫。在用戶c##user1中創(chuàng)建一張基本表,結(jié)果如圖5.6所示。285.2Oracle的安全機(jī)制當(dāng)前用戶c##user1不具有創(chuàng)建表的權(quán)限,所以創(chuàng)建失敗了。在SYSTEM用戶下,給用戶c##user1授權(quán),程序如下:GRANTCREATETABLETOc##user1;為用戶c##user1授予權(quán)限后,在用戶c##user1中再次創(chuàng)建基本表,結(jié)果如圖5.7所示。295.2Oracle的安全機(jī)制例題5.9為用戶c##user1授予CREATEVIEW系統(tǒng)權(quán)限,允許用戶
c##user1將該權(quán)限再授予給其他用戶。例題解析:GRANTCREATEVIEWTOc##user1WITHADMINOPTION;305.2Oracle的安全機(jī)制(2)系統(tǒng)權(quán)限的回收數(shù)據(jù)庫管理員或系統(tǒng)權(quán)限傳遞用戶可以將用戶所獲得的系統(tǒng)權(quán)限回收。系統(tǒng)權(quán)限回收使用REVOKE命令可以從用戶或角色上回收系統(tǒng)權(quán)限。語法格式如下:REVOKE{系統(tǒng)權(quán)限|角色}[,{系統(tǒng)權(quán)限|角色}]…FROM{用戶名|角色|PUBLIC}[,{用戶名|角色|PUBLIC}]…315.2Oracle的安全機(jī)制例題5.10回收用戶c##user1的CREATEVIEW系統(tǒng)權(quán)限。例題解析:REVOKECREATEVIEWFROMc##user1;說明:①多個管理員授予用戶同一個系統(tǒng)權(quán)限后,其中一個管理員回收其授予該用戶的系統(tǒng)權(quán)限時,不影響該用戶從其他管理員處獲得系統(tǒng)權(quán)限。②系統(tǒng)權(quán)限授權(quán)語句中WITHADMINOPTION從句給了受權(quán)者將此權(quán)限再授予給另一個用戶或PUBLIC的權(quán)利。但是當(dāng)一個系統(tǒng)權(quán)限回收時沒有級聯(lián)影響,不管在權(quán)限授予時是否帶WITHADMINOPTION從句。325.2Oracle的安全機(jī)制2.對象權(quán)限對象權(quán)限是指在對象級控制數(shù)據(jù)庫的存取和使用的機(jī)制,用于設(shè)置一個用戶對其他用戶的表、視圖、序列、過程、函數(shù)、包的操作權(quán)限。對于不同類型的對象,有不同類型的對象權(quán)限。對于有些模式對象,如聚集、索引、觸發(fā)器、數(shù)據(jù)庫鏈接等沒有相關(guān)的對象權(quán)限,這些權(quán)限由系統(tǒng)進(jìn)行控制。335.2Oracle的安全機(jī)制Oracle提供的對象權(quán)限如表5.3所示。345.2Oracle的安全機(jī)制(1)對象權(quán)限的授權(quán)使用GRANT命令可以將對象權(quán)限授予給一個用戶、角色或PUBLIC。語法格式如下:GRANT{對象權(quán)限[(列名1[,列名2…])][,對象權(quán)限[(列名1[,列名2…])]]…|ALL}ON對象名TO{用戶名|角色名|PUBLIC}[,{用戶名|角色名|PUBLIC}]…[WITHGRANTOPTION]說明:WITHGRANTOPTION表示允許得到權(quán)限的用戶進(jìn)一步將這些權(quán)限授予給其他的用戶或角色。355.2Oracle的安全機(jī)制例題5.11用戶system將學(xué)生表student的SELECT權(quán)限和屬性列sname、age上的UPDATE權(quán)限授予給用戶c##user1,并且允許用戶c##user1再將這些對象權(quán)限授予給其他用戶。例題解析:授權(quán)前,用戶c##user1的權(quán)限測試結(jié)果如圖5.8所示。365.2Oracle的安全機(jī)制375.2Oracle的安全機(jī)制在system用戶下,通過給用戶c##user1授權(quán),解決上述問題,程序如下:GRANTSELECT,UPDATE(sname,age)ONstudentTOc##user1WITHGRANTOPTION;授權(quán)后,用戶c##user1的權(quán)限測試結(jié)果如圖5.9所示。385.2Oracle的安全機(jī)制395.2Oracle的安全機(jī)制(2)對象權(quán)限的回收通過使用REVOKE命令可以實現(xiàn)權(quán)限的回收。語法:REVOKE{對象權(quán)限[,對象權(quán)限]…|ALL[PRIVILEGES]}FROM{用戶名|角色|PUBLIC}[,{用戶名|角色|PUBLIC}]…[RESTRICT|CASCADE]說明:①ALL用于回收授予給用戶的所有對象權(quán)限。②可選項[RESTRICT|CASCADE]中,CASCADE表示回收權(quán)限時要引起級聯(lián)回收。即從用戶A回收權(quán)限時,要把用戶A轉(zhuǎn)授出去的同樣的權(quán)限同時回收。RESTRICT表示,當(dāng)不存在級聯(lián)連鎖回收時,才能回收權(quán)限,否則系統(tǒng)拒絕回收。③當(dāng)使用WITHGRANTOPTION從句授予對象權(quán)限時,一個對象權(quán)限回收時存在級聯(lián)影響。405.2Oracle的安全機(jī)制例題5.12用戶system從用戶c##user1中回收學(xué)生表student上SELECT權(quán)限。
例題解析:回收權(quán)限前,測試用戶c##user1的權(quán)限結(jié)果如圖5.10所示。415.2Oracle的安全機(jī)制在用戶system下回收用戶c##user1對學(xué)生表student的SELECT權(quán)限,程序如下:REVOKESELECTONstudentFROMc##user1;回收權(quán)限后,測試用戶c##user1的權(quán)限結(jié)果如圖5.11所示。425.2Oracle的安全機(jī)制435.2Oracle的安全機(jī)制3.查詢各種權(quán)限可以通過數(shù)據(jù)字典視圖查詢數(shù)據(jù)庫相應(yīng)權(quán)限信息。對象權(quán)限有關(guān)的數(shù)據(jù)字典視圖如表5.4所示。445.2Oracle的安全機(jī)制例題5.13查詢當(dāng)前用戶system所具有的權(quán)限。例題解析:SELECTusername,privilege,admin_optionFROMuser_sys_privs;程序運(yùn)行結(jié)果如圖5.12所示。455.2Oracle的安全機(jī)制5.2.3角色管理角色是具有名稱的一組相關(guān)權(quán)限的集合,即將不同的權(quán)限集合在一起就形成了角色。可以使用角色為用戶授權(quán),同樣也可以撤銷角色。由于角色集合了多種權(quán)限,所以當(dāng)為用戶授予角色時,相當(dāng)于為用戶授予了多種權(quán)限。這樣就避免了向用戶逐一授權(quán),從而簡化了用戶權(quán)限的管理。Oracle中的角色可以分為預(yù)定義角色和自定義角色兩類。當(dāng)數(shù)據(jù)庫創(chuàng)建時,會自動為數(shù)據(jù)庫預(yù)定義一些角色,這些角色主要用來限制數(shù)據(jù)庫管理系統(tǒng)權(quán)限。此外,用戶也可以根據(jù)自己的需求,將一些權(quán)限集中到一起,建立用戶自定義的角色。465.2Oracle的安全機(jī)制1.預(yù)定義角色預(yù)定義角色是在數(shù)據(jù)庫安裝后,系統(tǒng)自動創(chuàng)建的一些常用的角色。預(yù)定義角色的細(xì)節(jié)可以從DBA_SYS_PRIVS數(shù)據(jù)字典視圖中查詢到。表5.5列出了幾個常見的預(yù)定義角色。475.2Oracle的安全機(jī)制485.2Oracle的安全機(jī)制2.用戶自定義角色(1)創(chuàng)建角色
使用CREATEROLE命令可以建立角色,角色是屬于整個數(shù)據(jù)庫,而不屬于任何用戶的。當(dāng)建立一個角色時,該角色沒有相關(guān)的權(quán)限,系統(tǒng)管理員必須將合適的權(quán)限授予給角色。此時,角色才是一組權(quán)限的集合。語法:CREATEROLE角色名[NOTIDENTIFIED|IDENTIFIED{BY口令}]說明:在Oracle19c中的CDB下創(chuàng)建角色時,角色名稱必須以“C##”或“c##”開頭,否則會出現(xiàn)錯誤提示消息“公共用戶名或角色名無效”。495.2Oracle的安全機(jī)制例題5.14建立一個帶口令Oracle19c的角色c##student_role。例題解析:CREATEROLEc##student_roleIDENTIFIEDBYOracle19c;505.2Oracle的安全機(jī)制(2)修改角色語法:ALTERROLErole_name[NOTIDENTIFIED][IDENTIFIEDBYpassword];使用ALTERROLE命令可以修改角色的口令,但不能修改角色名。例題5.15修改角色c##student_role使其沒有口令。例題解析:ALTERROLEc##student_roleNOTIDENTIFIED;515.2Oracle的安全機(jī)制(3)授予角色權(quán)限建立完角色后需要給角色授權(quán),授權(quán)后的角色才是一組權(quán)限的集合。在數(shù)據(jù)庫運(yùn)行過程中,可以為角色增加權(quán)限,也可以回收其權(quán)限。例題5.16將用戶system中學(xué)生表student的SELECT、UPDATE和DELETE
權(quán)限的集合授予給角色c##student_role。例題解析:GRANTSELECT,UPDATE,DELETEONstudentTOc##student_role;525.2Oracle的安全機(jī)制3.給用戶或角色授予角色可以使用GRANT語句將角色授予用戶或其他角色。語法:GRANTrole_listTOuser_list|role_list;例題5.17將角色c##student_role授予給用戶c##user1。535.2Oracle的安全機(jī)制例題解析:角色授予前,用戶c##user1的權(quán)限測試結(jié)果如圖5.13所示。545.2Oracle的安全機(jī)制將角色c##student_role授予給用戶c##user1后,用戶c##user1就具有了相應(yīng)的權(quán)限,程序如下:GRANTc##student_roleTOc##user1;授權(quán)后,測試結(jié)果如圖5.14所示。555.2Oracle的安全機(jī)制4.從用戶或角色回收角色可以使用REVOKE語句從用戶或其他角色回收角色。語法:REVOKErole_listFROMuser_list|role_list;565.2Oracle的安全機(jī)制例題5.18將角色c##student_role從用戶c##user1回收。例題解析:角色回收前,用戶c##user1的權(quán)限測試結(jié)果如圖5.15所示。575.2Oracle的安全機(jī)制將角色c##student_role從用戶c##user1中回收,程序如下:REVOKEc##student_roleFROMc##user1;角色回收后,用戶c##user1就失去了相應(yīng)的權(quán)限,測試結(jié)果如圖5.16所示。585.2Oracle的安全機(jī)制5.刪除角色使用DROPROLE命令可以刪除角色。即使此角色已經(jīng)被授予給一個用戶,數(shù)據(jù)庫也允許用戶刪除該角色。例題5.19從數(shù)據(jù)庫中刪除c##student_role角色。例題解析:DROPROLEc##student_role;595.2Oracle的安全機(jī)制6.查詢角色信息可以通過數(shù)據(jù)字典視圖或動態(tài)性能視圖獲取數(shù)據(jù)庫角色相關(guān)信息。與角色有關(guān)的數(shù)據(jù)字典視圖如表5.6所示。605.2Oracle的安全機(jī)制例題5.20查詢當(dāng)前用戶system所具有的角色。例題解析:SELECT*FROMuser_role_privs;程序運(yùn)行效果如圖5.17所示。615.2Oracle的安全機(jī)制例題5.21查詢角色exp_full_database所擁有的權(quán)限。例題解析:SELECT*FROMrole_sys_privsWHERErole='EXP_FULL_DATABASE';程序運(yùn)行效果如圖5.18所示。625.2Oracle的安全機(jī)制5.2.4視圖機(jī)制視圖是數(shù)據(jù)庫系統(tǒng)提供給用戶以多種角度觀察數(shù)據(jù)庫中數(shù)據(jù)的重要機(jī)制,是從一個或幾個基表(或視圖)導(dǎo)出的表,它與基表不同,是一個虛表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。從某種意義上講,視圖就像一個窗口,透過它可以看到數(shù)據(jù)庫中自己感興趣的數(shù)據(jù)及其變化。進(jìn)行存取權(quán)限控制時,可以為不同的用戶定義不同的視圖,把訪問數(shù)據(jù)的對象限制在一定的范圍內(nèi),也就是說,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而對數(shù)據(jù)提供一定程度的安全保護(hù)。視圖的創(chuàng)建與應(yīng)用已經(jīng)在第三章講解過,這里就不在介紹了。635.2Oracle的安全機(jī)制5.2.5審計Oracle數(shù)據(jù)庫的審計功能與SQLServer相比更加靈活。Oracle數(shù)據(jù)庫中的審計大概可以分為以下幾種類型:1.語句審計2.權(quán)限審計3.模式對象審計4.細(xì)粒度的審計645.2Oracle的安全機(jī)制例題5.22對修改學(xué)生表student的表結(jié)構(gòu)或修改學(xué)生表student中數(shù)據(jù)的操作進(jìn)行審計。AUDITALTER,UPDATEONstudent;例題5.23取消對學(xué)生表student修改表結(jié)構(gòu)和修改表數(shù)據(jù)的審計。
NOAUDITALTER,UPDATEONstudent;655.2Oracle的安全機(jī)制5.2.6數(shù)據(jù)加密通過數(shù)據(jù)加密可以提高存儲數(shù)據(jù)的安全性,Oracle數(shù)據(jù)庫加密功能的實現(xiàn)由數(shù)據(jù)庫平臺提供的軟件包來支持。Oracle提供了特殊DBMS_OBFUSCATION_TOOLKIT包、DBMS_CRYPTO包等用于數(shù)據(jù)加密/解密,同時支持DES、AES等多種加密/解密算法。665.2Oracle的安全機(jī)制在數(shù)據(jù)加密中,密鑰的存儲和管理是非常重要的,它直接影響到數(shù)據(jù)加密的安全性。但是,在數(shù)據(jù)庫管理系統(tǒng)內(nèi)核層加密策略中,并沒有提供密鑰存儲的方法,這也是在以O(shè)racle提供的安全包為基礎(chǔ)制定加密策略時最難解決的部分。在制定密鑰的存儲和管理方案時,要確保以下兩點:
(1)密鑰存儲,足夠可靠,以確保能夠保護(hù)數(shù)據(jù);
(2)要保證合法用戶且只有合法用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 章魚燒包裝設(shè)計
- 漢服視覺設(shè)計競品分析
- 健康交往課件教學(xué)
- T/TMAC 022.F-2020科技成果評價執(zhí)業(yè)規(guī)范
- 老年人常見疾病及護(hù)理
- 頸部炎性疾病診療要點
- 石油工程設(shè)計
- 課程設(shè)計分享
- 高血壓疾病介紹
- 華為電子展示空間設(shè)計
- 江西省部分高中學(xué)校2024-2025學(xué)年高一下學(xué)期聯(lián)考生物試卷(原卷版+解析版)
- 鋼箱梁吊裝施工專項方案
- 上腔靜脈綜合征護(hù)理課件
- IT行業(yè)專業(yè)試題集范本1
- 預(yù)防性駕駛與防御性駕駛
- 砌體結(jié)構(gòu)檢測試題及答案
- 腦卒中患者轉(zhuǎn)院時的流程要點
- 2025年上半年江蘇徐州沛縣總工會招聘工會社會化工作者13人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024北京海淀區(qū)初一(下)期末歷史試題和答案
- 化工裝置靜設(shè)備基礎(chǔ)知識
- 商品混凝土供應(yīng)合同范本
評論
0/150
提交評論