版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第五講數(shù)據(jù)庫的安全性與完整性沈明玉第五講數(shù)據(jù)庫的安全性與完整性主要內(nèi)容:一、數(shù)據(jù)庫的安全性二、數(shù)據(jù)庫的完整性一、數(shù)據(jù)庫的安全性數(shù)據(jù)庫安全性概述數(shù)據(jù)庫安全性控制視圖機制安全審計數(shù)據(jù)加密一、數(shù)據(jù)庫的安全性1.1數(shù)據(jù)庫安全性概述數(shù)據(jù)庫安全性:是指保護數(shù)據(jù)庫以防止非法用戶的越權(quán)使用、竊取、更改或破壞數(shù)據(jù)。數(shù)據(jù)庫的安全性可以劃分為三個層次:
網(wǎng)絡系統(tǒng)的安全操作系統(tǒng)的安全數(shù)據(jù)庫管理系統(tǒng)的安全1.1數(shù)據(jù)庫安全性概述網(wǎng)絡系統(tǒng)的安全
這是數(shù)據(jù)庫的第一個安全屏障。目前網(wǎng)絡系統(tǒng)面臨的主要威脅有木馬程序、網(wǎng)絡欺騙、入侵和病毒等。操作系統(tǒng)安全本層次的安全問題主要來自網(wǎng)絡內(nèi)所使用操作系統(tǒng)的安全。例如Windows2003Server主要包括:操作系統(tǒng)本身的缺陷、對操作系統(tǒng)的安全配置、病毒的威脅三個方面。數(shù)據(jù)庫系統(tǒng)面臨的主要風險操作系統(tǒng)的風險
數(shù)據(jù)庫系統(tǒng)的安全性最終要靠操作系統(tǒng)和硬件設備所提供的環(huán)境,如果操作系統(tǒng)允許用戶直接存取數(shù)據(jù)庫文件,即使數(shù)據(jù)庫系統(tǒng)中采取了最可靠的安全措施也沒有用。管理的風險
主要指用戶的安全意識,對信息網(wǎng)絡安全的重視程度及相關(guān)的安全管理措施。1.1數(shù)據(jù)庫安全性概述用戶的風險主要表現(xiàn)在用戶賬號和對特定數(shù)據(jù)庫對象的操作權(quán)限。數(shù)據(jù)庫管理系統(tǒng)內(nèi)部的風險
DBMS廠商對源碼的控制、后門、安全機制等。1.1數(shù)據(jù)庫安全性概述數(shù)據(jù)庫安全技術(shù)的研究
數(shù)據(jù)加密技術(shù)用戶認證技術(shù)訪問控制技術(shù)防注入(Injection)技術(shù)如:SQLInjection,利用某些數(shù)據(jù)庫的外部接口將用戶數(shù)據(jù)插入到實際的數(shù)據(jù)庫操作語言當中,從而達到入侵數(shù)據(jù)庫乃至操作系統(tǒng)的目的。1.1數(shù)據(jù)庫安全性概述1.2數(shù)據(jù)庫安全性控制非法使用數(shù)據(jù)庫的情況
編寫合法程序繞過DBMS及其授權(quán)機制;直接或編寫應用程序執(zhí)行非授權(quán)操作;通過多次合法查詢數(shù)據(jù)庫從中推導出一些保密數(shù)據(jù)。
數(shù)據(jù)庫系統(tǒng)安全模型一、數(shù)據(jù)庫的安全性1.2數(shù)據(jù)庫安全性控制
數(shù)據(jù)庫安全性控制的常用方法用戶標識和鑒定訪問控制視圖審計數(shù)據(jù)加密1.用戶標識與鑒別系統(tǒng)提供的最外層安全保護措施。用戶標識:用來表明用戶的身份??诹睿合到y(tǒng)核對口令以鑒別用戶身份。用戶名和口令易被竊取。每個用戶預先約定好一個計算過程或者函數(shù)1.2數(shù)據(jù)庫安全性控制2.訪問控制訪問控制機制的組成定義用戶權(quán)限合法權(quán)限檢查常用訪問控制方法自主訪問控制DAC:C2級、靈活強制訪問控制MAC:B1級、嚴格1.2數(shù)據(jù)庫安全性控制3.自主訪問控制方法DAC主體與客體直接關(guān)聯(lián);主體的權(quán)限需要授權(quán);具有授權(quán)資格的用戶均可實現(xiàn)授權(quán)。1.2數(shù)據(jù)庫安全性控制用戶權(quán)限設置通過SQL的GRANT語句和REVOKE語句實現(xiàn)。用戶權(quán)限組成:數(shù)據(jù)對象、操作類型定義用戶訪問權(quán)限:定義用戶可以在哪些數(shù)據(jù)庫對象上進行哪些類型的操作。授權(quán)GRANT語句
GRANT<權(quán)限>[,<權(quán)限>]...[ON
<對象類型><對象名>]TO<用戶>[,<用戶>]…[WITHGRANTOPTION];1.2數(shù)據(jù)庫安全性控制關(guān)系數(shù)據(jù)庫系統(tǒng)中訪問控制對象關(guān)系數(shù)據(jù)庫系統(tǒng)中的存取權(quán)限
1.2數(shù)據(jù)庫安全性控制
誰可以發(fā)出GRANT:DBA、對象創(chuàng)建者(Owner)、擁有該權(quán)限的用戶??山邮軝?quán)限的用戶:一個或多個具體用戶、PUBLIC(全體用戶)。WITHGRANTOPTION子句不允許循環(huán)授權(quán):1.2數(shù)據(jù)庫安全性控制創(chuàng)建用戶
createuser<用戶名>identified<by口令>;授予用戶系統(tǒng)權(quán)限
grantcreatetable,createview,createsynonym,createsequence,createtrigger,createindex,createprocedureto<用戶|角色>[withadminoption];授予用戶對象權(quán)限grantselect,delete,update,inserton<表名>to用戶|角色|public[withgrantoption];1.2數(shù)據(jù)庫安全性控制安全性設置實例
1.創(chuàng)建新用戶u1,u2,u3,u4,u52.授予用戶u1,u2,u3,u4,u5權(quán)限connect3.授予用戶特定的對象權(quán)限1.2數(shù)據(jù)庫安全性控制[例1]將查詢Students表的select權(quán)限授給用戶U1。GRANTSELECTONtableStudentsTOU1;[例2]將對Students表和Course表的全部權(quán)限授予用戶U2和U3。GRANTALLPRIVILEGESONTABLEStudents,CourseTOU2,U3;[例3]將對表SC的查詢權(quán)限授予所有用戶。
GRANTSELECTONTABLESCTOPUBLIC;[例4]將查詢Students表和修改學生學號的權(quán)限授給用戶U4。
GRANTUPDATE(Sno),SELECTONTABLEStudentsTOU4;[例5]將SC的INSERT權(quán)限授予U5,并允許他將此權(quán)限授予其他用戶。
GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;1.2數(shù)據(jù)庫安全性控制
撤銷(收回)權(quán)限
REVOKE<權(quán)限>[,<權(quán)限>]...[ON<對象類型><對象名>]FROM<用戶>[,<用戶>]...;[例6]把用戶U4修改學生學號的權(quán)限收回。
REVOKEUPDATE(Sno)ONTABLEStudentsFROMU4;[例7]收回所有用戶對表SC的查詢權(quán)限。
REVOKESELECTONTABLESCFROMPUBLIC;[例8]把用戶U5對SC表的INSERT權(quán)限收回。
REVOKEINSERTONTABLESCFROMU5CASCADE;1.2數(shù)據(jù)庫安全性控制創(chuàng)建用戶時初始角色授權(quán)
CREATEUSER<username>
[WITH][DBA|RESOURCE|CONNECT]1.2數(shù)據(jù)庫安全性控制4.基于角色的訪問控制RBAC數(shù)據(jù)庫角色:被命名的一組與數(shù)據(jù)庫操作相關(guān)的權(quán)限。角色是權(quán)限的集合??梢詾橐唤M具有相同權(quán)限的用戶創(chuàng)建一個角色。簡化授權(quán)的過程。角色的創(chuàng)建:CREATEROLE<角色名>;
給角色授權(quán):
GRANT<權(quán)限>[,<權(quán)限>]…ON<對象類型>對象名
TO<角色>[,<角色>]…;1.2數(shù)據(jù)庫安全性控制將一個角色授予其他的角色或用戶:GRANT<角色1>[,<角色2>]…TO<角色3>[,<用戶1>]…[WITHADMINOPTION];角色權(quán)限的收回:REVOKE<權(quán)限>[,<權(quán)限>]…ON<對象類型><對象名>FROM<角色>[,<角色>]…;1.2數(shù)據(jù)庫安全性控制5.強制訪問控制MAC保證更高程度的安全性。用戶不能直接感知或進行控制。適用于對數(shù)據(jù)有嚴格而固定密級分類的部門。主體是系統(tǒng)中的活動實體。
DBMS所管理的實際用戶代表用戶的各個進程客體是系統(tǒng)中的被動實體,是受主體操縱的。
文件、基本表、索引、視圖。1.2數(shù)據(jù)庫安全性控制敏感度標記(Label)主體的敏感度標記稱為許可證級別;客體的敏感度標記稱為密級;強制存取控制規(guī)則
(1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體;
(2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體;修正規(guī)則:當主體的許可證級別<=客體的密級時,
主體能寫客體。1.2數(shù)據(jù)庫安全性控制1.2數(shù)據(jù)庫安全性控制一、數(shù)據(jù)庫的安全性1.3視圖機制
作用:把要保密的數(shù)據(jù)對無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,對數(shù)據(jù)提供一定程度的安全保護。視圖的主要功能是提供數(shù)據(jù)獨立性,無法完全滿足要求;視圖間接實現(xiàn)了支持存取謂詞的用戶權(quán)限定義。1.3視圖機制視圖示例:
CREATEVIEWCS_StudentASSELECT*FROMStudentWHERESdept='CS';
GRANTSELECTONCS_StudentTO王平;
GRANTALLPRIVILIGESONCS_StudentTO張明;一、數(shù)據(jù)庫的安全性1.4安全審計什么是審計?審計日志(AuditLog):將用戶對數(shù)據(jù)庫的所有操作記錄在上面;DBA利用審計日志:找出非法存取數(shù)據(jù)的人、時間和內(nèi)容;C2以上安全級別的DBMS必須具有。1.4安全審計審計的分類:用戶級審計針對自己創(chuàng)建的數(shù)據(jù)庫表或視圖進行審計;記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作。系統(tǒng)級審計DBA設置;監(jiān)測成功或失敗的登錄要求;監(jiān)測GRANT和REVOKE操作以及其他數(shù)據(jù)庫級權(quán)限下的操作。審計SQL語句
AUDIT語句:設置審計功能
NOAUDIT語句:取消審計功能審計設置示例
AUDITALTER,UPDATEONSC;
NOAUDITALTER,UPDATEONSC;1.4安全審計一、數(shù)據(jù)庫的安全性1.5數(shù)據(jù)加密對數(shù)據(jù)庫中存儲的重要數(shù)據(jù)進行加密處理,以實現(xiàn)數(shù)據(jù)存儲的安全保護。數(shù)據(jù)加密以后,在數(shù)據(jù)庫表中存儲的是密文,系統(tǒng)管理員也不能見到明文,提高了關(guān)鍵數(shù)據(jù)的安全性。由于數(shù)據(jù)庫系統(tǒng)在操作系統(tǒng)下都是以文件形式進行管理的,因此入侵者可以直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫文件,或者直接利用OS工具來非法偽造、篡改數(shù)據(jù)庫文件內(nèi)容。數(shù)據(jù)加密可對敏感數(shù)據(jù)進行保護。1.5數(shù)據(jù)加密數(shù)據(jù)庫加密的層次OS層加密:在OS層無法辨認數(shù)據(jù)庫中的數(shù)據(jù)關(guān)系,從而無法產(chǎn)生合理的密鑰,對密鑰的管理和使用也很難。DBMS內(nèi)核層加密:在物理存取之前完成數(shù)據(jù)的加/解密工作。優(yōu)點是加密功能強,可以實現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合。缺點是加密運算在服務器端進行,加重了服務器的負載,需要DBMS開發(fā)商的支持。DBMS外層加密:將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具,根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加/解密處理。優(yōu)點是不會加重數(shù)據(jù)庫服務器的負載且可以實現(xiàn)網(wǎng)上的密文傳輸,缺點是加密功能會受到一些限制,與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。DBMS外層加密原理數(shù)據(jù)庫加密系統(tǒng)分成兩個功能獨立的部件:加密字典管理程序、數(shù)據(jù)庫加/解密引擎。
加密字典用來保存用戶對數(shù)據(jù)庫信息的加密要求與基礎(chǔ)信息,通過調(diào)用數(shù)據(jù)加/解密引擎實現(xiàn)對數(shù)據(jù)庫表的加密、解密及數(shù)據(jù)轉(zhuǎn)換等功能。加/解密處理在后臺完成,對數(shù)據(jù)庫服務器是透明的。數(shù)據(jù)庫加/解密引擎由三大模塊組成:加/解密處理模塊、用戶接口模塊和數(shù)據(jù)庫接口模塊。優(yōu)點:①對最終用戶完全透明,管理員可根據(jù)需要進行明文和密文的轉(zhuǎn)換;②加密系統(tǒng)完全獨立于數(shù)據(jù)庫應用系統(tǒng);③加解密處理在客戶端進行,不會影響數(shù)據(jù)庫服務器的效率。
(分析:存在的問題!)1.5數(shù)據(jù)加密數(shù)據(jù)庫安全性練習1.創(chuàng)建角色r_oper,并授予其connect權(quán)限。2.將下列對象權(quán)限授予r_oper:dept表的select,insert,delete,update;majors表的全部權(quán)限;(allprivileges)students,sc,course表的select權(quán)限。3.新建用戶u10,將角色權(quán)限r(nóng)_oper授予用戶u10。4.撤銷(收回)用戶u10的所有權(quán)限。5.刪除用戶u10。二、數(shù)據(jù)庫的完整性完整性概述實體完整性的定義與處理參照完整性的定義與處理用戶定義完整性的定義與處理完整性約束命名子句觸發(fā)器(Trigger)二、數(shù)據(jù)庫的完整性2.1完整性概述數(shù)據(jù)庫的完整性:數(shù)據(jù)的正確、有效和相容。完整性控制:采取有效手段,控制數(shù)據(jù)的取值,防止出現(xiàn)不符合應用語義的數(shù)據(jù)。DBMS對完整性控制的支持:完整性約束規(guī)則的定義;完整性檢查(數(shù)據(jù)更新時);違約處理(視不同情況)。2.2實體完整性的定義與處理定義:通過基本表中定義主碼實現(xiàn)。檢查與處理:
插入或?qū)χ鞔a列進行更新操作時,RDBMS按照實體完整性規(guī)則自動進行檢查。包括:1)
檢查主碼值是否唯一,如果不唯一則拒絕插入或修改。2)
檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入或修改。二、數(shù)據(jù)庫的完整性2.3參照完整性的定義與處理定義:通過基本表中定義外碼實現(xiàn)。檢查與處理:
二、數(shù)據(jù)庫的完整性2.3參照完整性的定義與處理【例】
顯式說明參照完整性的違約處理示例。
CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESStudent(Sno) ONDELETECASCADE/*級聯(lián)刪除SC表中相應的元組*/ONUPDATECASCADE,/*級聯(lián)更新SC表中相應的元組*/FOREIGNKEY(Cno)REFERENCESCourse(Cno) ONDELETENOACTION/*刪除course元組造成不一致時拒絕刪除*/ONUPDATECASCADE/*級聯(lián)更新SC表中相應的元組*/);2.4用戶定義完整性的定義與處理定義:在創(chuàng)建基本表時定義。列值非空(NOTNULL)列值唯一(UNIQUE)檢查列值是否滿足一個布爾表達式(CHECK)檢查與處理:更新數(shù)據(jù)時,RDBMS檢查相關(guān)的約束條件是否被滿足,如果不滿足則操作被拒絕執(zhí)行。二、數(shù)據(jù)庫的完整性【例1】實體完整性約束定義。createtabletest(idnumberprimarykey,namevarchar2(20));【例2】參照完整性約束定義。createtabletest2(d_idchar(10)primarykey,f_idnumber,foreignkey(f_id)referencestest(id)ondeletesetnull);//Oracle不支持onupdatecascade【例3】用戶定義的完整性。createtabletest3(p_idchar(10)primarykey,namevarchar2(20)uniquenotnull,sexchar(2)check(sexin('男','女')));2.5完整性約束命名子句CONSTRAINT<完整性約束條件名>[PRIMARYKEY短語|FOREIGNKEY短語|CHECK短語];[例]CREATETABLEStudent(SnoNUMERIC(6)
CONSTRAINTC1CHECK(SnoBETWEEN90000AND99999),
SnameCHAR(20)CONSTRAINTC2NOTNULL,
SageNUMBER(3)CONSTRAINTC3CHECK(Sage<30),
SsexCHAR(2)CONSTRAINTC4CHECK(SsexIN('男','女')),
CONSTRAINTStudentKeyPRIMARYKEY(Sno));二、數(shù)據(jù)庫的完整性2.5完整性約束命名子句通過命名子句修改完整性定義[例]修改表Student中的約束條件。ALTERTABLEStudentDROPCONSTRAINTC1;
ALTERTABLEStudentADDCONSTRAINTC1CHECK(SnoBETWEEN900000AND999999);
ALTERTABLEStudentDROPCONSTRAINTC3;ALTERTABLEStudentADDCONSTRAINTC3CHECK(Sage<40);2.6觸發(fā)器(Trigger)
觸發(fā)器是由一系列SQL語句組成的動作體,當對數(shù)據(jù)庫做修改(包括插入、刪除和更新)時,它自動被系統(tǒng)執(zhí)行。
設置觸發(fā)器機制必須滿足的兩個條件:
①指明什么條件下觸發(fā)器被執(zhí)行,即觸發(fā)條件;
②指明觸發(fā)器執(zhí)行的動作是什么,即觸發(fā)什么。二、數(shù)據(jù)庫的完整性觸發(fā)器的利弊可以進行更為復雜的檢查和操作,具有更精細和更強大的數(shù)據(jù)控制能力,能夠保證數(shù)據(jù)庫的一致性;檢測和維護觸發(fā)器需要很大的開銷,降低了數(shù)據(jù)庫增、刪、改的效率!2.6觸發(fā)器(Trigger)定義觸發(fā)器
CREATETRIGGER<觸發(fā)器名>{BEFORE|AFTER}<觸發(fā)事件>ON<表名>FOREACH{ROW|STATEMENT}
[WHEN<觸發(fā)條件>]
<觸發(fā)動作體>;
了解:T-SQL與PL/SQL的差異!2.6觸發(fā)器(Trigger)說明:1)創(chuàng)建者:表的擁有者2)
觸發(fā)器名3)
表名:觸發(fā)器的目標表4)
觸發(fā)事件:INSERT、DELETE、UPDATE5)
觸發(fā)器類型行級觸發(fā)器(FOREACHROW)語句級觸發(fā)器(FOREACHSTATEMENT)2.6觸發(fā)器(Trigger)[例]定義一個BEFORE行級觸發(fā)器,為教師表Teachers定義完整性規(guī)則“講師的工資不得低于3000元,如果低于3000元,自動改為3000元”。
CREATETRIGGERInsert_Or_Update_SalBEFOREINSERTORUPDATEONTeachers--觸發(fā)事件是插入或更新操作FOREACHROW--行級觸發(fā)器BEGIN--定義觸發(fā)動作體,是PL/SQL過程塊IF(:new.Job=‘講師')AND(:new.Sal<3000)T
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年政府公共安全監(jiān)控技術(shù)合同范本3篇
- 2024年版建設項目招標協(xié)調(diào)合同
- 三年級教學計劃3篇
- 員工工作計劃
- 2024-2030年中國羥甲煙胺片行業(yè)發(fā)展?jié)摿︻A測及投資戰(zhàn)略研究報告
- 服裝銷售工作計劃
- 學習部工作計劃4篇
- 去超市實習報告范文集合7篇
- 銀行員工辭職信
- 關(guān)于教師職稱述職報告匯編5篇
- 精品解析:河北省衡水市衡水中學2023-2024學年高一上學期期末數(shù)學試題(解析版)
- 2023年《鐵道概論》考試復習題庫附答案(含各題型)
- (電焊工)勞務分包合同
- 陜西省西安市西咸新區(qū)2023-2024學年七年級上學期1月期末歷史試題
- 北師大版數(shù)學三年級下冊全冊教案教學設計及教學反思
- 重難點06讀后續(xù)寫-2023年高考英語【熱點·重點·難點】(新高考專用)
- 眼科手術(shù)圍手術(shù)期的護理
- 人事行政主管打造高效團隊提升員工滿意度實現(xiàn)人力資源的優(yōu)化管理和企業(yè)文化的建設
- 《腰椎穿刺術(shù)》課件
- 2023年MC工程師年度總結(jié)及下一年計劃
- 拆遷賠償保密協(xié)議
評論
0/150
提交評論