數(shù)據(jù)庫原理第12講_第1頁
數(shù)據(jù)庫原理第12講_第2頁
數(shù)據(jù)庫原理第12講_第3頁
數(shù)據(jù)庫原理第12講_第4頁
數(shù)據(jù)庫原理第12講_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第四章數(shù)據(jù)庫安全性.

數(shù)據(jù)庫安全性

問題的提出數(shù)據(jù)庫的一大特點是數(shù)據(jù)可以共享數(shù)據(jù)共享必然帶來數(shù)據(jù)庫的安全性問題數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)共享不能是無條件的共享例:軍事秘密、國家機密、新產(chǎn)品實驗數(shù)據(jù)、市場需求分析、市場營銷策略、銷售計劃、客戶檔案、醫(yī)療檔案、銀行儲蓄數(shù)據(jù)數(shù)據(jù)庫安全性.4.2數(shù)據(jù)庫安全性控制概述非法使用數(shù)據(jù)庫的情況編寫合法程序繞過DBMS及其授權(quán)機制直接或編寫應用程序執(zhí)行非授權(quán)操作通過多次合法查詢數(shù)據(jù)庫從中推導出一些保密數(shù)據(jù).數(shù)據(jù)庫安全性控制概述(續(xù))計算機系統(tǒng)中,安全措施是一級一級層層設置

計算機系統(tǒng)的安全模型

.用戶標識自己的名字或身份用戶名/口令智能卡認證動態(tài)口令USBKey認證RSASecurIDToken生物識別技術(shù).數(shù)據(jù)庫安全性控制概述(續(xù))數(shù)據(jù)庫安全性控制的常用方法用戶標識和鑒定存取控制視圖審計密碼存儲.4.2.1用戶標識與鑒別用戶標識與鑒別(Identification&Authentication)系統(tǒng)提供的最外層安全保護措施.用戶標識與鑒別(續(xù))用戶標識口令系統(tǒng)核對口令以鑒別用戶身份用戶名和口令易被竊取每個用戶預先約定好一個計算過程或者函數(shù).4.2.2存取控制存取控制機制組成定義用戶權(quán)限合法權(quán)限檢查用戶權(quán)限定義和合法權(quán)檢查機制一起組成了DBMS的安全子系統(tǒng).存取控制(續(xù))常用存取控制方法自主存取控制(DiscretionaryAccessControl,簡稱DAC)

C2級靈活強制存取控制(MandatoryAccessControl,簡稱MAC)B1級嚴格.4.2.3自主存取控制方法通過SQL的GRANT

語句和REVOKE

語句實現(xiàn)用戶權(quán)限組成數(shù)據(jù)對象操作類型定義用戶存取權(quán)限:定義用戶可以在哪些數(shù)據(jù)庫對象上進行哪些類型的操作定義存取權(quán)限稱為授權(quán)

.自主存取控制方法(續(xù))關(guān)系數(shù)據(jù)庫系統(tǒng)中存取控制對象對象類型對象操作類型數(shù)據(jù)庫模式CREATESCHEMA基本表CREATETABLE,ALTERTABLE模式視圖CREATEVIEW索引CREATEINDEX數(shù)據(jù)基本表和視圖SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALLPRIVILEGES數(shù)據(jù)屬性列SELECT,INSERT,UPDATE,REFERENCESALLPRIVILEGES關(guān)系數(shù)據(jù)庫系統(tǒng)中的存取權(quán)限

.4.2.4授權(quán)與回收一、GRANTGRANT語句的一般格式:

GRANT<權(quán)限>[,<權(quán)限>]...[ON<對象類型><對象名>]TO<用戶>[,<用戶>]...[WITHGRANTOPTION];語義:將對指定操作對象的指定操作權(quán)限授予指定的用戶

.GRANT(續(xù))發(fā)出GRANT:DBA數(shù)據(jù)庫對象創(chuàng)建者(即屬主Owner)擁有該權(quán)限的用戶按受權(quán)限的用戶

一個或多個具體用戶PUBLIC(全體用戶).WITHGRANTOPTION子句WITHGRANTOPTION子句:指定:可以再授予沒有指定:不能傳播不允許循環(huán)授權(quán).例題[例1]把查詢Student表權(quán)限授給用戶U1GRANTSELECTONTABLEStudentTOU1;.例題(續(xù))[例2]把對Student表和Course表的全部權(quán)限授予用戶U2和U3GRANTALLPRIVILIGES

ONTABLEStudent,CourseTOU2,U3;.例題(續(xù))[例3]把對表SC的查詢權(quán)限授予所有用戶

GRANTSELECTONTABLESC TOPUBLIC;.例題(續(xù))[例4]把查詢Student表和修改學生學號的權(quán)限授給用戶U4

GRANTUPDATE(Sno),SELECT ONTABLEStudent TOU4;對屬性列的授權(quán)時必須明確指出相應屬性列名.例題(續(xù))

[例5]把對表SC的INSERT權(quán)限授予U5用戶,并允許他再將此權(quán)限授予其他用戶

GRANTINSERTONTABLESCTOU5

WITHGRANTOPTION;.傳播權(quán)限執(zhí)行例5后,U5不僅擁有了對表SC的INSERT權(quán)限,還可以傳播此權(quán)限:

[例6]

GRANTINSERTONTABLESCTOU6

WITHGRANTOPTION;

同樣,U6還可以將此權(quán)限授予U7:

[例7]GRANTINSERTONTABLESCTOU7;

但U7不能再傳播此權(quán)限。

.傳播權(quán)限(續(xù))

下表是執(zhí)行了[例1]到[例7]的語句后,學生-課程數(shù)據(jù)庫中的用戶權(quán)限定義表授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫對象名允許的操作類型能否轉(zhuǎn)授權(quán)DBAU1關(guān)系StudentSELECT不能DBAU2關(guān)系StudentALL不能DBAU2關(guān)系CourseALL不能DBAU3關(guān)系StudentALL不能DBAU3關(guān)系CourseALL不能DBAPUBLIC關(guān)系SCSELECT不能DBAU4關(guān)系StudentSELECT不能DBAU4屬性列Student.SnoUPDATE不能DBAU5關(guān)系SCINSERT能U5U6關(guān)系SCINSERT能U6U7關(guān)系SCINSERT不能.授權(quán)與回收(續(xù))二、REVOKE授予的權(quán)限可以由DBA或其他授權(quán)者用REVOKE語句收回REVOKE語句的一般格式為:

REVOKE<權(quán)限>[,<權(quán)限>]...[ON<對象類型><對象名>]FROM<用戶>[,<用戶>]...;.REVOKE(續(xù))[例8]把用戶U4修改學生學號的權(quán)限收回

REVOKEUPDATE(Sno) ONTABLEStudent FROMU4;.REVOKE(續(xù))[例9]收回所有用戶對表SC的查詢權(quán)限

REVOKESELECT ONTABLESC FROMPUBLIC;

.REVOKE(續(xù))[例10]把用戶U5對SC表的INSERT權(quán)限收回

REVOKEINSERT ONTABLESC FROMU5CASCADE;將用戶U5的INSERT權(quán)限收回的時候必須級聯(lián)(CASCADE)收回系統(tǒng)只收回直接或間接從U5處獲得的權(quán)限

.REVOKE(續(xù))

執(zhí)行[例8]到[例10]的語句后,學生-課程數(shù)據(jù)庫中的用戶權(quán)限定義表授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫對象名允許的操作類型能否轉(zhuǎn)授權(quán)DBAU1關(guān)系StudentSELECT不能DBAU2關(guān)系StudentALL不能DBAU2關(guān)系CourseALL不能DBAU3關(guān)系StudentALL不能DBAU3關(guān)系CourseALL不能DBAU4關(guān)系StudentSELECT不能.小結(jié):SQL靈活的授權(quán)機制DBA:擁有所有對象的所有權(quán)限不同的權(quán)限授予不同的用戶用戶:擁有自己建立的對象的全部的操作權(quán)限GRANT:授予其他用戶被授權(quán)的用戶“繼續(xù)授權(quán)”許可:再授予所有授予出去的權(quán)力在必要時又都可用REVOKE語句收回.授權(quán)與回收(續(xù))三、創(chuàng)建數(shù)據(jù)庫模式的權(quán)限D(zhuǎn)BA在創(chuàng)建用戶時實現(xiàn)CREATEUSER語句格式

CREATEUSER<username>

[WITH][DBA|RESOURCE|CONNECT].授權(quán)與回收(續(xù))擁有的權(quán)限可否執(zhí)行的操作CREATEUSERCREATESCHEMACREATETABLE登錄數(shù)據(jù)庫執(zhí)行數(shù)據(jù)查詢和操縱DBA可以可以可以可以RESOURCE不可以不可以不可以不可以CONNECT不可以不可以不可以可以,但必須擁有相應權(quán)限權(quán)限與可執(zhí)行的操作對照表

.4.2.5數(shù)據(jù)庫角色數(shù)據(jù)庫角色:被命名的一組與數(shù)據(jù)庫操作相關(guān)的權(quán)限角色是權(quán)限的集合可以為一組具有相同權(quán)限的用戶創(chuàng)建一個角色簡化授權(quán)的過程.數(shù)據(jù)庫角色一、角色的創(chuàng)建CREATEROLE<角色名>二、給角色授權(quán)

GRANT<權(quán)限>[,<權(quán)限>]…ON<對象類型>對象名

TO<角色>[,<角色>]….數(shù)據(jù)庫角色三、將一個角色授予其他的角色或用戶GRANT<角色1>[,<角色2>]…TO<角色3>[,<用戶1>]…[WITHADMINOPTION]四、角色權(quán)限的收回REVOKE<權(quán)限>[,<權(quán)限>]…ON<對象類型><對象名>FROM<角色>[,<角色>]….數(shù)據(jù)庫角色(續(xù))[例11]通過角色來實現(xiàn)將一組權(quán)限授予一個用戶。步驟如下:1.首先創(chuàng)建一個角色R1CREATEROLER1;2.然后使用GRANT語句,使角色R1擁有Student表的SELECT、UPDATE、INSERT權(quán)限

GRANTSELECT,UPDATE,INSERTONTABLEStudentTOR1;.數(shù)據(jù)庫角色(續(xù))3.將這個角色授予王平,張明,趙玲。使他們具有角色R1所包含的全部權(quán)限

GRANTR1TO王平,張明,趙玲;4.可以一次性通過R1來回收王平的這3個權(quán)限

REVOKER1FROM王平;.數(shù)據(jù)庫角色(續(xù))[例12]角色的權(quán)限修改

GRANTDELETEONTABLEStudentTOR1.數(shù)據(jù)庫角色(續(xù))[例13]

REVOKESELECTONTABLEStudentFROMR1;

.自主存取控制缺點可能存在數(shù)據(jù)的“無意泄露”原因:這種機制僅僅通過對數(shù)據(jù)的存取權(quán)限來進行安全控制,而數(shù)據(jù)本身并無安全性標記解決:對系統(tǒng)控制下的所有主客體實施強制存取控制策略

.4.2.6強制存取控制方法強制存取控制(MAC)保證更高程度的安全性用戶能不能直接感知或進行控制適用于對數(shù)據(jù)有嚴格而固定密級分類的部門

軍事部門政府部門.強制存取控制方法(續(xù))主體是系統(tǒng)中的活動實體

DBMS所管理的實際用戶代表用戶的各進程客體是系統(tǒng)中的被動實體,是受主體操縱的文件基表索引視圖.強制存取控制方法(續(xù))敏感度標記(Label)絕密(TopSecret)機密(Secret)可信(Confidential)公開(Public)主體的敏感度標記稱為許可證級別(ClearanceLevel)客體的敏感度標記稱為密級(ClassificationLevel).強制存取控制方法(續(xù))

強制存取控制規(guī)則

(1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體

(2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體修正規(guī)則主體的許可證級別<=客體的密級主體能寫客體.強制存取控制方法(續(xù))規(guī)則的共同點禁止了擁有高許可證級別的主體更新低密級的數(shù)據(jù)對象.MAC與DACDAC與MAC共同構(gòu)成DBMS的安全機制實現(xiàn)MAC時要首先實現(xiàn)DAC原因:較高安全性級別提供的安全保護要包含較低級別的所有保護.強制存取控制方法(續(xù))DAC+MAC安全檢查示意圖

SQL語法分析&語義檢查

DAC檢查安全檢查

MAC檢查

繼續(xù)先進行DAC檢查,通過DAC檢查的數(shù)據(jù)對象再由系統(tǒng)進行MAC檢查,只有通過MAC檢查的數(shù)據(jù)對象方可存取。.4.3視圖機制把要保密的數(shù)據(jù)對無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,對數(shù)據(jù)提供一定程度的安全保護

主要功能是提供數(shù)據(jù)獨立性,無法完全滿足要求間接實現(xiàn)了支持存取謂詞的用戶權(quán)限定義.視圖機制(續(xù))[例14]建立計算機系學生的視圖,把對該視圖的SELECT權(quán)限授于王平,把該視圖上的所有操作權(quán)限授于張明先建立計算機系學生的視圖CS_Student

CREATEVIEWCS_StudentASSELECT*FROMStudentWHERESdept='CS';.視圖機制(續(xù))在視圖上進一步定義存取權(quán)限

GRANTSELECTONCS_StudentTO王平;

GRANTALLPRIVILIGESONCS_StudentTO張明;.4.4審計什么是審計審計日志(AuditLog)將用戶對數(shù)據(jù)庫的所有操作記錄在上面DBA利用審計日志找出非法存取數(shù)據(jù)的人、時間和內(nèi)容C2以上安全級別的DBMS必須具有.審計(續(xù))審計分為用戶級審計針對自己創(chuàng)建的數(shù)據(jù)庫表或視圖進行審計記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作系統(tǒng)級審計DBA設置監(jiān)測成功或失敗的登錄要求監(jiān)測GRANT和REVOKE操作以及其他數(shù)據(jù)庫級權(quán)限下的操作.審計(續(xù))AUDIT語句:設置審計功能NOAUDIT語句:取消審計功能.審計(續(xù))[例15]對修改SC表結(jié)構(gòu)或修改SC表數(shù)據(jù)的操作進行審計

AUDITALTER,UPDATEONSC;[例16]取消對SC表的一切審計

NOAUDITALTER,UPDATEONSC;.4.5數(shù)據(jù)加密數(shù)據(jù)加密防止數(shù)據(jù)庫中數(shù)據(jù)在存儲和傳輸中失密的有效手段加密的基本思想加密方法替換方法置換方法混合方法DBMS中的數(shù)據(jù)加密.數(shù)據(jù)加密(續(xù))Createtableaccounts(Idnumbe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論