《數(shù)據(jù)庫第七章》PPT課件_第1頁
《數(shù)據(jù)庫第七章》PPT課件_第2頁
《數(shù)據(jù)庫第七章》PPT課件_第3頁
《數(shù)據(jù)庫第七章》PPT課件_第4頁
《數(shù)據(jù)庫第七章》PPT課件_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2020/5/16,數(shù)據(jù)庫原理與應用技術,電子工業(yè)出版社,教學資源到華信教育資源網(wǎng)站或下載。,本章教學目標、重點和難點,教學目標:使學生掌握數(shù)據(jù)庫安全性控制方法,掌握數(shù)據(jù)庫完整性控制方法,了解數(shù)據(jù)庫并發(fā)控制的基本概念和方法,了解數(shù)據(jù)庫系統(tǒng)故障的種類,熟悉數(shù)據(jù)恢復的實現(xiàn)技術。教學重點:數(shù)據(jù)庫安全性控制,數(shù)據(jù)庫完整性約束條件及完整性控制的一般方法,并發(fā)控制的基本概念,封鎖及封鎖協(xié)議,數(shù)據(jù)恢復的實現(xiàn)技術。教學難點:用戶、角色和權限管理方法,數(shù)據(jù)庫完整性功能及實現(xiàn)方法,并發(fā)控制機制。,第7章數(shù)據(jù)庫保護技術,7.1數(shù)據(jù)庫安全性控制7.2數(shù)據(jù)庫完整性控制7.3數(shù)據(jù)庫并發(fā)控制7.4數(shù)據(jù)庫恢復技術,7.1數(shù)據(jù)庫安全性,數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,以防止不合法的使用造成的數(shù)據(jù)泄密、更改或破壞。7.1.1數(shù)據(jù)庫安全性控制的一般方法,用戶標識和鑒別存取控制操作系統(tǒng)安全保護密碼存儲,1.用戶標識與鑒別,(1)用輸入用戶名(用戶標識號)來標明用戶身份。系統(tǒng)內部記錄著所有合法用戶的標識。系統(tǒng)對輸入的用戶名與合法用戶名對照,鑒別此用戶是否為合法用戶。(2)通過回答口令標識用戶身份。系統(tǒng)常常要求用戶輸入口令,只有口令正確才能進入系統(tǒng)。為保密起見,口令由用戶自己定義并可以隨時變更。為防止口令被人竊取,用戶在終端上輸入口令時,不把口令的內容顯示在屏幕上,而用字符“*”替代其內容。(3)通過回答對隨機數(shù)的運算結果表明用戶身份。系統(tǒng)提供一個隨機數(shù),用戶根據(jù)預先約定的計算過程或計算函數(shù)進行計算,并將計算結果輸給到計算機。系統(tǒng)根據(jù)用戶計算結果判定用戶是否合法。,2.存取控制,(1)存取機制的構成。1)定義用戶權限,并將用戶權限登記到數(shù)據(jù)字典中。2)當用戶提出操作請求時,系統(tǒng)進行權限檢查,拒絕用戶的非法操作。(2)存取機制的類別。1)自主存取控制(DAC)。用戶對于不同的對象有不同的存取權限;不同的用戶對同一對象的存取權限也各不相同;用戶可將自己擁有的存取權限轉授給其他用戶。2)強制存取控制(MAC)。每一個數(shù)據(jù)對象被標以一定的密級;每一個用戶也被授予某一個級別的許可證;對于任意一個對象,只有具有合法許可證的用戶才可以存取。,3.自主存取控制方法,(1)關系中的用戶權限。用戶權限主要包括數(shù)據(jù)對象和操作類型兩個要素。定義用戶的存取權限稱為授權,通過授權規(guī)定用戶可以對哪些數(shù)據(jù)進行什么樣的操作。(2)SQL的數(shù)據(jù)控制功能。GRANT語句(授權)和REVOKE語句(收權)。1)數(shù)據(jù)對象的創(chuàng)建者自動獲得對于該數(shù)據(jù)對象的所有操作權限。2)獲得數(shù)據(jù)操作權的用戶可以通過GRANT語句把權限轉授給其他用戶。,(3)授權機制的性能。1)權限定義中數(shù)據(jù)對象范圍越小授權系統(tǒng)就越靈活。授權粒度越細,授權子系統(tǒng)就越靈活,但系統(tǒng)定義與檢查權限的開銷也會增大。2)權限定義中能夠謂詞的授權系統(tǒng)比較靈活。3)權限定義中能夠謂詞、且存取謂詞中能夠引用系統(tǒng)變量的授權系統(tǒng)更加靈活。(4)自主存取控制的不足之處。系統(tǒng)對權限的授予狀況無法進行有效的控制可能造成數(shù)據(jù)的無意泄露。,4.強制存取控制方法,(1)主體、客體及敏感度標記。主體是系統(tǒng)中的活動實體,它包括用戶和進程;客體是系統(tǒng)中的被動實體,包括基表、視圖等;DBMS為主體和客體的每個實例都設置一個敏感度標記,如絕密、機密、可信、公開;主體的敏感度標記稱為許可證級別,客體的敏感度標記稱為密級。(2)主體對客體的存取規(guī)則。1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體。2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體。(3)由DAC和MAC共同構成的安全機制。系統(tǒng)在安全檢察時,首先進行自主存取控制檢察,然后進行強制存取控制檢察,兩者都通過后,用戶才能執(zhí)行其數(shù)據(jù)存取操作。,5.視圖、審計和數(shù)據(jù)加密機制,視圖:為不同的用戶定義不同的視圖,通過視圖把數(shù)據(jù)對象限制在一定范圍內,把要保密的數(shù)據(jù)對無權存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。審計:把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,一旦發(fā)生數(shù)據(jù)被非法存取,DBA可以利用審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內容等。加密:根據(jù)一定的算法將原始數(shù)據(jù)(明文,Plaintext)變換為不可直接識別的格式(密文,Ciphertext),從而使得不知道解密算法的人無法獲得數(shù)據(jù)的內容。,1)替換方法。使用密鑰將明文中的每一個字符轉換為密文中的字符。2)置換方法。僅將明文的字符按不同的順序重新排列。,加密方法主要有兩種:,7.1.2SQLServer的安全體系結構1.SQLServer的安全體系結構,(1)WindowsNT操作系統(tǒng)的安全防線:建立用戶組,設置帳號并注冊,同時決定不同的用戶對不同系統(tǒng)資源的訪問級別。(2)SQLServer的運行安全防線:通過另一種帳號設置來創(chuàng)建附加安全層。(3)SQLServer數(shù)據(jù)庫的安全防線:特定數(shù)據(jù)庫都有自己的用戶和角色,該數(shù)據(jù)庫只能由它的用戶或角色訪問,其他用戶無權訪問其數(shù)據(jù)。(4)SQLServer數(shù)據(jù)庫對象的安全防線:對權限進行管理,保證合法用戶既使進入了數(shù)據(jù)庫也不能有超越權限的數(shù)據(jù)存取操作,即合法用戶必須在自己的權限范圍內進行數(shù)據(jù)操作。,2.SQLServer的安全認證模式,(1)Windows(S)安全認證模式通過使用Windows網(wǎng)絡用戶的安全性來控制用戶對SQL服務器的登錄訪問。它允許一個網(wǎng)絡用戶登錄到一個SQL服務器上時不必再提供一個單獨的登錄帳號及口令。(2)混合安全認證模式如果用戶網(wǎng)絡協(xié)議支持可信任連接,則可使用Windows(S)安全模式;如果用戶網(wǎng)絡協(xié)議不支持可信任連接,則在Windows(S)安全認證模式下會登錄失敗,SQLServer安全認證模式將有效。SQLServer安全認證模式要求用戶必須輸入有效的SQLServer登錄帳號及口令。,3.設置SQLServer的安全認證模式,1)在企業(yè)管理器中,擴展開SQL服務器組,右鍵擊SQL服務器,在彈出單中選擇“屬性”項.2)在屬性對話框中,選擇“安全性”選項卡。3)在安全性欄選擇安全認證模式。,7.1.3SQLServer的用戶和角色管理,1.登錄的管理登錄(亦稱Login用戶)通過帳號和口令訪問SQLServer的數(shù)據(jù)庫。(1)查看安全性文件夾的內容進入企業(yè)管理器,打開SQL服務器,選擇安全性文件夾。,(2)創(chuàng)建一個登錄用戶,用右鍵擊登錄文件夾,在彈出單中選擇“新建登錄”,出現(xiàn)登錄屬性對話框。;選擇常規(guī)選項卡,輸入用戶的一般特征;選擇服務器角色選項卡,確定用戶所屬服務器角色;選擇數(shù)據(jù)庫訪問選項卡,確定用戶能訪問的數(shù)據(jù)庫和所屬的數(shù)據(jù)庫角色。,2.數(shù)據(jù)庫用戶的管理,(1)dbo用戶:數(shù)據(jù)庫擁有者或數(shù)據(jù)庫創(chuàng)建者,在其所擁有的數(shù)據(jù)庫中擁有所有的操作權限。dbo的身份可被重新分配給另一個用戶,系統(tǒng)管理員Sa可以作為他所管理系統(tǒng)的任何數(shù)據(jù)庫的dbo用戶。(2)guest用戶:如果guest用戶在數(shù)據(jù)庫存在,則允許任意一個登錄用戶作為guest用戶訪問數(shù)據(jù)庫??梢詫⒆约簲?shù)據(jù)庫的guest用戶刪除,以防止非數(shù)據(jù)庫用戶的登錄用戶對數(shù)據(jù)庫進行訪問。,(3)創(chuàng)建新的數(shù)據(jù)庫用戶,1)在企業(yè)管理器中,右擊用戶文件夾,在彈出單中選擇“新建數(shù)據(jù)庫用戶”;2)在登錄名欄中,選擇SQL服務器登錄用戶名,在用戶名欄中輸入數(shù)據(jù)庫用戶名。在數(shù)據(jù)庫角色欄中選擇參加的角色。,3.數(shù)據(jù)庫角色的管理(1)在數(shù)據(jù)庫角色中增加或移去用戶,1)展開SQL服務器、數(shù)據(jù)庫文件夾,選中角色文件夾。2)用選中要加入的角色,右擊它,在彈出單中選擇“屬性”。3)單擊“添加”按鈕后,出現(xiàn)選擇該數(shù)據(jù)庫用戶的對話框,選擇要加入角色的用戶,單擊“確定”。4)要移走一個用戶,在用戶欄中選中它,后單擊“刪除”。,(2)創(chuàng)建新的數(shù)據(jù)庫角色,1)打開SQL服務器組、服務器的數(shù)據(jù)庫文件夾。2)選中角色子文件夾,右擊任意角色,在彈出單中選擇“新建數(shù)據(jù)庫角色”。3)輸入新角色名;在用戶欄增加或移去角色的用戶;確定角色的類型。,7.1.4SQLServer的權限管理1.SQLServer權限種類:對象權限和語句權限,2.對象權限的管理,1)選中一個數(shù)據(jù)庫對象。擊鼠標右鍵,使之彈出菜單。2)選擇“全部任務”中的“管理權限”項。出現(xiàn)對象權限對話框。3)選擇“列出全部用戶/用戶定義的數(shù)據(jù)庫角色”項,或選擇“僅列出對此對象具有權限的用戶/用戶定義的數(shù)據(jù)庫角色”項。4)在權限表中對各用戶或角色的各種對象操作權授予或撤消。,3.語句權限的管理,1)用鼠標右鍵擊指定的數(shù)據(jù)庫文件夾。出現(xiàn)數(shù)據(jù)庫屬性對話框。2)選擇“權限”選項卡,單擊表中的各復選小方塊可分別對各用戶或角色授予、撤消和廢除數(shù)據(jù)庫的語句操作權限。,7.2數(shù)據(jù)庫完整性7.2.1完整性約束條件及完整性控制,數(shù)據(jù)完整性約束可以分為:表級約束,若干元組間、關系中以及關系之間聯(lián)系的約束;元組級約束,元組中的字段組和字段間聯(lián)系的約束;屬性級約束,針對列的類型、取值范圍、精度、排序等而制定的約束條件。完整性約束分為:靜態(tài)約束,數(shù)據(jù)庫每一確定狀態(tài)時的數(shù)據(jù)對象所應滿足的約束條件;動態(tài)約束,數(shù)據(jù)庫從一種狀態(tài)轉變?yōu)榱硪环N狀態(tài)時,新、舊值之間所應滿足的約束條件,1.完整性控制機制的功能及執(zhí)行約束,(1)完整性控制機制應具有的功能。1)定義完整性功能,提供定義完整性約束條件的機制。2)檢查完整性功能,檢查用戶發(fā)出的操作請求,看其是否違背了完整性約束條件。3)控制完整性功能,監(jiān)視數(shù)據(jù)操作的整個過程,如果發(fā)現(xiàn)有違背了完整性約束條件的情況,則采取一定的動作來保證數(shù)據(jù)的完整性。(2)立即執(zhí)行約束和延遲執(zhí)行約束。有關數(shù)據(jù)操作語句執(zhí)行完后立即進行完整性檢查為立即執(zhí)行約束;在整個事務執(zhí)行結束后再進行完整性檢查為延遲執(zhí)行約束。,2.實現(xiàn)參照完整性要考慮的幾個問題,(1)外碼能夠接受空值的問題。(2)在被參照關系中刪除元組的問題。1)級聯(lián)刪除:將外碼表中所有外碼值與主碼表中要刪除的元組主碼值相同的元組一起刪除。如果外碼表同時又是另一個關系的主碼表,則這種刪除操作會繼續(xù)級聯(lián)下去。2)受限刪除:僅當外碼表中沒有任何元組的外碼值與主碼表中要刪除元組的主碼值相同時,系統(tǒng)才執(zhí)行刪除操作,否則拒絕此刪除操作。3)置空值刪除:刪除主碼表的元組,并將外碼表中相應元組的外碼值置空值。,(3)在參照關系中插入元組時的問題。1)受限插入。僅當主碼表存在相應的元組,其主碼值與外碼表插入元組的外碼值相同時,系統(tǒng)才執(zhí)行插入操作,否則拒絕此操作。2)遞歸插入。該策略首先在主碼表中插入相應的元組,其主碼值等于外碼表插入元組的外碼值,然后向外碼表插入元組。(4)修改關系的主碼問題。1)不允許修改主碼。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關系中。2)允許修改主碼。允許修改關系主碼,但必須保證主碼的唯一性和非空,否則拒絕修改。,(5)修改表是被參照關系的問題。1)級聯(lián)修改。如果要修改主碼表中的某個元組的主碼值,則外碼表中相應的外碼值也作相應的修改。2)拒絕修改。如果外碼表中,有外碼值與主碼表中要修改的主碼值相同的元組,則拒絕修改。3)置空值修改。修改主碼表的元組,并將外碼表中相應元組的外碼值置空值。,7.2.2SQLServer的數(shù)據(jù)庫完整性及實現(xiàn)方法,1.SQLServer的數(shù)據(jù)完整性的種類(1)域完整性。域完整性為列級和元組級完整性。它為列或列組指定一個有效的數(shù)據(jù)集,并確定該列是否允許為空。(2)實體完整性。實體完整性為表級完整性,它要求表中所有的元組都應該有一個惟一的標識符,這個標識符就是平常所說的主碼。(3)參照完整性。參照完整性是表級完整性,它維護參照表中的外碼與被參照表中主碼的相容關系。如果在被參照表中某一元組被外碼參照,那么這一行既不能被刪除,也不能更改其主碼。,2.SQLServer數(shù)據(jù)完整性的兩種方式,(1)聲明數(shù)據(jù)完整性:通過在對象定義中定義、系統(tǒng)本身自動強制來實現(xiàn)。聲明數(shù)據(jù)完整性包括各種約束、缺省和規(guī)則。(2)過程數(shù)據(jù)完整性:通過使用腳本語言。,7.3數(shù)據(jù)庫并發(fā)控制,控制數(shù)據(jù)庫,防止多用戶并發(fā)使用數(shù)據(jù)庫時造成數(shù)據(jù)錯誤和程序運行錯誤,保證數(shù)據(jù)的完整性。7.3.1事務及并發(fā)控制的基本概念1.事務的概念事務是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。在SQL語言中,定義事務的語句有三條:BEGINTRANSACTION;COMMIT;ROLLBACK;,2.事務并發(fā)操作可能產生的數(shù)據(jù)不一致問題,T1,(a)丟失數(shù)據(jù)(b)不可重復讀(c)讀“臟”數(shù)據(jù),7.3.2封鎖及封鎖協(xié)議,封鎖是使事務對它要操作的數(shù)據(jù)有一定的控制能力。封鎖具有3個環(huán)節(jié):申請加鎖,事務在操作前要對它將使用的數(shù)據(jù)提出加鎖請求;獲得鎖,當條件成熟時,系統(tǒng)允許事務對數(shù)據(jù)加鎖,從而事務獲得數(shù)據(jù)的控制權;釋放鎖,完成操作后事務放棄數(shù)據(jù)的控制權。,1.鎖的類型,(1)排它鎖(ExclusiveLocks,簡稱X鎖)。稱為獨占鎖或寫鎖。一旦事務T對數(shù)據(jù)對象A加上排它鎖(X鎖),則只允許T讀取和修改A,其他任何事務既不能讀取和修改A,也不能再對A加任何類型的鎖,直到T釋放A上的鎖為止。(2)共享鎖(ShareLocks,簡稱S鎖)。又稱讀鎖。如果事務T對數(shù)據(jù)對象A加上共享鎖(S鎖),其他事務只能再對A加S鎖,不能加X鎖,直到事務T釋放A上的S鎖為止。,2.封鎖協(xié)議,(1)一級封鎖協(xié)議:事務T在修改數(shù)據(jù)之前必須先對其加X鎖,直到事務結束才釋放。(2)二級封鎖協(xié)議:事務T對要修改數(shù)據(jù)必須先加X鎖,直到事務結束才釋放X鎖;對要讀取的數(shù)據(jù)必須先加S鎖,讀完后即可釋放S鎖。(3)三級封鎖協(xié)議:事務T在讀取數(shù)據(jù)之前必須先對其加S鎖,在要修改數(shù)據(jù)之前必須先對其加X鎖,直到事務結束后才釋放所有鎖。,(a)沒有丟失修改(b)可重復讀(c)不讀“臟”數(shù)據(jù),用封鎖機制解決三種數(shù)據(jù)不一致性的例子,7.3.3封鎖出現(xiàn)的問題及解決方法,1.活鎖和死鎖(1)活鎖:在多個事務請求對同一數(shù)據(jù)封鎖時,總是使某一用戶等待的情況稱為活鎖。解決活鎖的方法是采用先來先服務的方法,即對要求封鎖數(shù)據(jù)的事務排隊,使前面的事務先獲得數(shù)據(jù)的封鎖權。(2)死鎖:多事務交錯等待的僵持局面稱為死鎖。解決死鎖有兩類方法:一是采用一定措施來預防死鎖的發(fā)生;二是采用一定手段定期診斷系統(tǒng)中有無死鎖,若有則解除之。防死鎖通常有兩種方法:1)一次封鎖法:要求每個事務必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則該事務不能繼續(xù)執(zhí)行。2)順序封鎖法:預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都按這個順序實行封鎖。,2.并發(fā)調度的可串行性和,多個事務并發(fā)執(zhí)行的結果與按串行執(zhí)行的結果相同,這種調度策略稱為可串行化(Serializable)的調度,反之稱為不可串行化調度。3.兩段鎖協(xié)議1)在對任何數(shù)據(jù)進行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖。2)在釋放一個封鎖之后,事務不再申請并獲得對該數(shù)據(jù)的封鎖。,7.4數(shù)據(jù)庫恢復技術7.4.1故障的種類,1.事務內部的故障:有的是可以通過事務程序本身發(fā)現(xiàn)的,但是更多的則是非預期的,它們不能由事務處理程序處理。例如運算溢出、并發(fā)事務發(fā)生死鎖而被選中撤消該事務、違反了某些完整性限制等。2.系統(tǒng)故障:造成系統(tǒng)停止運轉的任何事件,從而使得系統(tǒng)必須重新啟動。3.介質故障:外存故障,例如磁盤損壞、磁頭碰撞,瞬時磁場干擾等。4.計算機病毒:一種人為的故障或破壞。5.用戶操作錯誤:由于用戶有意或無意的操作也可能刪除數(shù)據(jù)庫中的有用的數(shù)據(jù)或加入錯誤的數(shù)據(jù),這同樣會造成一些潛在的故障。,7.4.2數(shù)據(jù)恢復的實現(xiàn)技術,1.數(shù)據(jù)轉儲(1)靜態(tài)轉儲和動態(tài)轉儲。(2)海量轉儲和增量轉儲。2.登記日志文件(Logging)(1)日志文件的格式和內容。日志文件是用來記錄對數(shù)據(jù)庫的更新操作的文件。(2)日志文件的作用。日志文件的主要用于數(shù)據(jù)庫恢復。當數(shù)據(jù)庫文件毀壞后,可重新裝入后援副本把數(shù)據(jù)庫恢復到轉儲結束時刻的正確狀態(tài),再利用日志文件,把已完成的事務進行重做處理。,7.4.3SQLServer的數(shù)據(jù)備份和恢復機制,1.SQLServer的備份形式和操作方式(1)三種備份形式。1)完全備份:海量備份,將數(shù)據(jù)庫

溫馨提示

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

評論

0/150

提交評論