




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五講數據庫的安全性與完整性沈明玉第五講數據庫的安全性與完整性主要內容:一、數據庫的安全性二、數據庫的完整性一、數據庫的安全性數據庫安全性概述數據庫安全性控制視圖機制安全審計數據加密一、數據庫的安全性1.1數據庫安全性概述數據庫安全性:是指保護數據庫以防止非法用戶的越權使用、竊取、更改或破壞數據。數據庫的安全性可以劃分為三個層次:
網絡系統(tǒng)的安全操作系統(tǒng)的安全數據庫管理系統(tǒng)的安全1.1數據庫安全性概述網絡系統(tǒng)的安全
這是數據庫的第一個安全屏障。目前網絡系統(tǒng)面臨的主要威脅有木馬程序、網絡欺騙、入侵和病毒等。操作系統(tǒng)安全本層次的安全問題主要來自網絡內所使用操作系統(tǒng)的安全。例如Windows2003Server主要包括:操作系統(tǒng)本身的缺陷、對操作系統(tǒng)的安全配置、病毒的威脅三個方面。數據庫系統(tǒng)面臨的主要風險操作系統(tǒng)的風險
數據庫系統(tǒng)的安全性最終要靠操作系統(tǒng)和硬件設備所提供的環(huán)境,如果操作系統(tǒng)允許用戶直接存取數據庫文件,即使數據庫系統(tǒng)中采取了最可靠的安全措施也沒有用。管理的風險
主要指用戶的安全意識,對信息網絡安全的重視程度及相關的安全管理措施。1.1數據庫安全性概述用戶的風險主要表現(xiàn)在用戶賬號和對特定數據庫對象的操作權限。數據庫管理系統(tǒng)內部的風險
DBMS廠商對源碼的控制、后門、安全機制等。1.1數據庫安全性概述數據庫安全技術的研究
數據加密技術用戶認證技術訪問控制技術防注入(Injection)技術如:SQLInjection,利用某些數據庫的外部接口將用戶數據插入到實際的數據庫操作語言當中,從而達到入侵數據庫乃至操作系統(tǒng)的目的。1.1數據庫安全性概述1.2數據庫安全性控制非法使用數據庫的情況
編寫合法程序繞過DBMS及其授權機制;直接或編寫應用程序執(zhí)行非授權操作;通過多次合法查詢數據庫從中推導出一些保密數據。
數據庫系統(tǒng)安全模型一、數據庫的安全性1.2數據庫安全性控制
數據庫安全性控制的常用方法用戶標識和鑒定訪問控制視圖審計數據加密1.用戶標識與鑒別系統(tǒng)提供的最外層安全保護措施。用戶標識:用來表明用戶的身份??诹睿合到y(tǒng)核對口令以鑒別用戶身份。用戶名和口令易被竊取。每個用戶預先約定好一個計算過程或者函數1.2數據庫安全性控制2.訪問控制訪問控制機制的組成定義用戶權限合法權限檢查常用訪問控制方法自主訪問控制DAC:C2級、靈活強制訪問控制MAC:B1級、嚴格1.2數據庫安全性控制3.自主訪問控制方法DAC主體與客體直接關聯(lián);主體的權限需要授權;具有授權資格的用戶均可實現(xiàn)授權。1.2數據庫安全性控制用戶權限設置通過SQL的GRANT語句和REVOKE語句實現(xiàn)。用戶權限組成:數據對象、操作類型定義用戶訪問權限:定義用戶可以在哪些數據庫對象上進行哪些類型的操作。授權GRANT語句
GRANT<權限>[,<權限>]...[ON
<對象類型><對象名>]TO<用戶>[,<用戶>]…[WITHGRANTOPTION];1.2數據庫安全性控制關系數據庫系統(tǒng)中訪問控制對象關系數據庫系統(tǒng)中的存取權限
1.2數據庫安全性控制
誰可以發(fā)出GRANT:DBA、對象創(chuàng)建者(Owner)、擁有該權限的用戶??山邮軝嘞薜挠脩簦阂粋€或多個具體用戶、PUBLIC(全體用戶)。WITHGRANTOPTION子句不允許循環(huán)授權:1.2數據庫安全性控制創(chuàng)建用戶
createuser<用戶名>identified<by口令>;授予用戶系統(tǒng)權限
grantcreatetable,createview,createsynonym,createsequence,createtrigger,createindex,createprocedureto<用戶|角色>[withadminoption];授予用戶對象權限grantselect,delete,update,inserton<表名>to用戶|角色|public[withgrantoption];1.2數據庫安全性控制安全性設置實例
1.創(chuàng)建新用戶u1,u2,u3,u4,u52.授予用戶u1,u2,u3,u4,u5權限connect3.授予用戶特定的對象權限1.2數據庫安全性控制[例1]將查詢Students表的select權限授給用戶U1。GRANTSELECTONtableStudentsTOU1;[例2]將對Students表和Course表的全部權限授予用戶U2和U3。GRANTALLPRIVILEGESONTABLEStudents,CourseTOU2,U3;[例3]將對表SC的查詢權限授予所有用戶。
GRANTSELECTONTABLESCTOPUBLIC;[例4]將查詢Students表和修改學生學號的權限授給用戶U4。
GRANTUPDATE(Sno),SELECTONTABLEStudentsTOU4;[例5]將SC的INSERT權限授予U5,并允許他將此權限授予其他用戶。
GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;1.2數據庫安全性控制
撤銷(收回)權限
REVOKE<權限>[,<權限>]...[ON<對象類型><對象名>]FROM<用戶>[,<用戶>]...;[例6]把用戶U4修改學生學號的權限收回。
REVOKEUPDATE(Sno)ONTABLEStudentsFROMU4;[例7]收回所有用戶對表SC的查詢權限。
REVOKESELECTONTABLESCFROMPUBLIC;[例8]把用戶U5對SC表的INSERT權限收回。
REVOKEINSERTONTABLESCFROMU5CASCADE;1.2數據庫安全性控制創(chuàng)建用戶時初始角色授權
CREATEUSER<username>
[WITH][DBA|RESOURCE|CONNECT]1.2數據庫安全性控制4.基于角色的訪問控制RBAC數據庫角色:被命名的一組與數據庫操作相關的權限。角色是權限的集合。可以為一組具有相同權限的用戶創(chuàng)建一個角色。簡化授權的過程。角色的創(chuàng)建:CREATEROLE<角色名>;
給角色授權:
GRANT<權限>[,<權限>]…ON<對象類型>對象名
TO<角色>[,<角色>]…;1.2數據庫安全性控制將一個角色授予其他的角色或用戶:GRANT<角色1>[,<角色2>]…TO<角色3>[,<用戶1>]…[WITHADMINOPTION];角色權限的收回:REVOKE<權限>[,<權限>]…ON<對象類型><對象名>FROM<角色>[,<角色>]…;1.2數據庫安全性控制5.強制訪問控制MAC保證更高程度的安全性。用戶不能直接感知或進行控制。適用于對數據有嚴格而固定密級分類的部門。主體是系統(tǒng)中的活動實體。
DBMS所管理的實際用戶代表用戶的各個進程客體是系統(tǒng)中的被動實體,是受主體操縱的。
文件、基本表、索引、視圖。1.2數據庫安全性控制敏感度標記(Label)主體的敏感度標記稱為許可證級別;客體的敏感度標記稱為密級;強制存取控制規(guī)則
(1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體;
(2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體;修正規(guī)則:當主體的許可證級別<=客體的密級時,
主體能寫客體。1.2數據庫安全性控制1.2數據庫安全性控制一、數據庫的安全性1.3視圖機制
作用:把要保密的數據對無權存取這些數據的用戶隱藏起來,對數據提供一定程度的安全保護。視圖的主要功能是提供數據獨立性,無法完全滿足要求;視圖間接實現(xiàn)了支持存取謂詞的用戶權限定義。1.3視圖機制視圖示例:
CREATEVIEWCS_StudentASSELECT*FROMStudentWHERESdept='CS';
GRANTSELECTONCS_StudentTO王平;
GRANTALLPRIVILIGESONCS_StudentTO張明;一、數據庫的安全性1.4安全審計什么是審計?審計日志(AuditLog):將用戶對數據庫的所有操作記錄在上面;DBA利用審計日志:找出非法存取數據的人、時間和內容;C2以上安全級別的DBMS必須具有。1.4安全審計審計的分類:用戶級審計針對自己創(chuàng)建的數據庫表或視圖進行審計;記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作。系統(tǒng)級審計DBA設置;監(jiān)測成功或失敗的登錄要求;監(jiān)測GRANT和REVOKE操作以及其他數據庫級權限下的操作。審計SQL語句
AUDIT語句:設置審計功能
NOAUDIT語句:取消審計功能審計設置示例
AUDITALTER,UPDATEONSC;
NOAUDITALTER,UPDATEONSC;1.4安全審計一、數據庫的安全性1.5數據加密對數據庫中存儲的重要數據進行加密處理,以實現(xiàn)數據存儲的安全保護。數據加密以后,在數據庫表中存儲的是密文,系統(tǒng)管理員也不能見到明文,提高了關鍵數據的安全性。由于數據庫系統(tǒng)在操作系統(tǒng)下都是以文件形式進行管理的,因此入侵者可以直接利用操作系統(tǒng)的漏洞竊取數據庫文件,或者直接利用OS工具來非法偽造、篡改數據庫文件內容。數據加密可對敏感數據進行保護。1.5數據加密數據庫加密的層次OS層加密:在OS層無法辨認數據庫中的數據關系,從而無法產生合理的密鑰,對密鑰的管理和使用也很難。DBMS內核層加密:在物理存取之前完成數據的加/解密工作。優(yōu)點是加密功能強,可以實現(xiàn)加密功能與數據庫管理系統(tǒng)之間的無縫耦合。缺點是加密運算在服務器端進行,加重了服務器的負載,需要DBMS開發(fā)商的支持。DBMS外層加密:將數據庫加密系統(tǒng)做成DBMS的一個外層工具,根據加密要求自動完成對數據庫數據的加/解密處理。優(yōu)點是不會加重數據庫服務器的負載且可以實現(xiàn)網上的密文傳輸,缺點是加密功能會受到一些限制,與數據庫管理系統(tǒng)之間的耦合性稍差。DBMS外層加密原理數據庫加密系統(tǒng)分成兩個功能獨立的部件:加密字典管理程序、數據庫加/解密引擎。
加密字典用來保存用戶對數據庫信息的加密要求與基礎信息,通過調用數據加/解密引擎實現(xiàn)對數據庫表的加密、解密及數據轉換等功能。加/解密處理在后臺完成,對數據庫服務器是透明的。數據庫加/解密引擎由三大模塊組成:加/解密處理模塊、用戶接口模塊和數據庫接口模塊。優(yōu)點:①對最終用戶完全透明,管理員可根據需要進行明文和密文的轉換;②加密系統(tǒng)完全獨立于數據庫應用系統(tǒng);③加解密處理在客戶端進行,不會影響數據庫服務器的效率。
(分析:存在的問題!)1.5數據加密數據庫安全性練習1.創(chuàng)建角色r_oper,并授予其connect權限。2.將下列對象權限授予r_oper:dept表的select,insert,delete,update;majors表的全部權限;(allprivileges)students,sc,course表的select權限。3.新建用戶u10,將角色權限r_oper授予用戶u10。4.撤銷(收回)用戶u10的所有權限。5.刪除用戶u10。二、數據庫的完整性完整性概述實體完整性的定義與處理參照完整性的定義與處理用戶定義完整性的定義與處理完整性約束命名子句觸發(fā)器(Trigger)二、數據庫的完整性2.1完整性概述數據庫的完整性:數據的正確、有效和相容。完整性控制:采取有效手段,控制數據的取值,防止出現(xiàn)不符合應用語義的數據。DBMS對完整性控制的支持:完整性約束規(guī)則的定義;完整性檢查(數據更新時);違約處理(視不同情況)。2.2實體完整性的定義與處理定義:通過基本表中定義主碼實現(xiàn)。檢查與處理:
插入或對主碼列進行更新操作時,RDBMS按照實體完整性規(guī)則自動進行檢查。包括:1)
檢查主碼值是否唯一,如果不唯一則拒絕插入或修改。2)
檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入或修改。二、數據庫的完整性2.3參照完整性的定義與處理定義:通過基本表中定義外碼實現(xiàn)。檢查與處理:
二、數據庫的完整性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)檢查與處理:更新數據時,RDBMS檢查相關的約束條件是否被滿足,如果不滿足則操作被拒絕執(zhí)行。二、數據庫的完整性【例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));二、數據庫的完整性2.5完整性約束命名子句通過命名子句修改完整性定義[例]修改表Student中的約束條件。ALTERTABLEStudentDROPCONSTRAINTC1;
ALTERTABLEStudentADDCONSTRAINTC1CHECK(SnoBETWEEN900000AND999999);
ALTERTABLEStudentDROPCONSTRAINTC3;ALTERTABLEStudentADDCONSTRAINTC3CHECK(Sage<40);2.6觸發(fā)器(Trigger)
觸發(fā)器是由一系列SQL語句組成的動作體,當對數據庫做修改(包括插入、刪除和更新)時,它自動被系統(tǒng)執(zhí)行。
設置觸發(fā)器機制必須滿足的兩個條件:
①指明什么條件下觸發(fā)器被執(zhí)行,即觸發(fā)條件;
②指明觸發(fā)器執(zhí)行的動作是什么,即觸發(fā)什么。二、數據庫的完整性觸發(fā)器的利弊可以進行更為復雜的檢查和操作,具有更精細和更強大的數據控制能力,能夠保證數據庫的一致性;檢測和維護觸發(fā)器需要很大的開銷,降低了數據庫增、刪、改的效率!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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)租戶物業(yè)管理合同
- 張家港廠房出租合同
- 灑水車租賃合同
- 換熱站施工承包合同
- 鋼筋銷售合同
- 店鋪門面轉讓合同
- 三方商鋪租賃合同
- 房地產勞動合同臺賬明細
- 挖掘機設備租賃合同
- 2025年4月份辦公樓租賃合同新增的隔震溝維護條款
- 2025年江蘇建筑職業(yè)技術學院高職單招(數學)歷年真題考點含答案解析
- 配電工程施工方案
- 2025年深入貫徹中央八項規(guī)定精神學習教育知識競賽試題及答案
- 2025年中國計量器具市場調查研究報告
- 2025年吉林鐵道職業(yè)技術學院單招職業(yè)傾向性考試題庫必考題
- 《正定矩陣的應用分析》1400字
- 掛網噴播植草施工方案
- CNAS-CC190-2021 能源管理體系認證機構要求
- 牧運通備案辦理流程
- 中職高教版(2023)語文職業(yè)模塊-第三單元3.2簡單相信傻傻堅持【課件】
- 《企業(yè)安全生產培訓課件:個人防護裝備及使用》
評論
0/150
提交評論