版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫系統(tǒng)原理授課教師:吳巖wuyan@第九章數(shù)據(jù)庫安全性與完整性數(shù)據(jù)庫系統(tǒng)原理9.1計(jì)算機(jī)安全性概述9.2數(shù)據(jù)庫的安全性9.3統(tǒng)計(jì)數(shù)據(jù)庫安全性9.4數(shù)據(jù)庫的完整性學(xué)習(xí)目標(biāo)
了解數(shù)據(jù)庫的安全性理論包含的內(nèi)容,理解安全數(shù)據(jù)庫的存取控制機(jī)制,掌握完整性約束的定義、檢查及違約處理的方法。學(xué)習(xí)重點(diǎn)自主存取控制方法強(qiáng)制存取控制方法完整性檢查和違約處理第九章數(shù)據(jù)庫的安全性與完整性第九章數(shù)據(jù)庫安全性與完整性9.1計(jì)算機(jī)安全性概述9.2數(shù)據(jù)庫的安全性9.3統(tǒng)計(jì)數(shù)據(jù)庫安全性9.4數(shù)據(jù)庫的完整性數(shù)據(jù)庫系統(tǒng)原理數(shù)據(jù)庫的安全性與完整性第一節(jié)
計(jì)算機(jī)安全性概述一、計(jì)算機(jī)系統(tǒng)的安全性問題
計(jì)算機(jī)系統(tǒng)安全性是指為計(jì)算機(jī)系統(tǒng)建立和采取各種安全保護(hù)措施,以保護(hù)計(jì)算機(jī)系統(tǒng)中的硬件、軟件及數(shù)據(jù),防止其因偶然或惡意的原因使系統(tǒng)遭到破壞,數(shù)據(jù)遭到更改或泄露。技術(shù)安全類
管理安全類
政策法律類數(shù)據(jù)庫的安全性與完整性計(jì)算機(jī)系統(tǒng)的安全性問題(續(xù))
1、技術(shù)安全類
計(jì)算機(jī)系統(tǒng)中采用具有一定安全性的硬件、軟件來實(shí)現(xiàn)對計(jì)算機(jī)系統(tǒng)及其所存數(shù)據(jù)的安全性保護(hù),當(dāng)計(jì)算機(jī)系統(tǒng)受到無意或惡意的攻擊時(shí)仍能保證系統(tǒng)的正常運(yùn)行,保證系統(tǒng)內(nèi)的數(shù)據(jù)不增加、不丟失、不泄露。2、管理安全類
指由于軟硬件意外故障、場地的意外事故、管理不善導(dǎo)致的計(jì)算機(jī)設(shè)備和數(shù)據(jù)介質(zhì)的物理破壞、丟失等安全問題。3、政策法律類
指政府部門建立的有關(guān)計(jì)算機(jī)犯罪、數(shù)據(jù)安全保密的法律道德準(zhǔn)則和政策法規(guī)、法令等。計(jì)算機(jī)系統(tǒng)的安全性問題(續(xù))數(shù)據(jù)庫的安全性與完整性1、可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則(TCSEC)TCSEC:1985年美國國防部(DoD)正式頒布的《DoD可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則》(TrustedComputerSystemEvaluationCriteria)TDI:1991年4月美國國家計(jì)算機(jī)安全中心頒布了《可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則關(guān)于可信數(shù)據(jù)庫系統(tǒng)的解釋》
(TrustedDatabaseInterpretation),將TCSEC擴(kuò)展到數(shù)據(jù)庫管理系統(tǒng)。二、信息安全標(biāo)準(zhǔn)數(shù)據(jù)庫的安全性與完整性TCSEC/TDI從四個(gè)方面來描述安全性級別劃分的指標(biāo):策略責(zé)任保證文檔根據(jù)計(jì)算機(jī)系統(tǒng)對標(biāo)準(zhǔn)中各項(xiàng)指標(biāo)的支持情況,TCSEC(TDI)將系統(tǒng)劃分為四組七個(gè)等級。數(shù)據(jù)庫的安全性與完整性可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則(續(xù))安全級別定義A1驗(yàn)證設(shè)計(jì)(VerifiedDesign)B3安全域(SecurityDomains)B2結(jié)構(gòu)化保護(hù)(StructuralProtection)B1標(biāo)記安全保護(hù)(LabeledSecurityProtection)C2受控的存取保護(hù)(ControlledAccessProtection)C1自主安全保護(hù)(DiscretionarySecurityProtection)D最小保護(hù)(MinimalProtection)可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則(續(xù))數(shù)據(jù)庫的安全性與完整性TCSEC/TDI安全級別劃分D級:最低級級、無安全全保護(hù)的系系統(tǒng),如DOS。C1級:提供初初級的自主主安全保護(hù)護(hù)主體、客體體分離自主訪問控控制身份標(biāo)識與與鑒別數(shù)據(jù)完整性性C2級:提供受受控的存取取保護(hù)滿足C1級標(biāo)準(zhǔn)全部部功能審計(jì)如Windows2000,Oracle7數(shù)據(jù)庫的安全性與與完整性可信計(jì)算機(jī)機(jī)系統(tǒng)評估估準(zhǔn)則(續(xù)續(xù))B1級:標(biāo)記安安全保護(hù)滿足C2級標(biāo)準(zhǔn)全部部功能強(qiáng)制訪問控控制如HP-UXBLSrelease9.0.9+,TrustedOracle7等B2級:結(jié)構(gòu)化化保護(hù)滿足B1級標(biāo)準(zhǔn)全部部功能隱蔽通道數(shù)據(jù)庫安全全的形式化化數(shù)據(jù)庫的安全性與與完整性可信計(jì)算機(jī)機(jī)系統(tǒng)評估估準(zhǔn)則(續(xù)續(xù))B3級:安全域域滿足B2級標(biāo)準(zhǔn)的全全部功能訪問監(jiān)視器器提供系統(tǒng)恢恢復(fù)過程A1級:驗(yàn)證設(shè)設(shè)計(jì)滿足B3級標(biāo)準(zhǔn)的全全部功能較高的形式式化要求和和驗(yàn)證數(shù)據(jù)庫的安全性與與完整性可信計(jì)算機(jī)機(jī)系統(tǒng)評估估準(zhǔn)則(續(xù)續(xù))信息安全標(biāo)標(biāo)準(zhǔn)(續(xù)))1985年美國國防部可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則(TCSEC)1993年加拿大可信計(jì)算機(jī)系統(tǒng)評估準(zhǔn)則(CTCPEC)1991年歐洲信息技術(shù)安全評估準(zhǔn)則(ITSEC)1993年美國信息技術(shù)安全聯(lián)邦標(biāo)準(zhǔn)(FC)草案通用準(zhǔn)則(CC)V1.01996年V2.01998年V2.11999年1999年CCV2.1成為國際標(biāo)準(zhǔn)(ISO15408)2、信息安全全標(biāo)準(zhǔn)的發(fā)發(fā)展第九章數(shù)數(shù)據(jù)庫安安全性與完完整性9.1計(jì)算機(jī)安全全性概述9.2數(shù)據(jù)庫的安安全性9.3統(tǒng)計(jì)數(shù)據(jù)庫庫安全性9.4數(shù)據(jù)庫的完完整性數(shù)據(jù)庫系統(tǒng)原理第二節(jié)數(shù)據(jù)庫安全全性數(shù)據(jù)庫安全全性概述用戶標(biāo)識與與鑒別存取控制視圖審計(jì)數(shù)據(jù)加密數(shù)據(jù)庫的安全性與與完整性一、數(shù)據(jù)庫庫安全性概概述1、非法使用用數(shù)據(jù)庫的的情況用戶編寫一一段合法的的程序繞過過DBMS及其授權(quán)機(jī)機(jī)制,通過過操作系統(tǒng)統(tǒng)直接存取取、修改或或備份數(shù)據(jù)據(jù)庫中的數(shù)數(shù)據(jù);多次合法查查詢數(shù)據(jù)庫庫從中推導(dǎo)導(dǎo)出一些保保密數(shù)據(jù)。。數(shù)據(jù)庫的安全性與與完整性數(shù)據(jù)庫安全全性概述((續(xù))例:某數(shù)據(jù)據(jù)庫應(yīng)用系系統(tǒng)禁止查查詢單個(gè)人人的工資,,但允許查查任意一組組人的平均均工資。用用戶甲想了了解張三的的工資,于于是他:首先查詢包包括張三在在內(nèi)的一組組人的平均均工資然后查用自己己替換張三后后這組人的平平均工資從而推導(dǎo)出張張三的工資數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫安全性性概述(續(xù)))
應(yīng)用DBMSOS
DB
方法:用戶標(biāo)識和鑒定存取控制審計(jì)視圖操作系統(tǒng)安全保護(hù)密碼存儲2、計(jì)算機(jī)系統(tǒng)統(tǒng)中的安全模模型安全控制層次次高低數(shù)據(jù)庫的安全性與完完整性應(yīng)用DBMSOS
DB
用戶標(biāo)識和鑒定別
存取控制審計(jì)視圖操作系統(tǒng)安全保護(hù)密碼存儲安全控制層次高低3、數(shù)據(jù)庫安全全數(shù)據(jù)庫安全性性指保護(hù)數(shù)據(jù)據(jù)庫以防止不不合法的使用用所造成的數(shù)據(jù)泄露露、更改或破破壞。基本概念:主主體、客體與與主客體分離離數(shù)據(jù)庫中的實(shí)實(shí)體:數(shù)據(jù)表表、視圖、快快照、存儲過過程、數(shù)據(jù)文文件、數(shù)據(jù)庫庫訪問者等。。主體:數(shù)據(jù)庫庫中的數(shù)據(jù)訪訪問者客體:數(shù)據(jù)庫庫中的數(shù)據(jù)及及其載體數(shù)據(jù)庫安全性性概述(續(xù)))主體子集客體子集訪問數(shù)據(jù)庫安全性性概述(續(xù)))4、數(shù)據(jù)庫安全全性控制的常常用方法用戶標(biāo)識和鑒鑒別存取控制視圖審計(jì)數(shù)據(jù)加密數(shù)據(jù)庫的安全性與完完整性二、用戶標(biāo)識識與鑒別1、用戶身份標(biāo)標(biāo)識與鑒別的的基本過程系統(tǒng)提供一定定的方式讓用用戶標(biāo)識自己己的名字或身身份;系統(tǒng)內(nèi)部記錄錄著所有合法法用戶的標(biāo)識識;每次用戶要求求進(jìn)入系統(tǒng)時(shí)時(shí),由系統(tǒng)核核對用戶提供供的身份標(biāo)識識;通過鑒定后才才提供系統(tǒng)使使用權(quán)。數(shù)據(jù)庫的安全性與完完整性用戶標(biāo)識與鑒鑒別(續(xù))用戶標(biāo)識自己己的名字或身身份的方法用戶名/口令簡單易行,容容易被人竊取取每個(gè)用戶預(yù)先先約定好一個(gè)個(gè)計(jì)算過程或或者函數(shù)系統(tǒng)提供一個(gè)個(gè)隨機(jī)數(shù)用戶根據(jù)自己己預(yù)先約定的的計(jì)算過程或或者函數(shù)進(jìn)行行計(jì)算。系統(tǒng)根據(jù)用戶戶計(jì)算結(jié)果是是否正確鑒定定用戶身份。。數(shù)據(jù)庫的安全性與完完整性2、SQLServer2005數(shù)據(jù)庫的用戶戶身份鑒別(1)身份驗(yàn)證模模式①Windows身份驗(yàn)證模式式用戶通過Windows用戶賬戶連接接到SQLServer,即用戶身份份由Windows系統(tǒng)來驗(yàn)證。。SQLServer使用Windows操作系統(tǒng)中的的信息驗(yàn)證賬賬戶名和密碼碼。Windows身份驗(yàn)證使用用Kerberos安全協(xié)議,提提供賬戶鎖定定支持,并支支持密碼過期期。用戶標(biāo)識與鑒鑒別(續(xù))數(shù)據(jù)庫的安全性與完完整性SQLServer數(shù)據(jù)庫身份鑒鑒別模式(續(xù)續(xù))②混合身份份驗(yàn)證模式SQLServer身份驗(yàn)證模式式允許用戶使使用Windows身份和SQLServer身份進(jìn)行連接接。通過Windows登錄賬戶連接接的用戶可以以使用Windows驗(yàn)證的受信任任連接。當(dāng)用用戶指定的登登錄名稱和密密碼進(jìn)行非信信任連接時(shí),,SQLServer檢測輸入的登登錄名和密碼碼是否與數(shù)據(jù)據(jù)庫syslogins表中記錄的情情況相同,據(jù)據(jù)此進(jìn)行身份份驗(yàn)證。數(shù)據(jù)庫的安全性與完完整性(2)設(shè)置身份份驗(yàn)證模式使用ManagementStudio工具來設(shè)置驗(yàn)驗(yàn)證模式。方法一:打開ManagementStudio;在“已注冊的服服務(wù)器”子窗口中要設(shè)設(shè)置驗(yàn)證模式式的服務(wù)器上上單擊鼠標(biāo)右右鍵,然后在在彈出的快捷捷菜單上選擇擇“屬性”,系系統(tǒng)彈出“編編輯服務(wù)器注注冊屬性”窗窗口;在“常規(guī)”選選項(xiàng)卡中,““服務(wù)器名稱稱”欄按<服務(wù)器名>[\<實(shí)例名>]格式選擇要注注冊的服務(wù)器器實(shí)例;在“身份驗(yàn)證證”欄選擇身身份驗(yàn)證模式式;設(shè)置完成后單單擊“測試”按鈕以確定設(shè)設(shè)置是否正確確;單擊“保存””按鈕完成設(shè)設(shè)置。SQLServer數(shù)據(jù)庫身份鑒鑒別模式(續(xù)續(xù))數(shù)據(jù)庫的安全性與完完整性設(shè)置身份驗(yàn)證證模式數(shù)據(jù)庫的安全性與完完整性方法二:在ManagementStudio對象資源管理理器中,右鍵單擊擊服務(wù)器,再再單擊“屬性性”。在“安全性””頁上的“服服務(wù)器身份驗(yàn)驗(yàn)證”下選擇擇新的服務(wù)器器身份驗(yàn)證模模式,單擊““確定”。設(shè)置身份驗(yàn)證證模式(續(xù)))數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫的安全性與完完整性(3)SQLServer系統(tǒng)登錄驗(yàn)證證過程SQLServer數(shù)據(jù)庫身份鑒鑒別模式(續(xù)續(xù))使用客戶應(yīng)用程序連接到SQLServerWindows身份驗(yàn)證模式混合身份驗(yàn)證模式SQLServer接受連接SQLServer拒絕連接身份驗(yàn)證模式?使用Windows賬戶連接嗎?使用SQLServer賬戶連接嗎?連接許可?是有效登錄嗎?密碼正確嗎?NOYESNONOYESYESYESYESNONO數(shù)據(jù)庫的安全性與完完整性(4)登錄管理①系統(tǒng)管理員員登錄賬戶默認(rèn)的系統(tǒng)管管理員登錄賬賬戶sa:SQLServer身份驗(yàn)證機(jī)制制下的系統(tǒng)管管理員BUILTIN\Administrators:Windows系統(tǒng)的系統(tǒng)管管理員組為SQLServer系統(tǒng)管理員指指定口令“對象資源管管理器”→“安全性”→“登錄名”→“sa”→“屬性””→“登錄屬屬性窗窗口””→“密碼””SQLServer數(shù)據(jù)庫庫身份份鑒別別模式式(續(xù)續(xù))數(shù)據(jù)庫庫的安全全性與與完整整性登錄管管理((續(xù)))數(shù)據(jù)庫庫的安全全性與與完整整性登錄管管理((續(xù)))②使用用ManagementStudio創(chuàng)建登登錄賬賬戶右鍵單單擊“新建建登錄錄名””三、存存取控控制1、存取取控制制機(jī)制制的功功能確保僅僅授權(quán)權(quán)給有有資格格的用用戶訪訪問數(shù)數(shù)據(jù)庫庫的權(quán)權(quán)限,,同時(shí)時(shí)令所所有未未被授授權(quán)的的人員員無法法接近近數(shù)據(jù)據(jù)。是為了了限制制訪問問主體體(用用戶、、進(jìn)程程、服服務(wù)等等)對對訪問問客體體(文文件、、系統(tǒng)統(tǒng)等))的訪訪問權(quán)權(quán)限,,從而而使系系統(tǒng)在在合法法范圍圍內(nèi)使使用;;決定定用戶戶能做做什么么,也也決定定代表表一定定用戶戶利益益的程程序能能做什什么。。數(shù)據(jù)庫庫的安全全性與與完整整性2、存取取控制制機(jī)制制的組組成(1)定義義存取取權(quán)限限定義不不同用用戶((主體體)對對于不不同數(shù)數(shù)據(jù)對對象((客體體)允允許執(zhí)執(zhí)行的的操作作權(quán)限限。(2)檢查查存取取權(quán)限限當(dāng)用戶戶發(fā)出出存取取操作作請求求后,,DBMS查找數(shù)數(shù)據(jù)字字典中中存儲儲的權(quán)權(quán)限定定義,,檢查查用戶戶操作作的合合法性性。用戶權(quán)權(quán)限定定義和和合法法權(quán)檢檢查機(jī)機(jī)制一一起組組成了了DBMS的安全全子系系統(tǒng)。。存取控控制((續(xù)))數(shù)據(jù)庫庫的安全全性與與完整整性存取控控制((續(xù)))3、常用用存取取控制制方法法自主存存取控控制(DiscreationaryAccessControl,DAC)強(qiáng)制存存取控控制(MandatoryAccessControl,MAC)基于角角色的的存取取控制制(RoleBasedAccessControl,RBAC)數(shù)據(jù)庫庫的安全全性與與完整整性存取控控制的的方法法(續(xù)續(xù))4、自主主存取取控制制(DAC)擁有資資源的的用戶戶自己己決定定其他他一個(gè)個(gè)或一一些主主體可可以在在什么么程度度上訪訪問哪哪些資資源。。同一一用用戶戶對對于于不不同同的的數(shù)數(shù)據(jù)據(jù)對對象象有有不不同同的的存存取取權(quán)權(quán)限限。。不同同的的用用戶戶對對同同一一對對象象也也有有不不同同的的權(quán)權(quán)限限。。用戶戶還還可可將將其其擁擁有有的的存存取取權(quán)權(quán)限限轉(zhuǎn)轉(zhuǎn)授授給給其其他他用用戶戶。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性自主主存存取取控控制制方方法法((續(xù)續(xù)))(1)存存取取權(quán)權(quán)限限的的組組成成要要素素?cái)?shù)據(jù)據(jù)對對象象操作作類類型型(2)定定義義存存取取權(quán)權(quán)限限定義義一一個(gè)個(gè)用用戶戶可可以以在在哪哪些些數(shù)數(shù)據(jù)據(jù)對對象象上上進(jìn)進(jìn)行行哪哪些些類類型型的的操操作作。。在數(shù)數(shù)據(jù)據(jù)庫庫系系統(tǒng)統(tǒng)中中,,定定義義存存取取權(quán)權(quán)限限稱稱為為授權(quán)權(quán)(Authorization)。。授權(quán)權(quán)定定義義經(jīng)經(jīng)過過編編譯譯后后存存放放在在數(shù)數(shù)據(jù)據(jù)字字典典中中。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性自主主存存取取控控制制方方法法((續(xù)續(xù)))(3)關(guān)關(guān)系系系系統(tǒng)統(tǒng)中中的的存存取取權(quán)權(quán)限限類型型數(shù)據(jù)對象操作類型模式模式外模式內(nèi)模式建立、修改、檢索、刪除建立、修改、檢索、刪除建立、修改、檢索數(shù)據(jù)表屬性列查找、插入、修改、刪除查找、插入、修改、刪除數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性自主主存存取取控控制制方方法法((續(xù)續(xù)))(4)關(guān)關(guān)系系系系統(tǒng)統(tǒng)中中的的授授權(quán)權(quán)與與回回收收SQL定義義方方法法::使用用GRANT/REVOKE語句句授權(quán)權(quán)::GRANT<權(quán)限限>[,<權(quán)限限>]……ON<對象象類類型型><對象象名名>……TO<用戶戶>[,<用戶戶>]……[WITHGRANTOPTION]回收收:REVOKE<權(quán)限限>[,<權(quán)限限>]……ON<對象象類類型型><對象象名名>……FROM<用戶戶>[,<用戶>]…[CASCADE|RESTRICT]數(shù)據(jù)庫的安全性性與完整整性例1:將對表Student的SELECT,INSERT權(quán)限授予予王平。。GRANTSELECT,INSERTONStudentTO王平WITHGRANTOPTION;收回王平平對表Student的INSERT權(quán)限REVOKEINSERTONStudentFROM王平關(guān)系系統(tǒng)統(tǒng)中的授授權(quán)與回回收(續(xù)續(xù))數(shù)據(jù)庫的安全性性與完整整性關(guān)系系統(tǒng)統(tǒng)中的授授權(quán)與回回收(續(xù)續(xù))例2:學(xué)生-課程數(shù)據(jù)據(jù)庫的用用戶權(quán)限限定義表表授權(quán)用戶名用戶名數(shù)據(jù)對象名允許的操作類型能否轉(zhuǎn)授權(quán)DBA王平DBADBADBADBA王平張明霞張明霞張明霞張明霞張明霞關(guān)系Student關(guān)系Student關(guān)系CourseSC.GradeSC.SnoSC.CnoSELECT,INSERTSELECT,INSERTALLPRIVILEGESUPDATESELECTSELECT能不能不能不能不能不能數(shù)據(jù)庫的安全性性與完整整性自主存取取控制方方法(續(xù)續(xù))(5)衡量DAC授權(quán)機(jī)制制精巧程程度的尺尺度①授權(quán)粒粒度授權(quán)粒度度是指可可以定義義的數(shù)據(jù)據(jù)對象的的范圍授權(quán)定義義中數(shù)據(jù)據(jù)對象的的粒度越越細(xì),即即可以定定義的數(shù)數(shù)據(jù)對象象的范圍圍越小,,授權(quán)子子系統(tǒng)就就越靈活活,但系系統(tǒng)開銷銷也相應(yīng)應(yīng)增大。。關(guān)系數(shù)據(jù)據(jù)庫中授授權(quán)的數(shù)數(shù)據(jù)對象象粒度數(shù)據(jù)庫表屬性列行數(shù)據(jù)庫的安全性性與完整整性自主存取取控制方方法(續(xù)續(xù))②實(shí)現(xiàn)與與數(shù)據(jù)值值有關(guān)的的授權(quán)是否提供供與數(shù)據(jù)據(jù)值有關(guān)關(guān)的授權(quán)權(quán),即授授權(quán)是否否依賴于于數(shù)據(jù)對對象的值值。利用存取取謂詞可以引用用系統(tǒng)變變量,如如終端設(shè)設(shè)備號,,系統(tǒng)時(shí)時(shí)鐘等實(shí)實(shí)現(xiàn)與時(shí)時(shí)間地點(diǎn)點(diǎn)有關(guān)的的存取權(quán)權(quán)限,這這樣用戶戶只能在在某段時(shí)時(shí)間內(nèi),,某臺終終端上存存取有關(guān)關(guān)數(shù)據(jù)例如:規(guī)規(guī)定“教教師只能能在每年年1月份和7月份星期期一至星星期五上上午8點(diǎn)到下午午5點(diǎn)處理學(xué)學(xué)生成績績數(shù)據(jù)””。數(shù)據(jù)庫的安全性性與完整整性自主存取取控制小小結(jié)定義存取取權(quán)限用戶檢查存取取權(quán)限D(zhuǎn)BMS授權(quán)粒度度數(shù)據(jù)對象象粒度::數(shù)據(jù)庫庫、表、、屬性列列、行授權(quán)粒度度越細(xì),,授權(quán)子子系統(tǒng)就就越靈活活,能夠夠提供的的安全性性就越完完善。但但另一方方面,因因數(shù)據(jù)字字典變大大變復(fù)雜雜,系統(tǒng)統(tǒng)定義與與檢查權(quán)權(quán)限的開開銷也會會相應(yīng)地地增大。。數(shù)據(jù)庫的安全性性與完整整性自主存取取控制小小結(jié)(續(xù)續(xù))優(yōu)點(diǎn)能夠通過過授權(quán)機(jī)機(jī)制有效效地控制制其他用用戶對敏敏感數(shù)據(jù)據(jù)的存取取缺點(diǎn)可能存在在數(shù)據(jù)的的“無意意泄露””原因:這這種機(jī)制制僅僅通通過對數(shù)數(shù)據(jù)的存存取權(quán)限限來進(jìn)行行安全控控制,而而數(shù)據(jù)本本身并無無安全性性標(biāo)記。。解決:對對系統(tǒng)控控制下的的所有主主客體實(shí)實(shí)施強(qiáng)制制存取控控制策略略。數(shù)據(jù)庫的安全性性與完整整性5、強(qiáng)制存存取控制制(MAC)(1)基本思思想每一個(gè)數(shù)數(shù)據(jù)對象象被標(biāo)以以一定的的密級。。每一個(gè)用用戶也被被授予某某一個(gè)級級別的許許可證。。對于任意意一個(gè)對對象,只只有具有有合法許許可證的的用戶才才可以存存取。MAC不是用戶戶能直接接感知或或進(jìn)行控控制的。。MAC適用于對對數(shù)據(jù)有有嚴(yán)格而而固定密密級分類類的部門門數(shù)據(jù)庫的安全性性與完整整性存取控制制的方法法(續(xù)))強(qiáng)制存取取控制方方法(續(xù)續(xù))(2)敏感度度標(biāo)記對于主體體和客體體,DBMS為它們每每個(gè)實(shí)例例(值))指派一一個(gè)敏感感度標(biāo)記記(Label)。主體體的敏感感度標(biāo)記記稱為許可證級級別,客體的的敏感度度標(biāo)記稱稱為密級。敏感度標(biāo)標(biāo)記分成成若干級級別絕密(TopSecret)機(jī)密(Secret)可信(Confidential)公開(Public)MAC機(jī)制通過對比比主體的許可可證級別和客客體的密級,,最終確定主主體是否能夠夠存取客體。。數(shù)據(jù)庫的安全性與完完整性絕密級機(jī)密級可信級公開級保密性讀讀完整性寫寫(3)BellLapadula模型數(shù)據(jù)庫的安全性與完完整性其訪問控制關(guān)關(guān)系分為:上讀/下寫,下讀/上寫。強(qiáng)制存取控制制方法(續(xù)))①保障信息息完整性策略略低級別的主體體可以讀高級級別的客體的的信息(不保保密),但低低級別的主體體不能寫高級級別的客體((保障完整性性),因此采采用的是上讀下寫策略略。即屬于某一一個(gè)安全級的的主體可以讀讀本級和本級級以上的客體體,可以寫本本級和本級以以下的客體。。BellLapadula模型(續(xù))數(shù)據(jù)庫的安全性與完完整性②保障信息機(jī)密密性策略低級別的主體體不可以讀高高級別的信息息(保密),,但低級別的的主體可以寫寫高級別的客客體(完整性可能能破壞),因因此采用的是是下讀/上寫策略。即屬于某一個(gè)個(gè)安全級的主主體可以寫本本級和本級以以上的客體,,可以讀本級級和本級以下下的客體。數(shù)據(jù)庫的安全性與完完整性BellLapadula模型(續(xù))TSSCUTSSCUR/WWR/WRR/WRWRRRR/WRWWWWSubjectsObjectsInformationFlowMACInformationFlow思考:此策略略保障信息的的完整性還是是機(jī)密性?數(shù)據(jù)庫的安全性與完完整性BellLapadula模型(續(xù))強(qiáng)制存取控制制方法(續(xù)))(4)強(qiáng)制存取控控制的特點(diǎn)MAC是對數(shù)據(jù)本身身進(jìn)行密級標(biāo)標(biāo)記。無論數(shù)據(jù)如何何復(fù)制,標(biāo)記記與數(shù)據(jù)是一一個(gè)不可分的的整體。只有符合密級級標(biāo)記要求的的用戶才可以以操縱數(shù)據(jù)。。從而提供了更更高級別的安安全性。數(shù)據(jù)庫的安全性與完完整性6、基于角色的的訪問控制(1)角色的概念念角色是一個(gè)與與特定活動相相關(guān)聯(lián)的一組組動作和責(zé)任任。數(shù)據(jù)庫角角色是被命名名的一組與數(shù)數(shù)據(jù)庫操作相相關(guān)的權(quán)限,,角色是權(quán)限限的集合。(2)基于角色的的訪問控制((RBAC)通過定義角色色,為系統(tǒng)中中的主體分配配角色來實(shí)現(xiàn)現(xiàn)訪問控制。。通過各種角角色的不同搭搭配授權(quán)來盡盡可能實(shí)現(xiàn)主主體的最小授授權(quán)。數(shù)據(jù)庫的安全性與完完整性存取控制的方方法(續(xù))(3)基于角色的的訪問控制模模型6.訪問用戶角色權(quán)限訪問控制資源2.分派1.認(rèn)證3.請求4.分派5.訪問請求通過定義角色色的權(quán)限,為為系統(tǒng)中的主主體分配角色色來實(shí)現(xiàn)訪問問控制。數(shù)據(jù)庫的安全性與完完整性基于角色的存存取控制的方方法(續(xù))(4)數(shù)據(jù)庫中角角色的創(chuàng)建與與授權(quán)①角色的創(chuàng)建CREATEROLE<角色名>②給角色授權(quán)GRANT<權(quán)限>[,<權(quán)限>]…ON<對象類型><對象名>TO<角色>[,<角色>]…③將一個(gè)角色授授予其他的角角色或用戶GRANT<角色1>,[<角色2>]…TO<角色3>[<用戶1>]…[WITHADMINOPTION]數(shù)據(jù)庫的安全性與完完整性基于角色的存存取控制的方方法(續(xù))④角色權(quán)限的收收回REVOKE<權(quán)限>[,<權(quán)限>]…ON<對象類型><對象名>FROM<角色>[,<角色>]…REVOKE動作的執(zhí)行者者或者是角色色的創(chuàng)建者,,或者擁有在這這個(gè)角色上的的ADMINOPTION。數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫中角色色的創(chuàng)建與授授權(quán)(續(xù))例3:通過角色實(shí)實(shí)現(xiàn)將一組權(quán)權(quán)限授予用戶戶。(1)首先創(chuàng)建一一個(gè)角色R1CREATEROLER1(2)為R1授權(quán)GRANTSELECT,UPDATE,INSERTONTABLEStudentTOR1數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫中角色色的創(chuàng)建與授授權(quán)(續(xù))例3(續(xù)):通過過角色實(shí)現(xiàn)將將一組權(quán)限授授予用戶(3)將角色授予予用戶王平、、張明、趙玲玲,使他們具具有R1所包含的全部部權(quán)限。GRANTR1TO王平,張明,趙玲(4)回收王平的的這三個(gè)權(quán)限限REVOKER1FROM王平數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫中角色色的創(chuàng)建與授授權(quán)(續(xù))⑤角色的權(quán)限限修改例4:角色R1增加對Student表的DELETE權(quán)限GRANTDELETEONTABLEStudentTOR1例5:角色R1減少SELECT權(quán)限REVOKESELECTONTABLEStudentFROMR1數(shù)據(jù)庫的安全性與與完整性數(shù)據(jù)庫中角角色的創(chuàng)建建與授權(quán)(續(xù))(5)基于角色色訪問控制制的特點(diǎn)①提供了三三種授權(quán)管管理的控制制途徑②系統(tǒng)中所所有角色的的關(guān)系結(jié)構(gòu)構(gòu)可以是層層次化的,,便于管理理。③具有較好好的提供最最小權(quán)利的的能力,從從而提高安安全性。④具有責(zé)任任分離的能能力。改變客體的的訪問權(quán)限限改變角色的的訪問權(quán)限限改變主體所所擔(dān)任的角角色數(shù)據(jù)庫的安全性與與完整性基于角色的的存取控制制的方法((續(xù))例:在一個(gè)個(gè)銀行系統(tǒng)統(tǒng)中,可以以定義出納納員、分行行管理者、、系統(tǒng)管理理員、顧客客、審計(jì)員員等角色。。其中,擔(dān)擔(dān)任系統(tǒng)管管理員的用用戶具有維維護(hù)系統(tǒng)文文件的責(zé)任任和權(quán)限,,無論這個(gè)個(gè)用戶是誰誰。設(shè)計(jì)如如下訪問策策略:出納員可以修改顧顧客的帳號號記錄(存存款、取款款、轉(zhuǎn)賬等等),并允允許出納員員詢問所有有帳號的注注冊項(xiàng);分行管理者者可以修改顧顧客的帳號號記錄,并并允許分行行管理者查查詢所有帳帳號的注冊冊項(xiàng),還可可以創(chuàng)建和和取消帳號號;顧客可以詢問自自己的注冊冊項(xiàng),但不不能詢問其其他任何的的注冊項(xiàng);;系統(tǒng)管理員員可以詢問系系統(tǒng)注冊項(xiàng)項(xiàng)和開關(guān)系系統(tǒng),但不不允許讀或或修改顧客客的帳號信信息;審計(jì)員可以閱讀系系統(tǒng)中所有有信息,但但不允許修修改任何信信息。數(shù)據(jù)庫的安全性與與完整性基于角色的的存取控制制的方法((續(xù))四、視圖1、視圖視圖是一個(gè)個(gè)虛擬表,,包含一系系列帶有名名稱的行和列數(shù)據(jù)。。視圖中數(shù)據(jù)據(jù)來自由定定義視圖的的查詢所引引用的表,,并且在引引用視圖時(shí)時(shí)動態(tài)生成成??梢詾橛脩魬羲信d趣趣的特定數(shù)數(shù)據(jù)和所負(fù)負(fù)責(zé)的特定任務(wù),建建立不同的的視圖。數(shù)據(jù)庫的安全性與與完整性數(shù)據(jù)庫的安全性與與完整性視圖(續(xù)))學(xué)號姓名性別年齡專業(yè)031101王明男20計(jì)算機(jī)031102李晨男21計(jì)算機(jī)031103宋麗女20通信Student表學(xué)號課程名學(xué)時(shí)教師號成績031101C語言40700189031101高等數(shù)學(xué)40600270031101計(jì)算機(jī)基礎(chǔ)20700385031102C語言40700180SC表View姓名課程名成績王明C語言89王明高等數(shù)學(xué)70王明計(jì)算機(jī)基礎(chǔ)85例6:視圖(續(xù)))2、視圖的作作用視圖機(jī)制把把要保密的的數(shù)據(jù)對無無權(quán)存取這這些數(shù)據(jù)的用戶戶隱藏起來來,從而自自動地對數(shù)數(shù)據(jù)提供一定程度的的安全保護(hù)護(hù)。在實(shí)際應(yīng)用用中通常是是視圖機(jī)制與與授權(quán)機(jī)制制配合使用,,首先用視圖圖機(jī)制屏蔽蔽掉一部分分保密數(shù)據(jù),然后后在視圖上上面再進(jìn)一一步定義存存取權(quán)限。。數(shù)據(jù)庫的安全性與與完整性視圖(續(xù)))例7:王平只能能檢索計(jì)算算機(jī)系學(xué)生生的信息,,系主任張張明具有檢檢索和增刪刪改計(jì)算機(jī)機(jī)系學(xué)生信信息的所有有權(quán)限。(1)先建立計(jì)計(jì)算機(jī)系學(xué)學(xué)生的視圖圖CS_StudentCREATEVIEWCS_StudentASSELECT*FROMStudentWHERESdept='CS';數(shù)據(jù)庫的安全性與與完整性數(shù)據(jù)庫的安全性與與完整性視圖(續(xù)))例7(續(xù)):(2)在視圖上上進(jìn)一步定定義存取權(quán)權(quán)限GRANTSELECTONCS_StudentTO王平;GRANTALLPRIVILIGESONCS_StudentTO張明;五、審計(jì)審計(jì)功能啟啟用一個(gè)專專用的審計(jì)計(jì)日志,系系統(tǒng)自動將將用戶對數(shù)數(shù)據(jù)庫的所所有操作記記錄在上面面。審計(jì)計(jì)記記錄錄內(nèi)內(nèi)容容包包括括::訪訪問問時(shí)時(shí)間間、、訪訪問問類類型型、、訪訪問問客客體體名名、、是是否否成成功功等等。。DBA可以以利利用用審審計(jì)計(jì)日日志志中中的的追追蹤蹤信信息息,,重重現(xiàn)現(xiàn)導(dǎo)導(dǎo)致致數(shù)數(shù)據(jù)據(jù)庫庫現(xiàn)現(xiàn)有有狀狀況況的的一一系系列列事事件件,,以以找找出出非非法法存存取取數(shù)數(shù)據(jù)據(jù)的的人人。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性審計(jì)計(jì)((續(xù)續(xù)))用戶戶級級審審計(jì)計(jì)任何何用用戶戶可可設(shè)設(shè)置置,,主主要要針針對對用用戶戶自自己己創(chuàng)創(chuàng)建建的的數(shù)數(shù)據(jù)據(jù)表表或或視視圖圖,,記記錄錄所所有有用用戶戶對對表表或或視視圖圖的的一一切切成成功功和和不不成成功功的的訪訪問問要要求求及及各各種種類類型型的的SQL操作作。。系統(tǒng)統(tǒng)級級審審計(jì)計(jì)只能能由由DBA設(shè)置置,,用用以以監(jiān)監(jiān)測測成成功功或或失失敗敗的的登登錄錄要要求求、、監(jiān)監(jiān)測測GRANT和REVOKE操作作以以及及其其他他數(shù)數(shù)據(jù)據(jù)庫庫級級權(quán)權(quán)限限下下的的操操作作。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性六、、數(shù)據(jù)據(jù)加加密密數(shù)據(jù)據(jù)加加密密是是防防止止數(shù)數(shù)據(jù)據(jù)庫庫中中數(shù)數(shù)據(jù)據(jù)在在存存儲儲和和傳傳輸中中失失密密的的有有效效手手段段。。1、數(shù)數(shù)據(jù)據(jù)加加密密的的基基本本思思想想根據(jù)據(jù)一一定定的的算算法法將將原原始始數(shù)數(shù)據(jù)據(jù)((明明文文))變變換換為為不不可可直直接接識識別別的的格格式式((密密文文))不知知道道解解密密密密鑰鑰的的人人無無法法獲獲知知數(shù)數(shù)據(jù)據(jù)的的內(nèi)內(nèi)容容。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性數(shù)據(jù)據(jù)加加密密((續(xù)續(xù)))2、加加密密方方法法替換換方方法法使用用密密鑰鑰((EncryptionKey)將將明明文文中中的的每每一一個(gè)個(gè)字字符符轉(zhuǎn)轉(zhuǎn)換換為為密密文文中中的的一一個(gè)個(gè)字字符符。。置換換方方法法將明明文文的的字字符符按按不不同同的的順順序序重重新新排排列列。。這兩兩種種方方法法結(jié)結(jié)合合能能提提供供相相當(dāng)當(dāng)高高的的安安全全程程度度數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)加密(續(xù)續(xù))3、典型的數(shù)據(jù)據(jù)加密算法數(shù)據(jù)加密標(biāo)準(zhǔn)準(zhǔn)DES算法RSA公鑰算法EIGamal算法橢圓曲線密碼碼算法圓錐曲線密碼碼算法LUC公鑰密碼算法法數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)加密(續(xù)續(xù))4、數(shù)據(jù)庫加密密的基本要求求(1)支持各種粒粒度加密(2)良好的密鑰鑰管理機(jī)制(3)合理處理數(shù)數(shù)據(jù)(4)不影響合法法用戶的操作作數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)加密(續(xù)續(xù))5、數(shù)據(jù)庫加密密的方式操作系統(tǒng)層加加密DBMS內(nèi)核層實(shí)現(xiàn)加加密DBMS外層實(shí)現(xiàn)加密密數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫加密的的方式(續(xù)))DBMS內(nèi)核層加密::指數(shù)據(jù)加密在在DBMS內(nèi)核層實(shí)現(xiàn),,即數(shù)據(jù)在物物理存取之前前完成加/解密工作。DBMS外層實(shí)現(xiàn)加密密:將數(shù)據(jù)庫加密密系統(tǒng)做成DBMS的一個(gè)外層工工具,根據(jù)加加密要求自動動完成對數(shù)據(jù)據(jù)庫數(shù)據(jù)的加加/解密處理,加加/解密算法可以以在客戶端進(jìn)進(jìn)行。數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫加密的的方式(續(xù)))數(shù)據(jù)加密(續(xù)續(xù))6、數(shù)據(jù)庫加密密系統(tǒng)的組成成數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫加密系系統(tǒng)將用戶對對數(shù)據(jù)庫信息息具體的加密密要求以及參參數(shù)信息保存存在加密字典中,通過調(diào)用用數(shù)據(jù)加/解密引擎實(shí)現(xiàn)對數(shù)據(jù)庫庫表的加密、、解密以及數(shù)數(shù)據(jù)轉(zhuǎn)換等功功能。7、數(shù)據(jù)庫加密密的密碼算法法及加密粒度度(1)數(shù)據(jù)庫加密密算法數(shù)據(jù)庫加密通通常采用分組組密碼。如常常用DES算法來對大量量的數(shù)據(jù)進(jìn)行行加密。數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)加密(續(xù)續(xù))分組密碼模型加密算法解密算法密鑰明文密文明文密鑰DES算法基本思想想:首先將明文按按64bit分為一組,然然后對每組用用給定的密鑰鑰進(jìn)行加密,,得到密文分分組,最后將將各密文分組組按順序進(jìn)行行連接,得到到明文分組。。DES加密實(shí)現(xiàn)的模模式:電碼本模式::相同的數(shù)據(jù)據(jù)加密后形成成相同的密文文;密碼分組鏈接接模式:相同同的數(shù)據(jù)加密密后形成不同同的密文。數(shù)據(jù)庫的安全性與完完整性密碼算法及加加密粒度(續(xù)續(xù))(2)數(shù)據(jù)加密粒粒度①基表加密::使用的密鑰鑰數(shù)量較少,,密鑰的產(chǎn)生生和管理較為為容易,但是是安全控制不不靈活。②記錄加密::適合于一個(gè)個(gè)用戶只允許許訪問數(shù)據(jù)庫庫少量記錄的的情況,產(chǎn)生生和管理密鑰鑰較為復(fù)雜。。③字段加密::適合于許多多用戶經(jīng)常以以字段方式訪訪問數(shù)據(jù)庫的的情況,密鑰鑰的產(chǎn)生和管管理比較復(fù)雜雜。④數(shù)據(jù)元素加加密:是數(shù)據(jù)據(jù)庫加密的最最小粒度。具具有最好的靈靈活性和適應(yīng)應(yīng)性,但加解解密效率低,,而且密鑰的的產(chǎn)生和管理理更復(fù)雜。數(shù)據(jù)庫的安全性與完完整性密碼算法及加加密粒度(續(xù)續(xù))8、數(shù)據(jù)庫加密密系統(tǒng)的密鑰鑰管理(1)密鑰應(yīng)滿足足的條件在產(chǎn)生大量密密鑰的過程中中,產(chǎn)生重復(fù)復(fù)密鑰的概率率要盡可能的的低。從一個(gè)數(shù)據(jù)項(xiàng)項(xiàng)的密鑰推導(dǎo)導(dǎo)出另一個(gè)數(shù)數(shù)據(jù)項(xiàng)的密鑰鑰在計(jì)算上是是不可行的。。即使知道一些些明文的統(tǒng)計(jì)計(jì)分布,要從從密文中獲取取未知明文,,在計(jì)算上是是不可行的。。數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)加密(續(xù)續(xù))(2)集中式密鑰鑰管理方法密鑰統(tǒng)一由數(shù)數(shù)據(jù)庫密鑰管管理中心產(chǎn)生生和管理。數(shù)據(jù)庫的安全性與完完整性數(shù)據(jù)庫加密系系統(tǒng)的密鑰管管理(續(xù))第九章章數(shù)數(shù)據(jù)據(jù)庫安安全性性與完完整性性9.1計(jì)算機(jī)機(jī)安全全性概概述9.2數(shù)據(jù)庫庫的安安全性性9.3統(tǒng)計(jì)數(shù)數(shù)據(jù)庫庫安全全性9.4數(shù)據(jù)庫庫的完完整性性數(shù)據(jù)庫庫的安全全性與與完整整性第三節(jié)節(jié)統(tǒng)統(tǒng)計(jì)計(jì)數(shù)據(jù)據(jù)庫安安全性性一、統(tǒng)統(tǒng)計(jì)數(shù)數(shù)據(jù)庫庫統(tǒng)計(jì)數(shù)數(shù)據(jù)庫庫是管管理統(tǒng)統(tǒng)計(jì)數(shù)數(shù)據(jù)的的數(shù)據(jù)據(jù)庫系系統(tǒng)。。這類類數(shù)據(jù)據(jù)庫包包含有有大量量的數(shù)數(shù)據(jù)記記錄,,但其其目的的是向向用戶戶提供供各種種統(tǒng)計(jì)計(jì)匯總總信息息,而而不是是提供供單個(gè)個(gè)記錄錄的信信息。。例如::工業(yè)增增加值值增長長速度度工業(yè)主主要產(chǎn)產(chǎn)品產(chǎn)產(chǎn)量及及增長長速度度全社會會客貨貨運(yùn)輸輸量大中城城市住住宅銷銷售價(jià)價(jià)格指指數(shù)數(shù)據(jù)庫庫的安全全性與與完整整性二、統(tǒng)統(tǒng)計(jì)數(shù)數(shù)據(jù)庫庫的安安全性性用戶通通過一一系列列合法法的統(tǒng)統(tǒng)計(jì)查查詢,,推理理出某某些秘密信信息,,使不不合法法的要要求得得到滿滿足。。針對對統(tǒng)計(jì)計(jì)數(shù)據(jù)庫庫,要要防止止用戶戶從一一系列列查詢詢中推推理出出某些些秘密信信息。。問題一一:例8:兩個(gè)個(gè)合法法的查查詢①本公司司共有有多少少女高高級程程序員員?②本公司司女高高級程程序員員的工工資總總額是是多少少?如果第第一個(gè)個(gè)查詢詢結(jié)果果是““1”,那那么第第二個(gè)個(gè)查詢詢結(jié)果果就是這個(gè)個(gè)程序序員的的工資資。數(shù)據(jù)庫庫的安全全性與與完整整性統(tǒng)計(jì)數(shù)數(shù)據(jù)庫庫的安安全性性(續(xù)續(xù))解決問問題一一:規(guī)則1:任何何查詢詢至少少要涉涉及N(N足夠大大)個(gè)個(gè)以上的記記錄。。問題二二:例9:用戶戶A進(jìn)行兩兩個(gè)合合法的的查詢詢①用戶A和其他他N個(gè)程序序員的的工資資總額額是多多少??②用戶B和其他他N個(gè)程序序員的的工資資總額額是多多少??用戶A可通過過計(jì)算算得出出用戶戶B的工資資。數(shù)據(jù)庫庫的安全全性與與完整整性統(tǒng)計(jì)數(shù)數(shù)據(jù)庫庫的安安全問問題((續(xù)))解決問問題二二:規(guī)則2:任意兩兩個(gè)查查詢的的相交交數(shù)據(jù)據(jù)項(xiàng)不不能超超過M個(gè)。在上述述兩條條規(guī)則則規(guī)定定下,,若想想獲知知用戶戶B的工資額,,用戶戶A至少需需要進(jìn)進(jìn)行1+(N-2)/M次查詢詢。規(guī)則3:任一用用戶的的查詢詢次數(shù)數(shù)不能能超過過1+(N-2)/M次。數(shù)據(jù)庫庫的安全性與與完整性第九章數(shù)數(shù)據(jù)庫安安全性與完完整性9.1計(jì)算機(jī)安全全性概述9.2數(shù)據(jù)庫的安安全性9.3統(tǒng)計(jì)數(shù)據(jù)庫庫安全性9.4數(shù)據(jù)庫的完完整性9.5SQLServer2008數(shù)據(jù)庫的安安全管理數(shù)據(jù)庫系統(tǒng)原理第四節(jié)數(shù)據(jù)庫的完完整性數(shù)據(jù)庫完整整性指數(shù)據(jù)據(jù)庫中數(shù)據(jù)的正確確性和相容性。數(shù)據(jù)的完整整性和安全全性是兩個(gè)個(gè)不同的概概念。完整性:防防止數(shù)據(jù)庫庫中存在不不正確的數(shù)數(shù)據(jù)。安全性:保保護(hù)數(shù)據(jù)庫庫防止惡意意的破壞和和非法的存存取。為保障數(shù)據(jù)據(jù)庫的完整整性,DBMS必須能夠::提供定義完完整性約束束條件的機(jī)機(jī)制提供完整性性檢查的方方法違約處理數(shù)據(jù)庫的安全性與與完整性數(shù)據(jù)庫完整整性規(guī)則由由三部分內(nèi)內(nèi)容組成::實(shí)體完整性性規(guī)則參照完整性性規(guī)則用戶定義的的完整性規(guī)規(guī)則數(shù)據(jù)庫的完完整性(續(xù)續(xù))數(shù)據(jù)庫的安全性與與完整性一、實(shí)體完完整性1、實(shí)體完整整性定義關(guān)系模型的的實(shí)體完整整性在CREATETABLE中用PRIMARYKEY定義。對單屬性構(gòu)成的碼有有兩種說明明方法一種是定義義為列級約約束條件一種是定義義為表級約約束條件對多個(gè)屬性構(gòu)成的碼定定義為表級級約束條件件。數(shù)據(jù)庫的安全性與與完整性例10將Student表中的Sno屬性定義為為碼。CREATETABLEStudent(SnoChar(9)Primarykey,SnameChar(20)Notnull,SsexChar(2),SageSmallint,SdeptChar(20));實(shí)體完整性性定義(續(xù))在列級定義義主碼CREATETABLEStudent(SnoChar(9),SnameChar(20)Notnull,SsexChar(2),SageSmallint,SdeptChar(20),Primarykey(Sno),);在表級定義義主碼數(shù)據(jù)庫的安全性與與完整性例11將SC表中的Sno,Cno屬性組定義義為碼。CREATTABLESC(SnoChar(9)Notnull,Cnochar(4)Notnull,GradeSmallint,Primarykey(Sno,Cno));實(shí)體完整性性定義(續(xù))數(shù)據(jù)庫的安全性與與完整性2、實(shí)體完整整性檢查和和違約處理理當(dāng)用戶程序序?qū)颈肀聿迦胍粭l條記錄或?qū)χ鞔a進(jìn)行行更新操作作時(shí),RDBMS將根據(jù)實(shí)體體完整性規(guī)規(guī)則進(jìn)行檢檢查。包括括:(1)檢查主碼碼值是否唯唯一,如果果不唯一則則拒絕插入入或修改。。(2)檢查主碼碼的各個(gè)屬屬性是否為為空,只要要有一個(gè)為為空就拒絕絕插入或修修改。數(shù)據(jù)庫的安全性與與完整性實(shí)體完整性性(續(xù))二、參照完完整性1、參照完整整性定義關(guān)系模型的的參照完整整性在CREATETABLE中用FOREIGNKEY短語定義哪哪些列為外外碼,用REFERENCES短語指明這這些外碼參參照哪些表表的主碼。。數(shù)據(jù)庫的安全性與與完整性例12定義SC中的參照完完整性CREATETABLESC(SnoChar(9)Notnull,CnoChar(4)Notnull,GradeSmallint,Primarykey(Sno,Cno),ForeignKey(Sno)ReferencesStudent(Sno),ForeignKey(Cno)ReferencesCourse(Cno));參照完整性性定義(續(xù)續(xù))數(shù)據(jù)庫的安全性與與完整性(1)參照完整整性檢查對被參照照表和參參照表進(jìn)進(jìn)行增刪刪操作時(shí)時(shí)有可能能破壞參參照完整整性,必必須進(jìn)行行檢查。。例如:對對表SC和Student表有四種種可能破破壞參照照完整性性的情況況。(1)SC表中增加加一個(gè)元元組,該該元組的的Sno屬性的值值在表Student中找不到到一個(gè)元元組,其其Sno屬性的值值與之相相等。(2)修改SC表中的一一個(gè)元組組,修改改后該元元組的Sno屬性的值值在表Student中找不到到一個(gè)元元組,其其Sno值與之相相等。2、參照完完整性檢檢查和違違約處理理數(shù)據(jù)庫的安全性性與完整整性參照完整整性(續(xù)續(xù))(3)從Student表中刪除除一個(gè)元元組,造造成SC表中某些些元組的的Sno屬性的值值在表Student中找不到到一個(gè)元元組,其其Sno屬性的值值與之相相等。(4)修改Student表中一個(gè)個(gè)元組的的Sno屬性,造造成SC表中某些些元組的的Sno屬性的值值在Student表中找不不到一個(gè)個(gè)元組,,其Sno值與之相相等。參照完整整性檢查查(續(xù)))數(shù)據(jù)庫的安全性性與完整整性被參照表(Student)參照表(SC)可能破壞參照完整性插入元組可能破壞參照完整性修改外碼值刪除元組可能破壞參照完整性修改主碼值可能破壞參照完整性(2)違約處處理策略略①拒絕執(zhí)執(zhí)行(NoAction)不允許該該操作執(zhí)執(zhí)行(一一般設(shè)置置為默默認(rèn)策略略)。②級連操操作(CASCADE)當(dāng)刪除或或修改被被參照表表的一個(gè)個(gè)元組造造成了與與參照表表的不一一致,則則刪除或或修改參參照表中中的所有有造成不不一致的的元組。。③設(shè)置為為空值當(dāng)刪除或或修改被被參照表表的一個(gè)個(gè)元組時(shí)時(shí)造成了了不一致致,則將將參照表表中的所所有造成成不一致致的元組組的對應(yīng)應(yīng)屬性設(shè)設(shè)置為空空值。數(shù)據(jù)庫的安全性性與完整整性參照完整整性檢查查和違約約處理((續(xù))例13學(xué)生(學(xué)號,姓名,,性別,,專業(yè)號,年齡))專業(yè)(專業(yè)號,專業(yè)名名)假設(shè)專業(yè)業(yè)表中專專業(yè)號為為12的元組被被刪除,,按照設(shè)設(shè)置為空空的策略略,就要要把學(xué)生生表中專專業(yè)號為為12的所有元元組的專專業(yè)號設(shè)設(shè)置為空空值。對于參照照完整性性,除了了應(yīng)該定定義外碼碼,還應(yīng)應(yīng)定義外外碼列是是否允許許空值。。一般地,,當(dāng)對參參照表和和被參照照表的操操作違反反了參照照完整性性,系統(tǒng)統(tǒng)選擇默默認(rèn)策略略,即拒拒絕執(zhí)行行。如果果讓系統(tǒng)統(tǒng)采取其其他的策策略就必必須在創(chuàng)創(chuàng)建表時(shí)時(shí)顯式地地加以說說明。數(shù)據(jù)庫的安全性性與完整整性參照完整整性檢查查和違約約處理((續(xù))ForeignKey約束包含含一個(gè)Cascade選項(xiàng),允允許用戶戶對一個(gè)個(gè)定義了了Unique或者PrimaryKey約束的列列的值的的修改自自動傳播播到引用用它的外外鍵上,,這稱為為級聯(lián)引引用完整整性。語法格式式為:ForeignKey[(列[,…n])]References引用表[(引用列[,…n])][OnDelete{Cascade|NoAction}][OnUpdate{Cascade|NoAction}]Cascade:若表中行行變化了了,則引引用表中中相應(yīng)行行也變化化。NoAction:任何企企圖更新新或刪除除被參照照的鍵都都引發(fā)一一個(gè)錯(cuò)誤誤,對數(shù)數(shù)據(jù)的改改變會被被回滾。。數(shù)據(jù)庫的安全性性與完整整性參照完整整性檢查查和違約約處理((續(xù))例14顯式地說說明參照照完整性性的違約約處理。。CREATETABLESC(SnoChar(9)Notnull,CnoChar(4)Notnull,GradeSmallint,Primarykey(Sno,Cno),/*在表級定定義實(shí)體體完整性性*/Foreignkey(Sno)ReferencesStudent(Sno),OndeleteCascade/*刪除student表中元組組時(shí),級級連刪除除SC*/OnupdateCascade,/*更新student表中元組組時(shí),級級連更新新SC*/Foreignkey(Cno)ReferencesCourse(Cno)OndeleteCascade,/*刪除Course表中元組時(shí),,拒絕刪除SC*/Onupdatenoaction);參照完整性檢檢查和違約處處理(續(xù))數(shù)據(jù)庫的安全性與完完整性被參照表(Student)參照表(SC)違約處理可能破壞參照完整性插入元組拒絕可能破壞參照完整性修改外碼值拒絕刪除元組可能破壞參照完整性拒絕/級聯(lián)刪除/設(shè)置為空值修改主碼值可能破壞參照完整性拒絕/級聯(lián)刪除/設(shè)置為空值參照完整性檢檢查和違約處處理(續(xù))數(shù)據(jù)庫的安全性與完完整性可能破壞參照照完整性的情情況及違約處處理:三、用戶定義義的完整性1、屬性上的約約束條件定義義在CREATETABLE中定義屬性的的同時(shí)定義屬屬性上的約束束條件。包括括:列值非空(NOTNULL)列值唯一(UNIQUE)檢查列值是否否滿足某布爾爾表達(dá)式(CHECK)數(shù)據(jù)庫的安全性與完完整性屬性上的約束束條件定義((續(xù))(1)不允許取空空值例15定義SC表時(shí),說明Sno、Cno、Grade屬性不允許取取空值。CREATETABLESC(SnoChar(9)Notnull,CnoChar(4)Notnull,GradeSmallintNotnull,Primarykey(Sno,Cno));數(shù)據(jù)庫的安全性與完完整性屬性上的約束束條件定義((續(xù))(2)列值唯一例16建立部門表DEPT,要求部門名名稱Dname列取唯一值,,部門編號Deptno列為主碼。CREATETABLEDEPT(DeptnoNumeric(2),DnameChar(9)UNIQUE,LocationChar(10),Primarykey(Deptno));數(shù)據(jù)庫的安全性與完完整性屬性上的約束束條件定義((續(xù))(3)用CHECK短語指定列值值應(yīng)該滿足的的條件例17Student表的Ssex只允許取“男男”或“女””。CREATETABLEStudent(SnoChar(9)Primarykey,SnameChar(20)Notnull,SsexChar(2)CHECK(SsexIN(‘男’,’女’)),SageSmallint,SdeptChar(20));數(shù)據(jù)庫的安全性與完完整性屬性上的約束束條件定義((續(xù))例18SC表的Grade值應(yīng)該在0-100之間。CREATETABLESC(SnoChar(9)Notnull,Cnochar(4)Notnull,GradeSmallintCHECK(Grade>=0ANDGrade<=100),Primarykey(Sno,Cno),Foreignkey(Sno)ReferencesStudent(Sno),Foreignkey(Cno)ReferencesCourse(Cno));數(shù)據(jù)庫的安全性與完完整性用戶定義的完完整性(續(xù)))2、屬性上的約約束條件檢查查和違約處理理當(dāng)向表中插入入元組或修改改屬性的值時(shí)時(shí),DBMS就檢檢查查屬屬性性上上的的約約束束條條件件是是否否滿滿足足,,如如果果不不滿滿足足則操操作作被拒拒絕絕執(zhí)執(zhí)行行。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性用戶戶定定義義的的完完整整性性((續(xù)續(xù)))3、元元組組上上的的約約束束條條件件定定義義在CREATETABLE中用用CHECK短語語定定義義元元組組上上的的約約束束條條件件。。元組組級級的的限限制制可可以以設(shè)設(shè)置置不不同同屬屬性性之之間間的的取取值值的的相相互互約約束束條條件件。。數(shù)據(jù)據(jù)庫庫的安安全全性性與與完完整整性性例19Student表中中當(dāng)當(dāng)學(xué)學(xué)生生的的性性別別為為““男男””時(shí)時(shí),,其其名名字字不不能能以以Ms.打頭頭。。CREATETABLEstudent(SnoChar(9)Primarykey,Snamechar(20)Notnull,SsexChar(2),SageSmallint,Sdeptchar(20),P
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國大型振動試驗(yàn)機(jī)行業(yè)市場分析報(bào)告
- 2024-2030年中國即時(shí)通訊(im)行業(yè)競爭格局及投資創(chuàng)新模式分析報(bào)告
- 眉山職業(yè)技術(shù)學(xué)院《電子商務(wù)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度食品代加工與產(chǎn)品質(zhì)量追溯協(xié)議3篇
- 2024年標(biāo)準(zhǔn)化物業(yè)租賃協(xié)議模板匯編版B版
- 2024年物聯(lián)網(wǎng)農(nóng)業(yè)技術(shù)開發(fā)與合作合同
- 2024年標(biāo)準(zhǔn)股權(quán)轉(zhuǎn)讓協(xié)議一
- 馬鞍山師范高等專科學(xué)?!冬F(xiàn)場節(jié)目主持實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年城市綜合體土地房屋股權(quán)轉(zhuǎn)讓與建設(shè)合同范本3篇
- 2024年度特色民宿商品房承包銷售合同3篇
- YY/T 0251-1997微量青霉素試驗(yàn)方法
- YC/T 559-2018煙草特征性成分生物堿的測定氣相色譜-質(zhì)譜聯(lián)用法和氣相色譜-串聯(lián)質(zhì)譜法
- GB/T 29309-2012電工電子產(chǎn)品加速應(yīng)力試驗(yàn)規(guī)程高加速壽命試驗(yàn)導(dǎo)則
- 齊魯工業(yè)大學(xué)信息管理學(xué)成考復(fù)習(xí)資料
- 公務(wù)員面試-自我認(rèn)知與職位匹配課件
- 中頻電治療儀操作培訓(xùn)課件
- 柔弱的人課文課件
- 動物寄生蟲病學(xué)課件
- 電梯曳引系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)
- 三度房室傳導(dǎo)阻滯護(hù)理查房課件
- 講課比賽精品PPT-全概率公式貝葉斯公式-概率論與數(shù)理統(tǒng)計(jì)
評論
0/150
提交評論