版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用DB1第第6章章 數(shù)據(jù)庫(kù)保護(hù)機(jī)制數(shù)據(jù)庫(kù)保護(hù)機(jī)制 完整性控制完整性控制安全性控制安全性控制并發(fā)控制并發(fā)控制數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)恢復(fù)本章主要內(nèi)容:本章主要內(nèi)容:2第第6章章 數(shù)據(jù)庫(kù)保護(hù)機(jī)制數(shù)據(jù)庫(kù)保護(hù)機(jī)制數(shù)據(jù)庫(kù)中存放著大量的有價(jià)值的信息,因此采用怎數(shù)據(jù)庫(kù)中存放著大量的有價(jià)值的信息,因此采用怎樣行之有效的措施保護(hù)數(shù)據(jù)庫(kù)是非常重要的。樣行之有效的措施保護(hù)數(shù)據(jù)庫(kù)是非常重要的。比如,保護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)的正確性、有效性,保護(hù)數(shù)比如,保護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)的正確性、有效性,保護(hù)數(shù)據(jù)庫(kù)安全性,保護(hù)數(shù)據(jù)庫(kù)既使是出現(xiàn)各種故障據(jù)庫(kù)安全性,保護(hù)數(shù)據(jù)庫(kù)既使是出現(xiàn)各種故障 ,也,也能對(duì)其進(jìn)行有效地恢復(fù)等等。
2、能對(duì)其進(jìn)行有效地恢復(fù)等等。36.1 數(shù)據(jù)庫(kù)的完整性數(shù)據(jù)庫(kù)的完整性數(shù)據(jù)庫(kù)的完整性數(shù)據(jù)庫(kù)的完整性指數(shù)據(jù)的正確性和有效性指數(shù)據(jù)的正確性和有效性 。 數(shù)據(jù)庫(kù)的完整性是為了防止數(shù)據(jù)庫(kù)中存在數(shù)據(jù)庫(kù)的完整性是為了防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出,和輸出,即所謂即所謂“垃圾進(jìn)垃圾出垃圾進(jìn)垃圾出”所造成所造成的無(wú)效操作和錯(cuò)誤結(jié)果。的無(wú)效操作和錯(cuò)誤結(jié)果。 數(shù)據(jù)庫(kù)是否具備完整性關(guān)系到數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)是否具備完整性關(guān)系到數(shù)據(jù)庫(kù)系統(tǒng)能否真實(shí)地反映現(xiàn)實(shí)世界,因此維護(hù)數(shù)據(jù)能否真實(shí)地反映現(xiàn)實(shí)世界,因此維護(hù)數(shù)據(jù)庫(kù)完整性是非常重要的。庫(kù)完整性是非常重要的。46.1 數(shù)
3、據(jù)庫(kù)的完整性數(shù)據(jù)庫(kù)的完整性 數(shù)據(jù)庫(kù)的完整性是由數(shù)據(jù)庫(kù)的完整性是由DBMS的完整性控制子系的完整性控制子系統(tǒng)實(shí)現(xiàn)的。統(tǒng)實(shí)現(xiàn)的。其主要功能為其主要功能為: :1.完整性檢查功能完整性檢查功能。檢查用戶發(fā)出的操作請(qǐng)求是。檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件否違背了完整性約束條件;2.2.應(yīng)對(duì)操作應(yīng)對(duì)操作。如果發(fā)現(xiàn)用戶操作違背了完整性規(guī)。如果發(fā)現(xiàn)用戶操作違背了完整性規(guī)則,為保證數(shù)據(jù)的完整性而采取的則,為保證數(shù)據(jù)的完整性而采取的動(dòng)作動(dòng)作。( (如撤如撤銷用戶操作銷用戶操作) ) 56.1.1 完整性規(guī)則完整性規(guī)則 完整性規(guī)則完整性規(guī)則是指附加在數(shù)據(jù)庫(kù)數(shù)據(jù)上的語(yǔ)義約是指附加在數(shù)據(jù)庫(kù)數(shù)據(jù)上的語(yǔ)義約
4、束條件。束條件。 每一條完整性規(guī)則包括每一條完整性規(guī)則包括3個(gè)部分個(gè)部分:(1)觸發(fā)條件:確定什么操作使用規(guī)則進(jìn)行檢查;觸發(fā)條件:確定什么操作使用規(guī)則進(jìn)行檢查;(2)約束條件約束條件: 確定要檢查什么樣的錯(cuò)誤;確定要檢查什么樣的錯(cuò)誤;(3)應(yīng)對(duì)措施:確定如果查出錯(cuò)誤該怎么處理。應(yīng)對(duì)措施:確定如果查出錯(cuò)誤該怎么處理。完整性規(guī)則作用的對(duì)象可以是關(guān)系、元組和列。完整性規(guī)則作用的對(duì)象可以是關(guān)系、元組和列。66.1.2 SQL Server的完整性的完整性本節(jié)介紹本節(jié)介紹SQL Server的完整性控制策略。的完整性控制策略。SQL Server數(shù)據(jù)完整性有四種類型數(shù)據(jù)完整性有四種類型: 實(shí)體完整性、域
5、完整性、實(shí)體完整性、域完整性、 參照完整性、用戶定義完整性參照完整性、用戶定義完整性71. 實(shí)體完整性實(shí)體完整性構(gòu)成主鍵的主屬性不能取空值構(gòu)成主鍵的主屬性不能取空值 。體現(xiàn)為:。體現(xiàn)為: UNIQUE唯一性約束(不允許為唯一性約束(不允許為null) PRIMARY KEY 約束(不允許為約束(不允許為null)例:例: CREATE TABLE 選課選課 (學(xué)號(hào)學(xué)號(hào) CHAR(6) , , PRIMARY KEY(學(xué)號(hào)學(xué)號(hào),課號(hào)課號(hào)) , )或或 CREATE TABLE 學(xué)生學(xué)生 (學(xué)號(hào)學(xué)號(hào) CHAR(6) UNIQUE,)6.1.2 SQL Server的完整性的完整性82. 域完整性域
6、完整性 屬性列屬性列(字段字段)滿足的約束條件。體現(xiàn)為:滿足的約束條件。體現(xiàn)為:(1)對(duì)數(shù)據(jù)類型的約束對(duì)數(shù)據(jù)類型的約束:包括數(shù)據(jù)的類型、長(zhǎng)包括數(shù)據(jù)的類型、長(zhǎng)度、單位、精度等。度、單位、精度等。(2)對(duì)數(shù)據(jù)格式的約束對(duì)數(shù)據(jù)格式的約束 例例:規(guī)定學(xué)號(hào)的前兩位表示入學(xué)年份,中:規(guī)定學(xué)號(hào)的前兩位表示入學(xué)年份,中間兩位表示系的編號(hào),后四位班級(jí)和序號(hào),間兩位表示系的編號(hào),后四位班級(jí)和序號(hào),xxxxxxxxxxxxxxxx。 出生日期:出生日期:YY-MM-DD YY-MM-DD 6.1.2 SQL Server的完整性的完整性9(3)對(duì)取值范圍或取值集合的約束對(duì)取值范圍或取值集合的約束. 例如例如:規(guī)定成
7、績(jī)的取值范圍為:規(guī)定成績(jī)的取值范圍為0100 域級(jí)域級(jí)check子句子句(4)對(duì)空值的約束對(duì)空值的約束:有的列允許取空值,有的有的列允許取空值,有的列不允許取空值。列不允許取空值。 (5)設(shè)置默認(rèn)值設(shè)置默認(rèn)值default約束。約束。6.1.2 SQL Server的完整性的完整性103. 參照完整性參照完整性(外鍵完整性外鍵完整性) 兩個(gè)表之間滿足的參照兩個(gè)表之間滿足的參照(引用引用)關(guān)系的約束。關(guān)系的約束。即:外鍵表中外鍵的取值參照主鍵表中主即:外鍵表中外鍵的取值參照主鍵表中主鍵的值鍵的值 。 體現(xiàn)為:體現(xiàn)為: CREATE TABLE 選課選課 (. , FOREIGN KEY(學(xué)號(hào)學(xué)號(hào)
8、) REFERENCES 學(xué)生學(xué)生(學(xué)號(hào)學(xué)號(hào)) ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION, )6.1.2 SQL Server的完整性的完整性說(shuō)明說(shuō)明:CASCADE:級(jí)聯(lián),級(jí)聯(lián),NO ACTION:受限:受限(默認(rèn)默認(rèn))114. 用戶定義完整性用戶定義完整性 用戶定義完整性是針對(duì)應(yīng)用業(yè)務(wù)需要而定用戶定義完整性是針對(duì)應(yīng)用業(yè)務(wù)需要而定義的完整性約束條件。義的完整性約束條件。體現(xiàn)為:體現(xiàn)為: (1) 表定義語(yǔ)句中的表定義語(yǔ)句中的CHECK子句子句 (2) 觸發(fā)器觸發(fā)器 (3) 規(guī)則(下節(jié)介紹)規(guī)則(下節(jié)介紹)6.1.2
9、SQL Server的完整性的完整性126.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性 一般不是很復(fù)雜的完整性約束都是在一般不是很復(fù)雜的完整性約束都是在create table語(yǔ)句中定義。更復(fù)雜的完整性語(yǔ)句中定義。更復(fù)雜的完整性實(shí)現(xiàn)要用觸發(fā)器和規(guī)則。實(shí)現(xiàn)要用觸發(fā)器和規(guī)則。 定義表時(shí)沒(méi)有定義的約束,可以在以后通定義表時(shí)沒(méi)有定義的約束,可以在以后通過(guò)創(chuàng)建觸發(fā)器和規(guī)則來(lái)實(shí)現(xiàn)。過(guò)創(chuàng)建觸發(fā)器和規(guī)則來(lái)實(shí)現(xiàn)。 check約束優(yōu)先于觸發(fā)器約束和規(guī)則約束執(zhí)約束優(yōu)先于觸發(fā)器約束和規(guī)則約束執(zhí)行。行。13*1. 使用規(guī)則實(shí)現(xiàn)完整性使用規(guī)則實(shí)現(xiàn)完整性 規(guī)則規(guī)則是獨(dú)立于表的單獨(dú)定義、存儲(chǔ)的數(shù)據(jù)是獨(dú)立于表
10、的單獨(dú)定義、存儲(chǔ)的數(shù)據(jù)庫(kù)對(duì)象。庫(kù)對(duì)象。CREATE RULE 規(guī)則名規(guī)則名 AS 約束表達(dá)式約束表達(dá)式規(guī)則中規(guī)則中可以是能用于可以是能用于WHERE子句中的任何表達(dá)式。子句中的任何表達(dá)式。如如: 創(chuàng)建規(guī)則創(chuàng)建規(guī)則6.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性14 Birthday=1980-01-01 AND Birthday=GETDATE( ) grade IN(a,A, B,b, C,c, D,d) code LIKE a-z%0-9 例例1 創(chuàng)建創(chuàng)建sno_rule規(guī)則,使得學(xué)號(hào)只能是規(guī)則,使得學(xué)號(hào)只能是6位位數(shù)字字符。數(shù)字字符。 CREATE RULE sno_ru
11、le AS sno LIKE 0-90-90-90-90-90-9 6.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性15 規(guī)則的綁定規(guī)則的綁定 創(chuàng)建好規(guī)則后,規(guī)則只是存儲(chǔ)在數(shù)據(jù)庫(kù)中的對(duì)象創(chuàng)建好規(guī)則后,規(guī)則只是存儲(chǔ)在數(shù)據(jù)庫(kù)中的對(duì)象并沒(méi)有發(fā)生作用,只有將規(guī)則綁定到相應(yīng)表的屬并沒(méi)有發(fā)生作用,只有將規(guī)則綁定到相應(yīng)表的屬性列,才能實(shí)現(xiàn)完整性約束。性列,才能實(shí)現(xiàn)完整性約束。 用存儲(chǔ)過(guò)程用存儲(chǔ)過(guò)程sp_bindrule綁定規(guī)則。綁定規(guī)則。語(yǔ)法格式:語(yǔ)法格式:sp_bindrule 規(guī)則名規(guī)則名, 對(duì)象名對(duì)象名 例例2 將規(guī)則將規(guī)則sno_rule綁定到學(xué)生表的學(xué)號(hào)屬性綁定到學(xué)生表的學(xué)號(hào)屬性列
12、上。列上。 sp_bindrule sno_rule 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào)6.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性16 規(guī)則的松綁規(guī)則的松綁 規(guī)則綁定后,可以解除,即松綁。規(guī)則綁定后,可以解除,即松綁。 用存儲(chǔ)過(guò)程用存儲(chǔ)過(guò)程sp_unbindrule為規(guī)則松綁。為規(guī)則松綁。 語(yǔ)法格式:語(yǔ)法格式:sp_unbindrule 對(duì)象名對(duì)象名例例3 解除規(guī)則解除規(guī)則sno_rule在學(xué)生表的學(xué)號(hào)屬性列在學(xué)生表的學(xué)號(hào)屬性列上的綁定。上的綁定。 sp_unbindrule 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào)6.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性17 刪除規(guī)則刪除規(guī)則 DRO
13、P RULE 規(guī)則名規(guī)則名1,規(guī)則規(guī)則2, 注意注意:在刪除規(guī)則前,必須先將其從約束對(duì):在刪除規(guī)則前,必須先將其從約束對(duì)象上解除。象上解除。6.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性182. 使用觸發(fā)器實(shí)現(xiàn)完整性使用觸發(fā)器實(shí)現(xiàn)完整性 前面介紹的一些約束機(jī)制,屬于被動(dòng)的約束機(jī)制。在檢查出對(duì)數(shù)據(jù)庫(kù)的操作違反約束后,只能做些比較簡(jiǎn)單的動(dòng)作,比如拒絕操作。 如果我們需要產(chǎn)生比規(guī)則更為復(fù)雜的限制,希望在某個(gè)操作后,系統(tǒng)能自動(dòng)根據(jù)條件轉(zhuǎn)去執(zhí)行各種操作,甚至執(zhí)行與原操作無(wú)關(guān)的操作,那么可以用觸發(fā)器機(jī)制來(lái)實(shí)現(xiàn)。 第第5章已經(jīng)介紹過(guò)觸發(fā)器建立和使用。這里我們?cè)僬乱呀?jīng)介紹過(guò)觸發(fā)器建立和使用。
14、這里我們?cè)?進(jìn)一步舉例說(shuō)明。進(jìn)一步舉例說(shuō)明。6.1.3 使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性使用規(guī)則和觸發(fā)器實(shí)現(xiàn)完整性196.2 安全性控制安全性控制6.2.1 安全性概述安全性概述1. 數(shù)據(jù)庫(kù)安全性的定義數(shù)據(jù)庫(kù)安全性的定義數(shù)據(jù)庫(kù)安全性數(shù)據(jù)庫(kù)安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用造成的數(shù)據(jù)泄露、更改或破壞的使用造成的數(shù)據(jù)泄露、更改或破壞。 所有計(jì)算機(jī)系統(tǒng)都有安全性問(wèn)題。由于數(shù)所有計(jì)算機(jī)系統(tǒng)都有安全性問(wèn)題。由于數(shù)據(jù)庫(kù)中存放大量有用信息,從而使安全性據(jù)庫(kù)中存放大量有用信息,從而使安全性問(wèn)題更為突出。系統(tǒng)安全性保護(hù)措施是否問(wèn)題更為突出。系統(tǒng)安全性保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要性能
15、指標(biāo)之一。有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要性能指標(biāo)之一。20遠(yuǎn)程客戶遠(yuǎn)程客戶加密加密加密加密防火墻防火墻不安全的外網(wǎng)不安全的外網(wǎng)( 如如internet )DBMS授權(quán)控制授權(quán)控制安全的內(nèi)網(wǎng)安全的內(nèi)網(wǎng)(intranet)本地客戶本地客戶DBOS訪問(wèn)控制訪問(wèn)控制圖圖6.1 典型的多用戶數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)環(huán)境典型的多用戶數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)環(huán)境 數(shù)據(jù)庫(kù)系統(tǒng)的安全性依賴于其所在的計(jì)算機(jī)和網(wǎng)數(shù)據(jù)庫(kù)系統(tǒng)的安全性依賴于其所在的計(jì)算機(jī)和網(wǎng)絡(luò)環(huán)境的安全性絡(luò)環(huán)境的安全性。見(jiàn)下圖。見(jiàn)下圖。216.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法1. 用戶標(biāo)識(shí)與鑒定用戶標(biāo)識(shí)與鑒定 用戶標(biāo)識(shí)與鑒別是用戶標(biāo)識(shí)與鑒別是DBMS提
16、供的最外層安提供的最外層安全性保護(hù)措施。用戶只有通過(guò)鑒定后才被全性保護(hù)措施。用戶只有通過(guò)鑒定后才被獲得系統(tǒng)最外層的權(quán)限。獲得系統(tǒng)最外層的權(quán)限。 用戶標(biāo)識(shí)與鑒定的方法很多用戶標(biāo)識(shí)與鑒定的方法很多, 常用的有:常用的有:(1)身份認(rèn)證身份認(rèn)證: 是系統(tǒng)為用戶定義的用戶名是系統(tǒng)為用戶定義的用戶名, 指指用戶標(biāo)識(shí)用戶標(biāo)識(shí)用戶用戶ID用戶賬號(hào)。用戶賬號(hào)。(2) 口令口令:往往與身份認(rèn)證一起使用。:往往與身份認(rèn)證一起使用。22(3)隨機(jī)運(yùn)算認(rèn)證隨機(jī)運(yùn)算認(rèn)證:指非固定口令認(rèn)證,即用:指非固定口令認(rèn)證,即用戶每次的口令都不一樣。鑒別時(shí)系統(tǒng)提供戶每次的口令都不一樣。鑒別時(shí)系統(tǒng)提供一個(gè)隨機(jī)數(shù),用戶根據(jù)預(yù)先約定好的
17、計(jì)算一個(gè)隨機(jī)數(shù),用戶根據(jù)預(yù)先約定好的計(jì)算過(guò)程或函數(shù)進(jìn)行計(jì)算,得到口令。過(guò)程或函數(shù)進(jìn)行計(jì)算,得到口令。2. 存取控制存取控制 用戶通過(guò)身份鑒別并不意味著他可以任意用戶通過(guò)身份鑒別并不意味著他可以任意使用數(shù)據(jù)庫(kù),用戶究竟能否使用數(shù)據(jù),使使用數(shù)據(jù)庫(kù),用戶究竟能否使用數(shù)據(jù),使用哪些數(shù)據(jù),如何使用數(shù)據(jù)等問(wèn)題需要進(jìn)用哪些數(shù)據(jù),如何使用數(shù)據(jù)等問(wèn)題需要進(jìn)一步由存取控制來(lái)確定。一步由存取控制來(lái)確定。6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法23 存取控制又稱授權(quán)控制,其作用是保證有數(shù)據(jù)訪存取控制又稱授權(quán)控制,其作用是保證有數(shù)據(jù)訪問(wèn)資格的用戶在授權(quán)范圍內(nèi)使用數(shù)據(jù),并讓未被問(wèn)資格的用戶在授權(quán)范
18、圍內(nèi)使用數(shù)據(jù),并讓未被授權(quán)的用戶無(wú)法接近數(shù)據(jù)。授權(quán)的用戶無(wú)法接近數(shù)據(jù)。存取控制機(jī)制主要包括兩部分存取控制機(jī)制主要包括兩部分:1)定義用戶權(quán)限,并將用戶權(quán)限登記到數(shù)據(jù)字典中定義用戶權(quán)限,并將用戶權(quán)限登記到數(shù)據(jù)字典中。用戶權(quán)限用戶權(quán)限是指不同用戶對(duì)于不同數(shù)據(jù)對(duì)象允許執(zhí)是指不同用戶對(duì)于不同數(shù)據(jù)對(duì)象允許執(zhí)行的操作權(quán)限。系統(tǒng)必須提供適當(dāng)語(yǔ)言定義用戶行的操作權(quán)限。系統(tǒng)必須提供適當(dāng)語(yǔ)言定義用戶權(quán)限,這些定義經(jīng)過(guò)編譯后存放在數(shù)據(jù)字典中,權(quán)限,這些定義經(jīng)過(guò)編譯后存放在數(shù)據(jù)字典中,被稱為被稱為授權(quán)規(guī)則。授權(quán)規(guī)則。6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法242) 合法權(quán)限檢查合法權(quán)限檢查。每
19、個(gè)用戶發(fā)出存取數(shù)據(jù)每個(gè)用戶發(fā)出存取數(shù)據(jù)庫(kù)的操作請(qǐng)求后,庫(kù)的操作請(qǐng)求后,DBMS查找數(shù)據(jù)字典,查找數(shù)據(jù)字典,根據(jù)授權(quán)規(guī)則進(jìn)行合法權(quán)限檢查,若用戶根據(jù)授權(quán)規(guī)則進(jìn)行合法權(quán)限檢查,若用戶的操作請(qǐng)求超出了定義的權(quán)限,系統(tǒng)將拒的操作請(qǐng)求超出了定義的權(quán)限,系統(tǒng)將拒絕執(zhí)行此操作。絕執(zhí)行此操作。 用戶權(quán)限定義和合法性檢查機(jī)制一起組成用戶權(quán)限定義和合法性檢查機(jī)制一起組成了了DBMS的安全性子系統(tǒng)。的安全性子系統(tǒng)。6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法253. 視圖機(jī)制視圖機(jī)制 視圖把用戶可以使用的數(shù)據(jù)定義在視圖視圖把用戶可以使用的數(shù)據(jù)定義在視圖中,這樣用戶就不能使用視圖定義外的中,這樣用
20、戶就不能使用視圖定義外的其他數(shù)據(jù),從而保證了數(shù)據(jù)庫(kù)安全性。其他數(shù)據(jù),從而保證了數(shù)據(jù)庫(kù)安全性。6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法264. 審計(jì)審計(jì)(Audit) 審記功能審記功能就是把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)就是把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)記錄下來(lái)放入審記日志中記錄下來(lái)放入審記日志中。DBA可以利用審記可以利用審記跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。等。 審記通常是很費(fèi)時(shí)間和空間的,所有審記通常是很費(fèi)時(shí)間和空間的,所有DBMS往往往往都將
21、其作為可選功能,允許都將其作為可選功能,允許DBA根據(jù)應(yīng)用對(duì)安根據(jù)應(yīng)用對(duì)安全性的要求,靈活地打開(kāi)或關(guān)閉審記功能。審全性的要求,靈活地打開(kāi)或關(guān)閉審記功能。審記功能一般主要用于安全性要求較高的部門。記功能一般主要用于安全性要求較高的部門。6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法275. 數(shù)據(jù)加密數(shù)據(jù)加密 對(duì)于高度機(jī)密數(shù)據(jù),例如金融財(cái)務(wù)數(shù)據(jù)、軍事數(shù)對(duì)于高度機(jī)密數(shù)據(jù),例如金融財(cái)務(wù)數(shù)據(jù)、軍事數(shù)據(jù)等等,除以上安全措施外,還可以采用數(shù)據(jù)加據(jù)等等,除以上安全措施外,還可以采用數(shù)據(jù)加密技術(shù)。密技術(shù)。 數(shù)據(jù)加密數(shù)據(jù)加密是防止數(shù)據(jù)庫(kù)中數(shù)據(jù)在存儲(chǔ)和傳輸中泄是防止數(shù)據(jù)庫(kù)中數(shù)據(jù)在存儲(chǔ)和傳輸中泄露的
22、有效手段。露的有效手段。 加密的基本思想是加密的基本思想是:根據(jù)一定的算法將原始數(shù)據(jù):根據(jù)一定的算法將原始數(shù)據(jù)(明文)變換為不可直接識(shí)別的格式(密文),(明文)變換為不可直接識(shí)別的格式(密文),從而使不知道加密方法的人無(wú)法獲知數(shù)據(jù)的內(nèi)容。從而使不知道加密方法的人無(wú)法獲知數(shù)據(jù)的內(nèi)容。6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法28 加密方法分為兩類:加密方法分為兩類:6.2.2 數(shù)據(jù)庫(kù)安全性控制的一般方法數(shù)據(jù)庫(kù)安全性控制的一般方法加密方法加密方法對(duì)稱密鑰加密法對(duì)稱密鑰加密法非對(duì)稱(公開(kāi))密鑰加密法非對(duì)稱(公開(kāi))密鑰加密法 加密方法涉及要素加密方法涉及要素:加密密鑰:加密密鑰(
23、 (好比密碼好比密碼) )、解密密鑰和算法。解密密鑰和算法。 加密時(shí)加密時(shí),用加密算法根據(jù)明文和加密密鑰,用加密算法根據(jù)明文和加密密鑰生成密文;生成密文;解密時(shí)解密時(shí),用解密算法對(duì)密文和解,用解密算法對(duì)密文和解密密鑰進(jìn)行運(yùn)算得到明文。密密鑰進(jìn)行運(yùn)算得到明文。296.2.3 SQL Seerver的安全性控制的安全性控制SQL Server2000有有3個(gè)等級(jí)的安全驗(yàn)證:個(gè)等級(jí)的安全驗(yàn)證: SQL Server安全驗(yàn)證安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證SQL Server安全驗(yàn)證安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證
24、306.2.3.1 SQL Server 安全驗(yàn)證安全驗(yàn)證 SQL Server安全驗(yàn)證安全驗(yàn)證是根據(jù)用戶登錄是根據(jù)用戶登錄 SQL Server時(shí)提供的登錄名和密碼驗(yàn)證用戶是否時(shí)提供的登錄名和密碼驗(yàn)證用戶是否可以連接可以連接SQL Server。 SQL Server安全身份驗(yàn)證機(jī)制提供兩種模安全身份驗(yàn)證機(jī)制提供兩種模式:式:Windows驗(yàn)證模式驗(yàn)證模式和和混合驗(yàn)證模式混合驗(yàn)證模式。Windows驗(yàn)證模式驗(yàn)證模式混合驗(yàn)證模式混合驗(yàn)證模式SQL Server安全驗(yàn)證安全驗(yàn)證311. Windows身份身份驗(yàn)證模式驗(yàn)證模式 Windows 驗(yàn)證利用驗(yàn)證利用Windows 操作系統(tǒng)本身操作系統(tǒng)本
25、身驗(yàn)證用戶合法性的能力,驗(yàn)證用戶合法性的能力,允許用戶通過(guò)允許用戶通過(guò) Windows 用戶帳戶連接到用戶帳戶連接到SQL Server。 使用這種模式,用戶只能使用使用這種模式,用戶只能使用Windows驗(yàn)驗(yàn)證登錄證登錄, 不能使用不能使用SQL Server 驗(yàn)證登錄。驗(yàn)證登錄。6.2.3.1 SQL Server 安全驗(yàn)證安全驗(yàn)證322.混合驗(yàn)證模式混合驗(yàn)證模式 使用這種驗(yàn)證模式,用戶可以使用使用這種驗(yàn)證模式,用戶可以使用Windows 驗(yàn)證或者驗(yàn)證或者SQL Server驗(yàn)證連接到驗(yàn)證連接到SQL Server 。登錄時(shí)兩者中選擇一種。登錄時(shí)兩者中選擇一種。6.2.3.1 SQL Se
26、rver 安全驗(yàn)證安全驗(yàn)證33 SQL Server 把設(shè)定的用戶名身份信息把設(shè)定的用戶名身份信息(比如登錄名比如登錄名和密碼和密碼)存在存在Master數(shù)據(jù)庫(kù)的表數(shù)據(jù)庫(kù)的表sysxlogins中。中。 SQL Server有一個(gè)特殊的有一個(gè)特殊的內(nèi)置登錄名內(nèi)置登錄名: sa(System Administrator,系統(tǒng)管理員,系統(tǒng)管理員),擁有在,擁有在SQL Server上的一切權(quán)限;上的一切權(quán)限; BUILTIN Administrator是另一個(gè)內(nèi)置登錄名,是另一個(gè)內(nèi)置登錄名,這是這是SQL Server為為Windows NT(基于基于NT的的)系統(tǒng)管系統(tǒng)管理員設(shè)置的默認(rèn)登錄名,也
27、擁有理員設(shè)置的默認(rèn)登錄名,也擁有SQL Server上一上一切權(quán)限。切權(quán)限。6.2.3.1 SQL Server 安全驗(yàn)證安全驗(yàn)證34 在在SQL Server上管理用戶身份信息主要有上管理用戶身份信息主要有兩種方法兩種方法: 一是在企業(yè)管理器中利用圖形界面來(lái)管理;一是在企業(yè)管理器中利用圖形界面來(lái)管理; 另一種是利用另一種是利用SQL Server提供的提供的管理用戶管理用戶身份的存儲(chǔ)過(guò)程,來(lái)管理用戶身份的存儲(chǔ)過(guò)程,來(lái)管理用戶。這些存儲(chǔ)。這些存儲(chǔ)過(guò)程必須在系統(tǒng)數(shù)據(jù)庫(kù)過(guò)程必須在系統(tǒng)數(shù)據(jù)庫(kù)Master中使用(當(dāng)中使用(當(dāng)然要有足夠的權(quán)限)。然要有足夠的權(quán)限)。6.2.3.1 SQL Server
28、安全驗(yàn)證安全驗(yàn)證356.2.3.1 SQL Server 安全驗(yàn)證安全驗(yàn)證可視化定義可視化定義新登錄用戶新登錄用戶36(1) sp_addlogin:創(chuàng)建用戶身份信息創(chuàng)建用戶身份信息 Exec sp_addlogin s1, 111111, 教學(xué)數(shù)據(jù)教學(xué)數(shù)據(jù)庫(kù)庫(kù) 創(chuàng)建一條用戶身份信息,登錄名創(chuàng)建一條用戶身份信息,登錄名s1,密碼密碼111111,默認(rèn)數(shù)據(jù)庫(kù)默認(rèn)數(shù)據(jù)庫(kù)教學(xué)數(shù)據(jù)庫(kù)教學(xué)數(shù)據(jù)庫(kù)。(2) sp_droplogin:刪除用戶身份信息刪除用戶身份信息 Exec sp_droplogin s1 刪除刪除s1用戶身份信息。用戶身份信息。6.2.3.1 SQL Server 安全驗(yàn)證安全驗(yàn)證37(
29、3) sp_grantlogin:將:將Windows的用戶或用戶組添加的用戶或用戶組添加成成SQL Server的登錄名。的登錄名。 Exec sp_grantlogin zhujing-pcu1將將Windows用戶用戶u1添加成添加成SQL Server的登錄名。的登錄名。 (zhujing-pc為計(jì)算機(jī)域名為計(jì)算機(jī)域名)(4) sp_denylogin:拒絕某拒絕某Windows用戶用戶(或用戶組或用戶組)連接到連接到SQL Server。 Exec sp_denylogin u1 拒絕拒絕Windows用戶用戶u1連接到連接到SQL Server 。6.2.3.1 SQL Serve
30、r 安全驗(yàn)證安全驗(yàn)證38(5) sp_revokelogin:刪除某:刪除某Windows用戶在用戶在SQL Server上的用戶身份信息。上的用戶身份信息。 Exec sp_revokelogin zhujing-pcu1刪除刪除Windows用戶用戶u1在在SQL Server上的身份信息。上的身份信息。6.2.3.1 SQL Server 安全驗(yàn)證安全驗(yàn)證396.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證 用戶成功連接到用戶成功連接到SQL Server后,如果想后,如果想訪問(wèn)某個(gè)數(shù)據(jù)庫(kù),他們還必須在數(shù)據(jù)庫(kù)訪問(wèn)某個(gè)數(shù)據(jù)庫(kù),他們還必須在數(shù)據(jù)庫(kù)中有賬號(hào),否則對(duì)該數(shù)據(jù)庫(kù)的訪問(wèn)就會(huì)中有賬號(hào),否則對(duì)
31、該數(shù)據(jù)庫(kù)的訪問(wèn)就會(huì)遭到拒絕。遭到拒絕。406.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證 數(shù)據(jù)庫(kù)賬號(hào)與登錄名區(qū)別:數(shù)據(jù)庫(kù)賬號(hào)與登錄名區(qū)別: 登錄名登錄名作用范圍是整個(gè)作用范圍是整個(gè)SQL Server,使用,使用一個(gè)登錄名可以跟服務(wù)器上所有數(shù)據(jù)庫(kù)進(jìn)一個(gè)登錄名可以跟服務(wù)器上所有數(shù)據(jù)庫(kù)進(jìn)行交互。行交互。 數(shù)據(jù)庫(kù)賬號(hào)數(shù)據(jù)庫(kù)賬號(hào)的作用范圍只是一個(gè)數(shù)據(jù)庫(kù),的作用范圍只是一個(gè)數(shù)據(jù)庫(kù),它是一個(gè)或多個(gè)登錄名在某個(gè)數(shù)據(jù)庫(kù)上的它是一個(gè)或多個(gè)登錄名在某個(gè)數(shù)據(jù)庫(kù)上的映射,數(shù)據(jù)庫(kù)賬號(hào)相關(guān)信息存儲(chǔ)在各個(gè)數(shù)映射,數(shù)據(jù)庫(kù)賬號(hào)相關(guān)信息存儲(chǔ)在各個(gè)數(shù)據(jù)庫(kù)的據(jù)庫(kù)的sysusers表中。表中。41 數(shù)據(jù)庫(kù)賬號(hào)與登錄名關(guān)系:數(shù)據(jù)庫(kù)賬號(hào)與登
32、錄名關(guān)系: 同一個(gè)登錄名可以映射到不同數(shù)據(jù)庫(kù)上的同一個(gè)登錄名可以映射到不同數(shù)據(jù)庫(kù)上的不同數(shù)據(jù)庫(kù)賬號(hào);但在一個(gè)數(shù)據(jù)庫(kù)上,一個(gè)不同數(shù)據(jù)庫(kù)賬號(hào);但在一個(gè)數(shù)據(jù)庫(kù)上,一個(gè)登錄名只能有一個(gè)映射,多個(gè)登錄名可以映登錄名只能有一個(gè)映射,多個(gè)登錄名可以映射到同一個(gè)數(shù)據(jù)庫(kù)賬號(hào)。射到同一個(gè)數(shù)據(jù)庫(kù)賬號(hào)。 默認(rèn)情況下,新創(chuàng)建的每個(gè)數(shù)據(jù)庫(kù)只有一個(gè)默認(rèn)情況下,新創(chuàng)建的每個(gè)數(shù)據(jù)庫(kù)只有一個(gè)賬號(hào)賬號(hào)dbo,系統(tǒng)管理員登錄名,系統(tǒng)管理員登錄名sa默認(rèn)映射到默認(rèn)映射到每個(gè)數(shù)據(jù)庫(kù)的每個(gè)數(shù)據(jù)庫(kù)的dbo賬號(hào)。賬號(hào)。6.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證42 guest賬號(hào)賬號(hào):一般情況下,數(shù)據(jù)庫(kù)賬號(hào)總:一般情況下,數(shù)據(jù)庫(kù)賬號(hào)總跟某個(gè)
33、(或某些)登錄名之間有映射關(guān)系,跟某個(gè)(或某些)登錄名之間有映射關(guān)系,但是但是guest賬號(hào)除外,他不跟特定登錄名賬號(hào)除外,他不跟特定登錄名建立映射關(guān)系,那些在數(shù)據(jù)庫(kù)中沒(méi)有對(duì)應(yīng)建立映射關(guān)系,那些在數(shù)據(jù)庫(kù)中沒(méi)有對(duì)應(yīng)賬號(hào)的登錄名都映射到賬號(hào)的登錄名都映射到guest。 master和和tempdb數(shù)據(jù)庫(kù)中必須存在數(shù)據(jù)庫(kù)中必須存在guest賬號(hào),其他數(shù)據(jù)庫(kù)中可以任意添加賬號(hào),其他數(shù)據(jù)庫(kù)中可以任意添加或刪除或刪除guest賬號(hào)。賬號(hào)。6.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證43 當(dāng)一個(gè)登錄名請(qǐng)求訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)時(shí),當(dāng)一個(gè)登錄名請(qǐng)求訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)時(shí),SQL Server在該數(shù)據(jù)庫(kù)的在該數(shù)據(jù)庫(kù)的sysu
34、sers表中表中查找該登錄名對(duì)應(yīng)的數(shù)據(jù)庫(kù)賬號(hào),如果查查找該登錄名對(duì)應(yīng)的數(shù)據(jù)庫(kù)賬號(hào),如果查到,則可以訪問(wèn)該數(shù)據(jù)庫(kù),如果沒(méi)找到,到,則可以訪問(wèn)該數(shù)據(jù)庫(kù),如果沒(méi)找到, SQL Server則試圖將該登錄賬號(hào)映射成則試圖將該登錄賬號(hào)映射成guest數(shù)據(jù)庫(kù)賬號(hào),如果還失敗,那么這數(shù)據(jù)庫(kù)賬號(hào),如果還失敗,那么這個(gè)登錄名就不能訪問(wèn)該數(shù)據(jù)庫(kù)。個(gè)登錄名就不能訪問(wèn)該數(shù)據(jù)庫(kù)。6.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證44 管理數(shù)據(jù)庫(kù)賬號(hào)的核心是管理登錄名跟數(shù)管理數(shù)據(jù)庫(kù)賬號(hào)的核心是管理登錄名跟數(shù)據(jù)庫(kù)賬號(hào)之間的映射關(guān)系。管理數(shù)據(jù)庫(kù)賬據(jù)庫(kù)賬號(hào)之間的映射關(guān)系。管理數(shù)據(jù)庫(kù)賬號(hào)可用企業(yè)管理器的圖形界面。也可以通號(hào)可用企業(yè)管理
35、器的圖形界面。也可以通過(guò)系統(tǒng)存儲(chǔ)過(guò)程進(jìn)行。過(guò)系統(tǒng)存儲(chǔ)過(guò)程進(jìn)行。(1)(1)sp_grantdbaccess 創(chuàng)建數(shù)據(jù)庫(kù)賬號(hào),創(chuàng)建數(shù)據(jù)庫(kù)賬號(hào),并建立登錄名到賬號(hào)的映射。該存儲(chǔ)過(guò)程并建立登錄名到賬號(hào)的映射。該存儲(chǔ)過(guò)程只能對(duì)當(dāng)前數(shù)據(jù)庫(kù)使用。只能對(duì)當(dāng)前數(shù)據(jù)庫(kù)使用。例:例:use use 教學(xué)數(shù)據(jù)庫(kù)教學(xué)數(shù)據(jù)庫(kù) Exec Exec sp_grantdbaccesssp_grantdbaccess s1 s1 ,u1,u16.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證45說(shuō)明:說(shuō)明: 如果數(shù)據(jù)庫(kù)賬號(hào)如果數(shù)據(jù)庫(kù)賬號(hào)u1不存在,則創(chuàng)建該賬號(hào),不存在,則創(chuàng)建該賬號(hào),在數(shù)據(jù)庫(kù)中把登錄名在數(shù)據(jù)庫(kù)中把登錄名s1映射到賬號(hào)
36、映射到賬號(hào)u1。第。第二個(gè)參數(shù)二個(gè)參數(shù)(數(shù)據(jù)庫(kù)賬號(hào)數(shù)據(jù)庫(kù)賬號(hào))可省略,省略時(shí)表可省略,省略時(shí)表示它跟第一個(gè)參數(shù)示它跟第一個(gè)參數(shù)(登錄名登錄名)相同。相同。6.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證46(2) (2) sp_revokedbaccess 刪除數(shù)據(jù)庫(kù)賬號(hào),刪除數(shù)據(jù)庫(kù)賬號(hào),該存儲(chǔ)過(guò)程只能對(duì)當(dāng)前數(shù)據(jù)庫(kù)使用。該存儲(chǔ)過(guò)程只能對(duì)當(dāng)前數(shù)據(jù)庫(kù)使用。例:例:Exec sp_revokedbaccess s1,u1 刪除數(shù)據(jù)庫(kù)中的賬號(hào)刪除數(shù)據(jù)庫(kù)中的賬號(hào)u1。在刪除任何登錄。在刪除任何登錄名之前,必須先刪除各個(gè)數(shù)據(jù)庫(kù)中該賬號(hào)名之前,必須先刪除各個(gè)數(shù)據(jù)庫(kù)中該賬號(hào)映射的賬號(hào),以免留下映射的賬號(hào),以免留下
37、“孤立孤立”賬號(hào),沒(méi)賬號(hào),沒(méi)有任何登錄名映射到它。每個(gè)數(shù)據(jù)庫(kù)的有任何登錄名映射到它。每個(gè)數(shù)據(jù)庫(kù)的dbo賬號(hào)都不能刪除。賬號(hào)都不能刪除。6.2.3.2 數(shù)據(jù)庫(kù)安全驗(yàn)證數(shù)據(jù)庫(kù)安全驗(yàn)證476.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證一個(gè)用戶通過(guò)登錄名的映射在一個(gè)數(shù)據(jù)庫(kù)中一個(gè)用戶通過(guò)登錄名的映射在一個(gè)數(shù)據(jù)庫(kù)中擁有賬號(hào)后就可以訪問(wèn)這個(gè)數(shù)據(jù)庫(kù)了,但是擁有賬號(hào)后就可以訪問(wèn)這個(gè)數(shù)據(jù)庫(kù)了,但是用戶在這個(gè)數(shù)據(jù)庫(kù)上究竟可以做些什么操作,用戶在這個(gè)數(shù)據(jù)庫(kù)上究竟可以做些什么操作,這要由這個(gè)數(shù)據(jù)庫(kù)上的權(quán)限設(shè)置來(lái)決定。數(shù)這要由這個(gè)數(shù)據(jù)庫(kù)上的權(quán)限設(shè)置來(lái)決定。數(shù)據(jù)庫(kù)的權(quán)限設(shè)置在數(shù)據(jù)庫(kù)賬號(hào)之上(只有據(jù)庫(kù)的權(quán)限設(shè)置在數(shù)
38、據(jù)庫(kù)賬號(hào)之上(只有CREATE DATABASE語(yǔ)句權(quán)限例外,它由語(yǔ)句權(quán)限例外,它由sa授權(quán)登錄名),有效作用范圍是單個(gè)數(shù)據(jù)授權(quán)登錄名),有效作用范圍是單個(gè)數(shù)據(jù)庫(kù),權(quán)限不能跨越數(shù)據(jù)庫(kù)。庫(kù),權(quán)限不能跨越數(shù)據(jù)庫(kù)。48數(shù)據(jù)庫(kù)的權(quán)限分為兩類數(shù)據(jù)庫(kù)的權(quán)限分為兩類:語(yǔ)句權(quán)限和對(duì)象權(quán)限。語(yǔ)句權(quán)限和對(duì)象權(quán)限。1. 語(yǔ)句權(quán)限語(yǔ)句權(quán)限 語(yǔ)句權(quán)限語(yǔ)句權(quán)限是指創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象以是指創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象以及備份數(shù)據(jù)庫(kù)的權(quán)限。及備份數(shù)據(jù)庫(kù)的權(quán)限。 語(yǔ)句權(quán)限針對(duì)的是語(yǔ)句權(quán)限針對(duì)的是SQL語(yǔ)句的執(zhí)行,而不語(yǔ)句的執(zhí)行,而不是數(shù)據(jù)庫(kù)中已經(jīng)存在的某些對(duì)象。表是數(shù)據(jù)庫(kù)中已經(jīng)存在的某些對(duì)象。表6-1列出列出了了SQL Serv
39、er中語(yǔ)句權(quán)限適用的語(yǔ)句。中語(yǔ)句權(quán)限適用的語(yǔ)句。6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證49語(yǔ)句語(yǔ)句權(quán)限說(shuō)明權(quán)限說(shuō)明(只能由只能由sa授予登錄名授予登錄名)CREATE DATABASE允許創(chuàng)建數(shù)據(jù)庫(kù)允許創(chuàng)建數(shù)據(jù)庫(kù)CREATE DEFAULT允許創(chuàng)建默認(rèn)值允許創(chuàng)建默認(rèn)值CREATE PROCEDURE允許創(chuàng)建存儲(chǔ)過(guò)程允許創(chuàng)建存儲(chǔ)過(guò)程CREATE RULE允許創(chuàng)建規(guī)則允許創(chuàng)建規(guī)則CREATE TABLE允許創(chuàng)建表允許創(chuàng)建表CREATE VIEW允許創(chuàng)建視圖允許創(chuàng)建視圖BACKUP DATABASE允許備份數(shù)據(jù)庫(kù)允許備份數(shù)據(jù)庫(kù)BACKUP LOG允許備份日志允許備份日志表表6.1
40、語(yǔ)句權(quán)限適用的語(yǔ)句語(yǔ)句權(quán)限適用的語(yǔ)句6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證502. 對(duì)象權(quán)限對(duì)象權(quán)限是指操作數(shù)據(jù)和執(zhí)行存儲(chǔ)過(guò)程的權(quán)限。是指操作數(shù)據(jù)和執(zhí)行存儲(chǔ)過(guò)程的權(quán)限。表表6.2 對(duì)象權(quán)限適用的對(duì)象和操作對(duì)象權(quán)限適用的對(duì)象和操作操作操作權(quán)限說(shuō)明權(quán)限說(shuō)明適用范圍適用范圍SELECT允許查詢?cè)试S查詢表、視圖、表的列表、視圖、表的列UPDATE允許修改允許修改表、視圖、表的列表、視圖、表的列INSERT允許插入允許插入表、視圖表、視圖DELETE允許刪除允許刪除表、視圖表、視圖EXECUTE允許調(diào)用過(guò)程允許調(diào)用過(guò)程 存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程REFERENCE 允許引用允許引用(參參照完整性
41、照完整性)表、表的列表、表的列513. 權(quán)限管理權(quán)限管理 權(quán)限管理可以通過(guò)企業(yè)管理器進(jìn)行,也可權(quán)限管理可以通過(guò)企業(yè)管理器進(jìn)行,也可以用以用T-SQL完成。下面我們簡(jiǎn)單介紹一下如完成。下面我們簡(jiǎn)單介紹一下如何用何用T-SQL管理權(quán)限。管理權(quán)限。權(quán)限管理主要有授權(quán)、收回權(quán)限和拒絕三類。權(quán)限管理主要有授權(quán)、收回權(quán)限和拒絕三類。授權(quán)授權(quán)是規(guī)定某數(shù)據(jù)庫(kù)賬號(hào)可以執(zhí)行某個(gè)操作,是規(guī)定某數(shù)據(jù)庫(kù)賬號(hào)可以執(zhí)行某個(gè)操作,用用GRANT語(yǔ)句進(jìn)行授權(quán)操作。語(yǔ)句進(jìn)行授權(quán)操作。6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證52授權(quán)語(yǔ)句授權(quán)語(yǔ)句: GRANT ALL PRIVILEGES |權(quán)限權(quán)限1,權(quán)限權(quán)限2
42、, ON 對(duì)象名對(duì)象名 TO 用戶賬號(hào)用戶賬號(hào)1,賬號(hào)賬號(hào)2, 6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證例例1:授予授予u1賬號(hào)創(chuàng)建視圖的權(quán)限。賬號(hào)創(chuàng)建視圖的權(quán)限。 GRANT CREATE VIEW TO u153例例2:授予授予u1賬號(hào)對(duì)學(xué)生表具有賬號(hào)對(duì)學(xué)生表具有insert權(quán)限。權(quán)限。 GRANT INSERT ON 學(xué)生學(xué)生 TO u1 例例3:把查學(xué)生表和修改學(xué)生學(xué)號(hào)的權(quán)限授予用戶把查學(xué)生表和修改學(xué)生學(xué)號(hào)的權(quán)限授予用戶u4。 GRANT SELECT, UPDATE(學(xué)號(hào)學(xué)號(hào)) ON 學(xué)生學(xué)生 TO u46.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證54回收
43、權(quán)限語(yǔ)句回收權(quán)限語(yǔ)句: REVOKE 權(quán)限權(quán)限1, ON 對(duì)象名對(duì)象名 FROM 用戶名用戶名例例4:回收:回收u1賬號(hào)創(chuàng)建視圖的權(quán)限。賬號(hào)創(chuàng)建視圖的權(quán)限。 REVOKE CREATE VIEW FROM u16.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證回收權(quán)限回收權(quán)限:是撤銷某數(shù)據(jù)庫(kù)賬戶在某數(shù)據(jù)對(duì):是撤銷某數(shù)據(jù)庫(kù)賬戶在某數(shù)據(jù)對(duì)象上的操作權(quán)限。象上的操作權(quán)限。55拒絕語(yǔ)句拒絕語(yǔ)句:DENY 權(quán)限權(quán)限1, ON 對(duì)象名對(duì)象名 TO 用戶名用戶名例例4:規(guī)定:規(guī)定u1賬號(hào)不能創(chuàng)建視圖。賬號(hào)不能創(chuàng)建視圖。 DENY CREATE VIEW TO u16.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)
44、據(jù)庫(kù)對(duì)象的安全驗(yàn)證拒絕拒絕:是顯式地規(guī)定某數(shù)據(jù)庫(kù)賬戶不能執(zhí)行:是顯式地規(guī)定某數(shù)據(jù)庫(kù)賬戶不能執(zhí)行某個(gè)操作。某個(gè)操作。564. 角色角色 用戶在用戶在SQL Server系統(tǒng)內(nèi)進(jìn)行任何操作,系統(tǒng)內(nèi)進(jìn)行任何操作,必須要有相應(yīng)的權(quán)限,因此為不同用戶分配必須要有相應(yīng)的權(quán)限,因此為不同用戶分配合適的權(quán)限是數(shù)據(jù)庫(kù)管理員例行公事。然后,合適的權(quán)限是數(shù)據(jù)庫(kù)管理員例行公事。然后,如果一個(gè)數(shù)據(jù)庫(kù)用戶太多,如有如果一個(gè)數(shù)據(jù)庫(kù)用戶太多,如有5000人,要人,要為他們一一分配權(quán)限工作量就顯得太大。而為他們一一分配權(quán)限工作量就顯得太大。而現(xiàn)實(shí)中許多用戶權(quán)限是相同的,或者大部分現(xiàn)實(shí)中許多用戶權(quán)限是相同的,或者大部分的權(quán)限只是
45、少數(shù)幾種情形的組合,為此,的權(quán)限只是少數(shù)幾種情形的組合,為此,SQL Server提供了提供了“角色角色”,以方便權(quán)限管,以方便權(quán)限管理。理。6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證57實(shí)際工作時(shí),權(quán)限管理大多通過(guò)角色進(jìn)行,實(shí)際工作時(shí),權(quán)限管理大多通過(guò)角色進(jìn)行,很少直接對(duì)用戶(數(shù)據(jù)庫(kù)賬號(hào))分配權(quán)限。很少直接對(duì)用戶(數(shù)據(jù)庫(kù)賬號(hào))分配權(quán)限。角色有三種類型:角色有三種類型: 用戶定義的角色用戶定義的角色固定的數(shù)據(jù)庫(kù)角色固定的數(shù)據(jù)庫(kù)角色(SQL Server系統(tǒng)定義系統(tǒng)定義)固定的服務(wù)器角色固定的服務(wù)器角色 (SQL Server系統(tǒng)定義系統(tǒng)定義)6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)
46、據(jù)庫(kù)對(duì)象的安全驗(yàn)證58角色角色權(quán)限權(quán)限Public包含數(shù)據(jù)庫(kù)中用戶的所有默認(rèn)權(quán)限包含數(shù)據(jù)庫(kù)中用戶的所有默認(rèn)權(quán)限D(zhuǎn)b_owner數(shù)據(jù)所有者數(shù)據(jù)所有者, 擁有數(shù)據(jù)庫(kù)一切權(quán)限擁有數(shù)據(jù)庫(kù)一切權(quán)限D(zhuǎn)b_accessadmin添加或刪除數(shù)據(jù)庫(kù)賬號(hào)、組和角色添加或刪除數(shù)據(jù)庫(kù)賬號(hào)、組和角色Db_ddladmin添加、修改或刪除數(shù)據(jù)庫(kù)中對(duì)象添加、修改或刪除數(shù)據(jù)庫(kù)中對(duì)象Db_securityadmin可以管理語(yǔ)句權(quán)限和對(duì)象權(quán)限可以管理語(yǔ)句權(quán)限和對(duì)象權(quán)限D(zhuǎn)b_backupoperator可以進(jìn)行數(shù)據(jù)庫(kù)備份和恢復(fù)可以進(jìn)行數(shù)據(jù)庫(kù)備份和恢復(fù)表表6.3 固定的數(shù)據(jù)庫(kù)角色固定的數(shù)據(jù)庫(kù)角色6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)
47、據(jù)庫(kù)對(duì)象的安全驗(yàn)證59角色角色權(quán)限權(quán)限D(zhuǎn)b_datareader可以對(duì)任何表查詢可以對(duì)任何表查詢, ,但不能更新但不能更新Db_datawriter可以對(duì)任何表進(jìn)行插入、刪除和修可以對(duì)任何表進(jìn)行插入、刪除和修改,但不能查詢。改,但不能查詢。Db_denydatareader不能讀取任何表中數(shù)據(jù)不能讀取任何表中數(shù)據(jù)Db_denydatawriter不能寫不能寫(插入、修改、刪除插入、修改、刪除)任何表任何表中數(shù)據(jù)中數(shù)據(jù)表表6.3 固定的數(shù)據(jù)庫(kù)角色固定的數(shù)據(jù)庫(kù)角色(續(xù)續(xù))固定的服務(wù)器角色,固定的服務(wù)器角色,如下表如下表6.4 6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證60角色角色權(quán)限
48、權(quán)限Server Administrators配置服務(wù)器范圍的設(shè)定配置服務(wù)器范圍的設(shè)定Security Administrators管理和審核服務(wù)器登錄管理和審核服務(wù)器登錄System Administrators可以執(zhí)行可以執(zhí)行SQL Server的任何操作的任何操作Process Administrators管理管理SQL Server進(jìn)程進(jìn)程Disk Administrators管理磁盤文件管理磁盤文件Setup Administrators管理擴(kuò)展的存儲(chǔ)過(guò)程管理擴(kuò)展的存儲(chǔ)過(guò)程Bulk Insert Administrators可以執(zhí)行大量數(shù)據(jù)的測(cè)試可以執(zhí)行大量數(shù)據(jù)的測(cè)試Database
49、 Creators可以創(chuàng)建數(shù)據(jù)庫(kù)可以創(chuàng)建數(shù)據(jù)庫(kù)表表6.4 固定的服務(wù)器角色固定的服務(wù)器角色6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證61一般情況下用戶從多個(gè)角色獲得的權(quán)限是疊一般情況下用戶從多個(gè)角色獲得的權(quán)限是疊加的,如果其中一個(gè)角色沒(méi)有被授予某個(gè)權(quán)加的,如果其中一個(gè)角色沒(méi)有被授予某個(gè)權(quán)限(或者授予后又回收了),而另一個(gè)角色限(或者授予后又回收了),而另一個(gè)角色被授予了該權(quán)限,則該用戶仍然擁有該權(quán)限。被授予了該權(quán)限,則該用戶仍然擁有該權(quán)限。實(shí)際工作中實(shí)際工作中 ,有時(shí)也需要排除某角色的某個(gè),有時(shí)也需要排除某角色的某個(gè)操作權(quán)限,凡成為該角色的用戶,都不能擁操作權(quán)限,凡成為該角色的用
50、戶,都不能擁有該權(quán)限。對(duì)此可以用有該權(quán)限。對(duì)此可以用“拒絕拒絕”權(quán)限管理方權(quán)限管理方法。法?!熬芙^拒絕”具有最高優(yōu)先權(quán)。具有最高優(yōu)先權(quán)。 用戶定義的角色:用戶定義的角色:6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證62如果某個(gè)用戶同時(shí)是幾個(gè)角色的成員,如果如果某個(gè)用戶同時(shí)是幾個(gè)角色的成員,如果其中一個(gè)角色拒絕了某個(gè)權(quán)限其中一個(gè)角色拒絕了某個(gè)權(quán)限A,則不管其,則不管其他角色是否授權(quán)了他角色是否授權(quán)了A,該用戶都沒(méi)有,該用戶都沒(méi)有A權(quán)限。權(quán)限。 例例:用戶:用戶u是角色是角色A、B和和C的成員。三個(gè)角的成員。三個(gè)角色權(quán)限如表色權(quán)限如表6.5所示。則用戶所示。則用戶u的權(quán)限如表的權(quán)限如表
51、6.6 。6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證63權(quán)限權(quán)限角色角色A角色角色B角色角色CSelect on table1 Select on view1 Update on tables2Delete on table3 表表6.5 角色角色A、B和和C的權(quán)限的權(quán)限6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證64權(quán)限權(quán)限角色角色ASelect on table1 Select on view1 Update on tables2Delete on table3 表表6.6 用戶用戶u 的權(quán)限的權(quán)限6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證65過(guò)了一
52、段時(shí)間后,需要對(duì)權(quán)限調(diào)整,調(diào)整后過(guò)了一段時(shí)間后,需要對(duì)權(quán)限調(diào)整,調(diào)整后三個(gè)角色的權(quán)限如表三個(gè)角色的權(quán)限如表6.7所示。則調(diào)整后用所示。則調(diào)整后用戶戶U的權(quán)限如表的權(quán)限如表6.8 。權(quán)限權(quán)限角色角色A角色角色B角色角色CSelect on table1 0Select on view10Update on tables2Delete on table3 X表表6.7 角色角色A、B和和C的權(quán)限的權(quán)限6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證66權(quán)限權(quán)限角色角色ASelect on table1 Select on view1Update on tables2Delete on ta
53、ble3X表表6.8 調(diào)整后用戶調(diào)整后用戶u 的權(quán)限的權(quán)限O表示權(quán)限被撤銷,表示權(quán)限被撤銷,X表示權(quán)限被拒絕。表示權(quán)限被拒絕。6.2.3.2 數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證數(shù)據(jù)庫(kù)對(duì)象的安全驗(yàn)證 數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用DB676.3 并發(fā)控制并發(fā)控制數(shù)據(jù)庫(kù)是一個(gè)共享資源,從理論上講,對(duì)數(shù)數(shù)據(jù)庫(kù)是一個(gè)共享資源,從理論上講,對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行存取的用戶數(shù)目可以是任意據(jù)庫(kù)中數(shù)據(jù)進(jìn)行存取的用戶數(shù)目可以是任意多。讓多個(gè)用戶程序并行地存取數(shù)據(jù)庫(kù),可多。讓多個(gè)用戶程序并行地存取數(shù)據(jù)庫(kù),可以提高數(shù)據(jù)庫(kù)系統(tǒng)的利用率。但這樣可能出以提高數(shù)據(jù)庫(kù)系統(tǒng)的利用率。但這樣可能出現(xiàn)多個(gè)用戶程序并發(fā)地訪問(wèn)同一數(shù)據(jù)資源的現(xiàn)多個(gè)用戶
54、程序并發(fā)地訪問(wèn)同一數(shù)據(jù)資源的情況,對(duì)此并發(fā)不加控制,就會(huì)破壞數(shù)據(jù)的情況,對(duì)此并發(fā)不加控制,就會(huì)破壞數(shù)據(jù)的一致性。所以,必須對(duì)并發(fā)操作加以控制,一致性。所以,必須對(duì)并發(fā)操作加以控制,以正確順序方式調(diào)度并發(fā)操作。以正確順序方式調(diào)度并發(fā)操作。686.3.1 事務(wù)事務(wù)1事務(wù)(事務(wù)(Transaction)事務(wù)事務(wù)是是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作要么全做要么全不做,是一個(gè)不這些操作要么全做要么全不做,是一個(gè)不可分割的整體可分割的整體。 在在RDB中,一個(gè)事務(wù)可以是一個(gè)中,一個(gè)事務(wù)可以是一個(gè)SQL語(yǔ)句,語(yǔ)句,或一組或一組SQL語(yǔ)句或整個(gè)程序。語(yǔ)句或整個(gè)程序。 但事務(wù)
55、與程序是不同的概念,一個(gè)程序中但事務(wù)與程序是不同的概念,一個(gè)程序中可以包含多個(gè)事務(wù)??梢园鄠€(gè)事務(wù)。 為什么要引入事務(wù)的概念呢?讓我們來(lái)看為什么要引入事務(wù)的概念呢?讓我們來(lái)看個(gè)例子。個(gè)例子。69例如例如:假設(shè)你來(lái)到假設(shè)你來(lái)到ATM機(jī)前進(jìn)行轉(zhuǎn)帳工作,讓機(jī)器機(jī)前進(jìn)行轉(zhuǎn)帳工作,讓機(jī)器“把把100元從你的活期存款帳戶轉(zhuǎn)到定期帳戶元從你的活期存款帳戶轉(zhuǎn)到定期帳戶”。你插入信用卡,進(jìn)行了必要的操作,機(jī)器將對(duì)銀你插入信用卡,進(jìn)行了必要的操作,機(jī)器將對(duì)銀行數(shù)據(jù)庫(kù)做兩次更新:行數(shù)據(jù)庫(kù)做兩次更新:(1)首先從你的活期存款余額取出首先從你的活期存款余額取出100元元;(2) 接著將接著將100元轉(zhuǎn)到你的定期存款帳
56、戶中。你確元轉(zhuǎn)到你的定期存款帳戶中。你確信你轉(zhuǎn)帳的錢已經(jīng)在你的定期存款帳戶。信你轉(zhuǎn)帳的錢已經(jīng)在你的定期存款帳戶。 若若100元從你的活期存款帳戶剛剛轉(zhuǎn)出后,突然元從你的活期存款帳戶剛剛轉(zhuǎn)出后,突然停電,你的定期帳戶中又沒(méi)得到這筆錢,怎么辦,停電,你的定期帳戶中又沒(méi)得到這筆錢,怎么辦,你的錢丟失了?你的錢丟失了?6.3.1 事務(wù)事務(wù)70事務(wù)定義事務(wù)定義: 事務(wù)可由用戶使用事務(wù)開(kāi)始和結(jié)束語(yǔ)句顯事務(wù)可由用戶使用事務(wù)開(kāi)始和結(jié)束語(yǔ)句顯式定義。式定義。BEGIN TRANSACTION (事務(wù)開(kāi)始)(事務(wù)開(kāi)始) COMMIT(ROLLBACK)(事務(wù)結(jié)束)(事務(wù)結(jié)束)End TRANSACTION 事務(wù)結(jié)
57、束事務(wù)結(jié)束n如果用戶沒(méi)有顯式定義事務(wù),則由如果用戶沒(méi)有顯式定義事務(wù),則由DBMS按缺省規(guī)定自動(dòng)劃分事務(wù)。按缺省規(guī)定自動(dòng)劃分事務(wù)。6.3.1 事務(wù)事務(wù)71v解釋解釋:COMMIT:提交,提交事務(wù)的所有操作。提交,提交事務(wù)的所有操作。即,將事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的所有更新寫回即,將事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的所有更新寫回到物理數(shù)據(jù)庫(kù)中去,事務(wù)正常結(jié)束。到物理數(shù)據(jù)庫(kù)中去,事務(wù)正常結(jié)束。ROLLBACK:回滾。在事務(wù)運(yùn)行過(guò)程中發(fā)回滾。在事務(wù)運(yùn)行過(guò)程中發(fā)生了某種故障,事務(wù)不能繼續(xù)進(jìn)行,系統(tǒng)生了某種故障,事務(wù)不能繼續(xù)進(jìn)行,系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有已完成的操作撤將事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有已完成的操作撤消,使數(shù)據(jù)庫(kù)恢復(fù)到該事務(wù)
58、執(zhí)行前的狀態(tài)。消,使數(shù)據(jù)庫(kù)恢復(fù)到該事務(wù)執(zhí)行前的狀態(tài)。6.3.1 事務(wù)事務(wù)722事務(wù)的特性事務(wù)的特性(1)原子性原子性(Atomicity):一個(gè)事務(wù)中對(duì)數(shù)據(jù)一個(gè)事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有操作,是一個(gè)不可分割的整體,庫(kù)的所有操作,是一個(gè)不可分割的整體,要么都做,要么都不做。要么都做,要么都不做。( (由由DBMSDBMS的事務(wù)的事務(wù)管理子系統(tǒng)來(lái)實(shí)現(xiàn)原子性。管理子系統(tǒng)來(lái)實(shí)現(xiàn)原子性。) )(2)一致性一致性(Consistency):一個(gè)事務(wù)獨(dú)立執(zhí)):一個(gè)事務(wù)獨(dú)立執(zhí)行的結(jié)果,將保持?jǐn)?shù)據(jù)庫(kù)的一致性。即事行的結(jié)果,將保持?jǐn)?shù)據(jù)庫(kù)的一致性。即事務(wù)的執(zhí)行結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致務(wù)的執(zhí)行結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一
59、致?tīng)顟B(tài)變到另一個(gè)一致?tīng)顟B(tài)。狀態(tài)變到另一個(gè)一致?tīng)顟B(tài)。( (完整性控制完整性控制子系統(tǒng)保證子系統(tǒng)保證) )6.3.1 事務(wù)事務(wù)73(3)隔離性隔離性(Isolation):在多個(gè)事務(wù)并發(fā)執(zhí)):在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),一個(gè)事務(wù)的執(zhí)行不受其他事務(wù)干擾。行時(shí),一個(gè)事務(wù)的執(zhí)行不受其他事務(wù)干擾。系統(tǒng)應(yīng)保證這些事務(wù)的并發(fā)執(zhí)行與這些事系統(tǒng)應(yīng)保證這些事務(wù)的并發(fā)執(zhí)行與這些事務(wù)先后單獨(dú)執(zhí)行時(shí)的結(jié)果一樣。務(wù)先后單獨(dú)執(zhí)行時(shí)的結(jié)果一樣。 ( (隔離性由隔離性由DBMSDBMS的并發(fā)控制子系統(tǒng)保證。的并發(fā)控制子系統(tǒng)保證。) )6.3.1 事務(wù)事務(wù)74(4)持續(xù)性持續(xù)性(Durability):也稱持久性。指):也稱持久性。指一
60、個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久的。即使以后發(fā)生故障,改變就應(yīng)該是永久的。即使以后發(fā)生故障,也應(yīng)保留這個(gè)事務(wù)的執(zhí)行結(jié)果。也應(yīng)保留這個(gè)事務(wù)的執(zhí)行結(jié)果。 ( (持續(xù)性由持續(xù)性由DBMSDBMS的恢復(fù)子系統(tǒng)保證。的恢復(fù)子系統(tǒng)保證。) ) 上述四個(gè)性質(zhì)簡(jiǎn)稱事務(wù)的上述四個(gè)性質(zhì)簡(jiǎn)稱事務(wù)的ACID性質(zhì)。保性質(zhì)。保證事務(wù)的證事務(wù)的ACID性質(zhì)是事務(wù)處理的重要任性質(zhì)是事務(wù)處理的重要任務(wù)。務(wù)。6.3.1 事務(wù)事務(wù)75 事務(wù)的事務(wù)的ACID性質(zhì)可能遭到破壞的因素:性質(zhì)可能遭到破壞的因素:(1) 多個(gè)事務(wù)并發(fā)運(yùn)行時(shí),不同事務(wù)的操作交多個(gè)事務(wù)并發(fā)運(yùn)行時(shí),不同事務(wù)的操
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度柑橘滯銷產(chǎn)品線上推廣與“搶購(gòu)”銷售合同3篇
- 2024瑜伽館瑜伽教練勞動(dòng)合同范本及教練休息時(shí)間規(guī)定3篇
- 2024版雞蛋簡(jiǎn)單購(gòu)銷合同
- 2025年度養(yǎng)老設(shè)施建設(shè)承包合同范本權(quán)威版4篇
- 2025年度智能交通信號(hào)控制系統(tǒng)研發(fā)與推廣合同4篇
- 2024知識(shí)產(chǎn)權(quán)許可使用合同許可人和被許可人
- 2025年度漁業(yè)生態(tài)循環(huán)承包經(jīng)營(yíng)合同4篇
- 2024版魚苗的購(gòu)銷合同范本
- 2025年度智慧能源管理系統(tǒng)承包合作協(xié)議范文4篇
- 2025年度醫(yī)院手術(shù)室設(shè)備供應(yīng)及承包運(yùn)營(yíng)協(xié)議4篇
- 車險(xiǎn)理賠全解析
- 微粒貸逾期還款協(xié)議書范本
- Unit10l'mten!(練)新概念英語(yǔ)青少版StarterA
- 產(chǎn)業(yè)園區(qū)開(kāi)發(fā)全流程實(shí)操解析
- NBT 47013.4-2015 承壓設(shè)備無(wú)損檢測(cè) 第4部分:磁粉檢測(cè)
- 羽毛球比賽對(duì)陣表模板
- 2024年上海市中考數(shù)學(xué)真題試卷及答案解析
- 2024年全國(guó)卷1高考理綜試題及答案
- 初中語(yǔ)文現(xiàn)代文閱讀訓(xùn)練及答案二十篇
- 農(nóng)村開(kāi)荒土地承包權(quán)轉(zhuǎn)讓協(xié)議書
- 牙科門診病歷
評(píng)論
0/150
提交評(píng)論