數(shù)據(jù)庫原理與應(yīng)用課件第5章數(shù)據(jù)庫安全性_第1頁
數(shù)據(jù)庫原理與應(yīng)用課件第5章數(shù)據(jù)庫安全性_第2頁
數(shù)據(jù)庫原理與應(yīng)用課件第5章數(shù)據(jù)庫安全性_第3頁
數(shù)據(jù)庫原理與應(yīng)用課件第5章數(shù)據(jù)庫安全性_第4頁
數(shù)據(jù)庫原理與應(yīng)用課件第5章數(shù)據(jù)庫安全性_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第五章數(shù)據(jù)安全性5.1數(shù)據(jù)庫安全性概述5.2數(shù)據(jù)庫安全性控制5.3審計跟蹤和數(shù)據(jù)加密25.1數(shù)據(jù)庫安全性概述5.1.1安全標準5.1.2數(shù)據(jù)庫安全性的類型和一般措施5.1.3數(shù)據(jù)庫安全的威脅*5.1.1安全標準1、TCSEC標準*2、CC標準*5.1.2數(shù)據(jù)庫安全性的類型和一般措施*數(shù)據(jù)庫的安全性是一個涵蓋許多問題的廣闊領(lǐng)域,主要包括:1.某些信息的訪問關(guān)系到法律和倫理的問題例如有些信息可能會認為是屬于私人信息,未授權(quán)人員不能合法地對其進行訪問。2.有關(guān)政府、機構(gòu)或企業(yè)公司層面的一些政策問題例如這些政策有時會確定哪些信息不應(yīng)該向公眾公開。3.與系統(tǒng)有關(guān)的問題例如在系統(tǒng)級上規(guī)定應(yīng)該加強哪些安全功能。4.與安全性級別有關(guān)的問題例如一些組織需要把安全性問題劃分為多個安全級別,并基于這些級別對數(shù)據(jù)和用戶進行劃分。*為了保證數(shù)據(jù)庫的安全性,常用的控制措施主要有訪問控制、推理控制和數(shù)據(jù)加密。1.訪問控制(AccessControl)數(shù)據(jù)庫管理系統(tǒng)DBMS的安全機制必須包括限制對數(shù)據(jù)庫系統(tǒng)整體訪問的規(guī)定。這個功能稱為訪問控制,它的實現(xiàn)是由DBMS通過創(chuàng)建用戶賬號和口令的方式來控制登錄過程。2.推理控制(InferenceControl)推理控制措施對應(yīng)的安全性被稱為統(tǒng)計數(shù)據(jù)庫安全性,統(tǒng)計數(shù)據(jù)庫是用于提供基于各種標準的統(tǒng)計信息和值的匯總數(shù)據(jù),其安全性必須確保有關(guān)個人的信息不能被訪問。有時可能僅僅從一些用戶組有關(guān)的統(tǒng)計信息查詢中就可以推導(dǎo)出涉及個人信息的數(shù)據(jù)。所以這種查詢必須被禁止。3.數(shù)據(jù)加密(DataEncryption)數(shù)據(jù)加密可以用于為數(shù)據(jù)庫的敏感部分提供額外的保護措施。例如可以使用一些編碼加密算法對數(shù)據(jù)進行編碼,使未授權(quán)用戶很難破譯已經(jīng)被編碼的數(shù)據(jù),已經(jīng)授權(quán)的用戶則可以通過解密算法來破譯數(shù)據(jù)。5.1.3數(shù)據(jù)庫安全的威脅

為了保證數(shù)據(jù)庫安全,系統(tǒng)的所有部分都必須是安全的,因此全面的數(shù)據(jù)庫安全計劃必須考慮下列情況:1.損失可用性2.損失機密性數(shù)據(jù)3.損失秘密性數(shù)據(jù)4.偷竊和詐騙5.意外損害*5.2數(shù)據(jù)庫安全性控制5.2.1用戶標識與鑒別5.2.2存取控制策略5.2.3自主存取控制5.2.4強制存取控制5.2.5視圖機制*5.2.1用戶標識與鑒別數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)負責(zé)數(shù)據(jù)庫系統(tǒng)的安全。因此,DBA必須能夠識別安全威脅,能夠?qū)嵤┌踩胧?,從而使可能發(fā)生的數(shù)據(jù)庫安全威脅最小化。任何需要訪問數(shù)據(jù)庫系統(tǒng)的一個用戶或一組用戶都必須首先向DBA申請賬戶。然后DBA基于合理需求和相關(guān)約束規(guī)定,為用戶創(chuàng)建訪問數(shù)據(jù)庫的賬戶和口令。以后,當(dāng)用戶需要訪問數(shù)據(jù)庫時,需要使用給定的賬戶和口令登錄,DBMS核對登錄賬號的有效性之后,允許用戶訪問數(shù)據(jù)庫。

*5.2.1用戶標識與鑒別*5.2.2存取控制策略存取控制主要包括定義用戶權(quán)限和合法權(quán)限檢查兩部分。1.定義用戶權(quán)限用戶對某一數(shù)據(jù)對象的操作權(quán)利稱為權(quán)限。某個用戶應(yīng)該具有何種權(quán)限是管理和政策層面的問題并非技術(shù)問題。數(shù)據(jù)庫管理系統(tǒng)的功能是保證這些決定的執(zhí)行。因此,數(shù)據(jù)庫管理系統(tǒng)需要提供適當(dāng)?shù)恼Z言來定義用戶權(quán)限。2.合法權(quán)限檢查每當(dāng)用戶發(fā)出存取數(shù)據(jù)庫的操作請求后,數(shù)據(jù)庫管理系統(tǒng)進行合法權(quán)限檢查,如果用戶提出的操作請求超出了定義的權(quán)限,系統(tǒng)將拒絕執(zhí)行此操作。

*5.2.3自主存取控制方法數(shù)據(jù)庫系統(tǒng)中實施自主存取控制的典型方法是基于授權(quán)和收回權(quán)限的機制。授予和收回權(quán)限是數(shù)據(jù)庫管理員(DBA)的職責(zé)。DBA依據(jù)數(shù)據(jù)的實際應(yīng)用情況將合適的權(quán)限授予給相應(yīng)的用戶。*

1.自主權(quán)限的類型

DBMS必須能夠基于指定的賬戶,提供對數(shù)據(jù)庫中每個關(guān)系的選擇性訪問,能夠控制用戶執(zhí)行的操作。因此,在使用數(shù)據(jù)庫系統(tǒng)時可以在兩個級別上分配權(quán)限。(1)用戶級:DBA可以為每個用戶指定其獨立持有的在數(shù)據(jù)庫關(guān)系上的特定權(quán)限。(2)關(guān)系級:DBA可以控制數(shù)據(jù)庫中每個單獨的關(guān)系或視圖的訪問權(quán)限。13*

2.權(quán)限的授予和收(1)權(quán)限的授予主要是通過SQL的GRANT(授予權(quán)限)語句來完成權(quán)限的授予,另外視圖機制也是一種重要的自主性授權(quán)機制。(2)權(quán)限的收回主要是通過SQL的REVOKE(收回權(quán)限)語句來完成權(quán)限的收回。(3)使用GRANTOPTION選項傳播權(quán)限每當(dāng)關(guān)系的擁有者A把關(guān)系上的一個權(quán)限授予另一個賬戶B的時候,可以給賬戶B授予帶有GRANTOPTION選項和不帶有GRANTOPTION選項的特權(quán)。如果帶有這個選項,表示賬戶B還可以把關(guān)系上擁有的權(quán)限授予其他賬戶。14*

3.MySQL用戶授權(quán)示例【例5-1】使用GRANT語句創(chuàng)建一個新的用戶testUser,密碼為testPwd。用戶testUser對所有的數(shù)據(jù)有查詢、插入權(quán)限,并授予GRANT傳播權(quán)限。使用GRANT語句授權(quán),語句如下;mysql>GRANTSELECT,INSERTON*.*->TO'testUser'@'localhost'->IDENTIFIEDBY'testPwd'->WITHGRANTOPTION;QueryOK,0rowsaffected,1warning(0.05sec)15*

使用SELECT語句查詢用戶testUser的權(quán)限,語句如下:mysql>SELECTHost,User,Select_priv,Grant_priv->FROMmysql.user->WHEREUser='testUser';+-----------+----------+-------------+------------+|Host|User|Select_priv|Grant_priv|+-----------+----------+-------------+------------+|localhost|testUser|Y|Y|+-----------+----------+-------------+------------+16*5.2.4強制存取控制方法強制存取控制(MAC)保證更高程度的安全性用戶能不能直接感知或進行控制適用于對數(shù)據(jù)有嚴格而固定密級分類的部門軍事部門政府部門*主體是系統(tǒng)中的活動實體

DBMS所管理的實際用戶代表用戶的各進程客體是系統(tǒng)中的被動實體,是受主體操縱的文件基表索引視圖*敏感度標記(Label)絕密(TopSecret)機密(Secret)可信(Confidential)公開(Public)主體的敏感度標記稱為許可證級別(ClearanceLevel)客體的敏感度標記稱為密級(ClassificationLevel)*強制存取控制規(guī)則規(guī)則1:僅當(dāng)主體的許可證級別大于或等于客體的密級時,該主體才能讀相應(yīng)的客體;規(guī)則2:僅當(dāng)主體的許可證級別等于客體的密級時,該主體才能寫相應(yīng)的客體*MAC與DACDAC與MAC共同構(gòu)成DBMS的安全機制實現(xiàn)MAC時要首先實現(xiàn)DAC原因:較高安全性級別提供的安全保護要包含較低級別的所有保護*DAC+MAC安全檢查示意圖

SQL語法分析&語義檢查

DAC檢查

安全檢查

MAC檢查

繼續(xù)

先進行DAC檢查,通過DAC檢查的數(shù)據(jù)對象再由系統(tǒng)進行MAC檢查,只有通過MAC檢查的數(shù)據(jù)對象方可存取。*5.2.5視圖機制把要保密的數(shù)據(jù)對無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,對數(shù)據(jù)提供一定程度的安全保護主要功能是提供數(shù)據(jù)獨立性,無法完全滿足要求間接實現(xiàn)了支持存取謂詞的用戶權(quán)限定義*1、創(chuàng)建視圖在MySQL中可以使用CREATEVIEW語句來創(chuàng)建視圖,其語法格式如下:CREATEVIEWview_nameASSELECT語句[WITHCHECKOPTION];注意select語句的限制條件*【例5-2】在數(shù)據(jù)庫school_db中創(chuàng)建視圖v_student,要求該視圖中包含學(xué)生信息表student中所有男生的信息,并且要求保證以后對該視圖數(shù)據(jù)的修改都必須符合“學(xué)生性別為男”這個條件。

完成此操作的SQL語句如下:mysql>CREATEVIEWv_student->AS->SELECT*FROMstudentWHEREsex=’男’->WITHCHECKOPTIONQueryOK,0rowsaffected(015sec)*【例5-3】在數(shù)據(jù)庫school_db中創(chuàng)建視圖v_grade_avg,要求該視圖中包含成績表grade中所有學(xué)生的學(xué)號和平均成績,并按學(xué)號進行排序。完成此操作的SQL語句如下:mysql>CREATEVIEWv_grade_avg->AS->SELECTSNO,AVG(score)FROMgrade->GROUPBYSNOQueryOK,0rowsaffected(0.09sec)*【例5-4】在數(shù)據(jù)庫school_db中創(chuàng)建視圖v_grade,要求該視圖中包含成績表grade中所有學(xué)生成績score<90學(xué)生的學(xué)號、課程號和成績。完成此操作的SQL語句如下:mysql>CREATEVIEWv_grade->AS->SELECT*FROMgradeWHEREscroe<90->WITHCHECKOPTIONQueryOK,0rowsaffected(0.09sec)*2、刪除視圖在MySQL中,可以使用DROPVIEW語句來刪除視圖,其語法格式如下:DROPVIEWview_name[,view_name]...其中,view_name指定要被刪除的視圖名。使用DROPVIEW語句可以一次刪除多個視圖,但必須在每個視圖上擁有DROP權(quán)限?!纠?-5】刪除數(shù)據(jù)庫school_db中的視圖v_student。

完成此操作的SQL語句如下:mysql>DROPVIEWv_student;QueryOK,0rowsaffected(0.05sec)*3、修改視圖定義

在MySQL中,可以使用ALTERVIEW語句來對已有視圖的定義或結(jié)構(gòu)進行修改,其語法格式如下:ALTERVIEWview_nameASSELECT語句[WITHCHECKOPTION]*【例5-6】使用ALTERVIEW語句修改數(shù)據(jù)庫school_db中的視圖v_student的定義,要求該視圖包含學(xué)生信息表student中“學(xué)生性別”為“男”,“年齡”小于“20歲”的學(xué)生的學(xué)號、姓名和所屬班級,并且要求今后對該視圖的修改都必須符合“學(xué)生性別”為“男”,年齡”小于“20歲”這個條件。完成此操作的SQL語句如下:mysql>ALTERVIEWv_student(SNO,SName,CNO);->AS->SELECTSNO,SName,CNOFORMstudent->WHERESex=’男’ANDAge<20;->WITHCHECKOPTIONQueryOK,0rowsaffected(0.18sec)*4、查看視圖定義

在MySQL中可以使用SHOWCREATEVIEW語句來查看已有視圖的定義或結(jié)構(gòu),其語法格式如下:SHOWCREATEVIEWview_name

其中,view_name指定要查看視圖的名稱。*5、更新視圖數(shù)據(jù)

由于視圖是一個虛擬表,所以通過插入、修改和刪除等操作方式來更新視圖中的數(shù)據(jù),實質(zhì)是更新視圖所應(yīng)用的基礎(chǔ)表中的數(shù)據(jù)。然而,視圖的更新操作是受一定限制的,并非所有的視圖都可以進行插入(INSERT)、更新(UPDATE)或刪除(DELETE)等操作,只有滿足可更新條件的視圖才能進行更新,否則就會導(dǎo)致系統(tǒng)出現(xiàn)不可預(yù)期的結(jié)果。*5、更新視圖數(shù)據(jù)

對于可更新的視圖,要求該視圖中的行和基礎(chǔ)表中的行之間具有一對一的對應(yīng)關(guān)系。另外,如果視圖中包含了聚合函數(shù)、DISTINT關(guān)鍵字、GROUPBY子句、ORDERBY子句、HAVING子句、UNION運算符、子查詢這些SQL語句結(jié)構(gòu),或者視圖中的FROM子句中包含多個表、SELECT子句中引用了不可更新視圖,那么該視圖都是不可更新的。*【例5-7】使用INSERT語句,通過視圖v_student向?qū)W生信息表student中插入一條新的記錄:(‘2020010’,’張三’,’男’,’21’,計算機系)。完成此操作的SQL語句如下:mysql>INSERTINTOv_student->VALUSE(‘2020010’,’張三’,’男’,’21’,計算機系);QueryOK,0rowsaffected(0.09sec)然后使用下列語句來查看學(xué)生信息表student中的數(shù)據(jù)情況:mysql>SELECT*FROMstudent;*【例5-8】使用UPDATE語句,通過視圖v_student更新學(xué)生信息表student中“年齡”列的所有取值為20。完成此操作的SQL語句如下:mysql>UPDATEv_student->SETage=20;QueryOK,0rowsaffected(0.09sec)然后使用下列語句來查看學(xué)生信息表student中的數(shù)據(jù)情況:mysql>SELECT*FROMstudent;*【例5-9】使用DELETE語句,通過視圖v_student刪除學(xué)生信息表student中學(xué)生張三的信息。完成此操作的SQL語句如下:mysql>DELETEFROMv_student->WHERESNAME=’周明’;QueryOK,0rowsaffected(0.09sec)然后使用下列語句來查看學(xué)生信息表student中的數(shù)據(jù)情況:mysql>SELECT*FROMstudent;*6、查詢視圖數(shù)據(jù)

視圖被定義之后,就可以如同查詢數(shù)據(jù)庫中的表一樣,對視圖進行數(shù)據(jù)查詢。查詢操作是對視圖使用最多的一種操作。例如可以利用視圖簡化復(fù)雜的表連接,可以使用視圖重新格式化檢索出的數(shù)據(jù),還可以使用視圖過濾不想要的數(shù)據(jù)。

在MySQL中,對視圖的使用還需要注意:(1)創(chuàng)建視圖必須具有足夠的訪問權(quán)限;(2)對于可以創(chuàng)建的視圖數(shù)目沒有限制;

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論