第二章數(shù)據(jù)庫保護_第1頁
第二章數(shù)據(jù)庫保護_第2頁
第二章數(shù)據(jù)庫保護_第3頁
第二章數(shù)據(jù)庫保護_第4頁
第二章數(shù)據(jù)庫保護_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四節(jié)數(shù)據(jù)庫保護

安全性完整性并發(fā)控制恢復(fù)數(shù)據(jù)庫復(fù)制與數(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ù)庫的安全性數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。一、安全性安全模型

應(yīng)用DBMSOS

DB低高安全性控制層次方法:

用戶標(biāo)識和鑒定

存取控制審計視圖

操作系統(tǒng)安全保護

密碼存儲數(shù)據(jù)庫安全性控制的常用方法用戶標(biāo)識和鑒定存取控制視圖審計密碼存儲(數(shù)據(jù)加密)1.用戶標(biāo)識與鑒別(Identification&Authentication)系統(tǒng)提供的最外層安全保護措施基本方法系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份;系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識;每次用戶要求進入系統(tǒng)時,由系統(tǒng)核對用戶提供的身份標(biāo)識;通過鑒定后才提供機器使用權(quán)。用戶標(biāo)識和鑒定可以重復(fù)多次2.存取控制存取控制機制的組成定義存取權(quán)限在數(shù)據(jù)庫系統(tǒng)中,為了保證用戶只能訪問他有權(quán)存取的數(shù)據(jù),必須預(yù)先對每個用戶定義存取權(quán)限。(授權(quán))檢查存取權(quán)限對于通過鑒定獲得上機權(quán)的用戶(即合法用戶),系統(tǒng)根據(jù)他的存取權(quán)限定義對他的各種操作請求進行控制,確保他只執(zhí)行合法操作。存取權(quán)限的要素組成:數(shù)據(jù)對象和操作類型3.視圖機制視圖機制把要保密的數(shù)據(jù)對無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來。視圖機制與授權(quán)機制配合使用:首先用視圖機制屏蔽掉一部分保密數(shù)據(jù)然后在視圖上面再進一步定義存取權(quán)限4.審計什么是審計啟用一個專用的審計日志(AuditLog)將用戶對數(shù)據(jù)庫的所有操作記錄在上面DBA可以利用審計日志中的追蹤信息,找出非法存取數(shù)據(jù)的人審計功能的可選性審計很費時間和空間DBA可以根據(jù)應(yīng)用對安全性的要求,靈活地打開或關(guān)閉審計功能。5.數(shù)據(jù)加密數(shù)據(jù)加密防止數(shù)據(jù)庫中數(shù)據(jù)在存儲和傳輸中失密的有效手段加密的基本思想根據(jù)一定的算法將原始數(shù)據(jù)(術(shù)語為明文,Plaintext)變換為不可直接識別的格式(術(shù)語為密文,Ciphertext)不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容加密方法

替換方法使用密鑰(EncryptionKey)將明文中的每一個字符轉(zhuǎn)換為密文中的一個字符置換方法將明文的字符按不同的順序重新排列混合方法美國1977年制定的官方加密標(biāo)準(zhǔn):數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard,簡稱DES)數(shù)據(jù)加密功能通常也作為可選特征,允許用戶自由選擇數(shù)據(jù)加密與解密是比較費時的操作數(shù)據(jù)加密與解密程序會占用大量系統(tǒng)資源應(yīng)該只對高度機密的數(shù)據(jù)加密二、完整性(一)什么是數(shù)據(jù)庫的完整性數(shù)據(jù)的正確性和相容性防止不合語義的數(shù)據(jù)進入數(shù)據(jù)庫。安全性的防范對象:非法用戶和非法操作完整性的防范對象:合法用戶向數(shù)據(jù)庫中加入不合語義的數(shù)據(jù)例:學(xué)生的年齡必須是整數(shù),取值范圍為14--29;學(xué)生的性別只能是男或女;學(xué)生的學(xué)號一定是唯一的;學(xué)生所在的系必須是學(xué)校開設(shè)的系;完整性:是否真實地反映現(xiàn)實世界(二)完整性約束條件完整性約束條件:數(shù)據(jù)模型的組成部分,約束數(shù)據(jù)庫中數(shù)據(jù)的語義完整性約束條件作用的對象列:對屬性的取值類型、范圍、精度等的約束條件元組:對元組中各個屬性列間的聯(lián)系的約束關(guān)系:對若干元組間、關(guān)系集合上以及關(guān)系之間的聯(lián)系的約束完整性約束條件作用對象的狀態(tài)靜態(tài)對靜態(tài)對象的約束是反映數(shù)據(jù)庫狀態(tài)合理性的約束動態(tài)對動態(tài)對象的約束是反映數(shù)據(jù)庫狀態(tài)變遷的約束六類完整性約束條件(1)靜態(tài)列約束——對一個取值域的說明。(如成績:0~100)(2)靜態(tài)元組約束——規(guī)定一個元組的各個列之間的約束關(guān)系(如:發(fā)貨量<=庫存量)(3)靜態(tài)關(guān)系約束——規(guī)定一個關(guān)系內(nèi)各個元組之間或若干關(guān)系之間的聯(lián)系和約束(4)動態(tài)列級約束——修改列定義和列值時應(yīng)滿足的約束條件(5)動態(tài)元組約束——修改元組值時應(yīng)參照舊值,滿足新舊值之間的約束條件(6)動態(tài)關(guān)系約束——加在關(guān)系變化前后狀態(tài)上的限制條件。(三)完整性控制DBMS的完整性控制機制應(yīng)包括如下功能:(1)定義功能。提供定義完整性約束條件的機制。(2)檢查功能。檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。(3)保護措施。發(fā)現(xiàn)用戶的操作請求違背了完整性約束條件,采取一定的動作來保證數(shù)據(jù)的完整性。(三)并發(fā)控制針對多用戶同時存取同一數(shù)據(jù)時,若無并發(fā)控制,會破壞數(shù)據(jù)的一致性。1、并發(fā)控制概述事務(wù)—數(shù)據(jù)庫的邏輯工作單位,是用戶定義的一組數(shù)據(jù)操作的序列,并發(fā)控制是以事務(wù)為基本單位進行的。事務(wù)的四個屬性:原子性:一個事務(wù)是一個不可分割的工作單位一致性:事務(wù)必須能使數(shù)據(jù)庫從一個一致性狀態(tài)變到另外一個一致性狀態(tài)。隔離性:一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。持續(xù)性:一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久的。2、并發(fā)操作的調(diào)度通常使用封鎖的方法來保證調(diào)度的正確性,即保證并行操作的可串行性。封鎖—事務(wù)T在對某個數(shù)據(jù)操作之前,先向系統(tǒng)發(fā)出請求,對其進行加鎖,加鎖后事務(wù)T對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖前,其他事務(wù)不能更新此數(shù)據(jù)對象。封鎖類型有兩種:排他鎖(寫鎖)和共享鎖(讀鎖)(四)恢復(fù)1、恢復(fù)的原理(故障種類)事務(wù)故障—事務(wù)在運行過程中由于某種原因,使事務(wù)未運行到正常終止點就夭折了,即事務(wù)故障。解決辦法:在不影響其他事務(wù)運行的情況下,強行回滾該事務(wù),即清除該事務(wù)對數(shù)據(jù)庫的所有操作。系統(tǒng)故障—系統(tǒng)在運行過程中,由于某種原因,致使所有正在運行的事務(wù)都以非正常方式終止,使內(nèi)存中數(shù)據(jù)丟失,但是保留了外存儲器中的數(shù)據(jù)。解決辦法:強制撤銷所有未完成的事務(wù)。介質(zhì)故障—系統(tǒng)運行過程中,由于某種硬件故障,是外存中的數(shù)據(jù)部分丟失。解決辦法:裝入發(fā)生介質(zhì)故障前某時刻的數(shù)據(jù)副本,并重做此時開始的所有成功事務(wù)。2、恢復(fù)實現(xiàn)技術(shù)建立冗余數(shù)據(jù)

數(shù)據(jù)轉(zhuǎn)儲—將整個數(shù)據(jù)庫復(fù)制到另一個磁盤上日志文件—記錄數(shù)據(jù)庫的更新操作的文件,要先記日志再修改數(shù)據(jù)庫恢復(fù)策略

事務(wù)故障—反響掃描日志文件,查找該事務(wù)的更新操作->對更新操作執(zhí)行逆操作->繼續(xù)超找其它的更新,直到事務(wù)開始

系統(tǒng)故障—正向掃描日志文件找出故障前已經(jīng)提交的事務(wù),標(biāo)記重做;未完成的事務(wù),標(biāo)記撤銷->撤銷->重做

介質(zhì)故障—裝入最新的后備數(shù)據(jù)庫副本->裝入日志副本->正向掃描日志->重做第五節(jié)SQL語言SQL(StructuredQueryLanguage)即結(jié)構(gòu)化查詢語言,最早由Boyce和ChamBerlin在1974年提出,后經(jīng)美國國家標(biāo)準(zhǔn)局批準(zhǔn)為關(guān)系數(shù)據(jù)庫語言的美國標(biāo)準(zhǔn);1987年,國際標(biāo)準(zhǔn)化組織(ISO)正式將其作為國際關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,自此以后絕大多數(shù)關(guān)系數(shù)據(jù)庫都使用SQL作為數(shù)據(jù)存取語言和標(biāo)準(zhǔn)接口。SQL語言功能強大,但語言卻十分簡潔,易學(xué)易用。核心功能由幾個英語單詞就能完成,非常方便,主要包括:數(shù)據(jù)定義語言(DDL):用于定義數(shù)據(jù)表、字段以及索引等數(shù)據(jù)庫結(jié)構(gòu)。主要命令有CREATE、DROP、ALTER等。數(shù)據(jù)操縱語言(DML):用于提供數(shù)據(jù)查詢、增刪以及更新數(shù)據(jù)等功能。主要命令有SELECT、INSERT、UPDATE、DELETE等。數(shù)據(jù)控制語言(DCL):用于對用戶權(quán)限的控制。主要命令有GRANT、REVOKE等。一、SQL的數(shù)據(jù)定義功能1、建立表結(jié)構(gòu)【格式】CREATETABLETableName(FieldName1FieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKExpression1[ERRORcMessageText1]][DEFAULTExpression1][PRIMARYKEY|UNIQUE][,FieldName2...][,PRIMARYKEYExpression2TAGTagName2;|,UNIQUEExpression3TAGTagName3])例2-1創(chuàng)建一個學(xué)生信息表(結(jié)構(gòu)如下表所示)。列

名類

型長

度列

名類

型長

度學(xué)號字符型10出生日期日期型8姓名字符型10照片通用型4性別字符型2備注備注型4班級字符型20年齡整型42、添加字段【格式】ALTERTABLETableName1

ADDFieldNameFieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKExpression1[ERRORcMessageText1]][DEFAULTExpression1][PRIMARYKEY|UNIQUE]【例2-2】在【例2-1】建立的學(xué)生信息表中加入一個新數(shù)據(jù)字段:籍貫,字符型,20位,不允許為空。3、修改字段類型【格式】 ALTERTABLETableName1ALTERCOLUMNFieldNameFieldType[(nFieldWidth[,nPrecision])][NULL|NOTNULL][CHECKlExpression1[ERRORcMessageText1]][DEFAULTeExpression1][PRIMARYKEY|UNIQUE]【例2-3】將【例2-1】建立的學(xué)生信息表中的班級字段的數(shù)據(jù)長度改為40個字符,并不允許為空。4、重命名字段【格式】ALTERTABLETableName1RENAMECOLUMNFieldName1TOFieldName2【例2-4】將【例2-2】中添加的籍貫字段改名為住址。5、刪除字段【格式】ALTERTABLETableName1DROPCOLUMNFieldName1【例2-5】將改名后的住址字段刪除。二、SQL的數(shù)據(jù)操縱功能SQL的數(shù)據(jù)操縱功能主要包括:插入、刪除、更新和查詢數(shù)據(jù)表中的記錄。1.標(biāo)準(zhǔn)的插入記錄的方法【格式】 INSERTINTOTableName[(FieldName1[,FieldName2,...])]VALUES(eExpression1[,eExpression2,...])【例2-6】在學(xué)生信息表中插入一條記錄。2、刪除數(shù)據(jù)【格式】DELETEFROMTableName[WHERE<FilterCondition1>[AND|OR<FilterCondition2>...]]【例2-7】刪除學(xué)生信息表中姓名為“張三”的學(xué)生記錄。

3、更新數(shù)據(jù)【格式】

UPDATETableNameSETColumnName1=Expression1[,

ColumnName2=Expression2...][WHEREFilterCondition1[AND|ORFilterCondition2...]]【例2-8】將學(xué)生信息表中每位同學(xué)的年齡都增加1歲。4、SQL的數(shù)據(jù)查詢功能查詢是SQL功能中使用頻率最高、最能體現(xiàn)其靈活性的功能,用來得到特定條件下的記錄集合,通用語法如下。【格式】SELECT[ALL|DISTINCT]SelectListItem1[ASNewColumnName1][,SelectListItem2[ASNewColumnName2]...]FROMTableN

溫馨提示

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

評論

0/150

提交評論