c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第1頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第2頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第3頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第4頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

9.1數(shù)據(jù)庫安全性控制的一般方法9.2SQLServer的安全體系結(jié)構(gòu)

9.3SQLServer數(shù)據(jù)庫安全性管理2/1/2023

數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫,以防止不合法的使用造成的數(shù)據(jù)泄密、更改或破壞。數(shù)據(jù)庫管理系統(tǒng)安全性保護(hù),就是通過種種防范措施以防止用戶越權(quán)使用數(shù)據(jù)庫。安全保護(hù)措施是否有效是衡量數(shù)據(jù)庫系統(tǒng)的主要性能指標(biāo)之一。2/1/20239.1數(shù)據(jù)庫安全性控制的一般方法9.1.1安全性級別數(shù)據(jù)庫的完整性盡可能的避免對數(shù)據(jù)庫的無意濫用。數(shù)據(jù)庫的安全性盡可能避免對數(shù)據(jù)庫的惡意濫用。為了防止數(shù)據(jù)庫的惡意濫用,可以在下述不同的安全級別上設(shè)置各種安全措施。

(1)環(huán)境級:對計(jì)算機(jī)系統(tǒng)的機(jī)房和設(shè)備加以保護(hù),防止物理破壞。

(2)職員級:對數(shù)據(jù)庫系統(tǒng)工作人員,加強(qiáng)勞動(dòng)紀(jì)律和職業(yè)道德教育,并正確的授予其訪問數(shù)據(jù)庫的權(quán)限。

(3)操作系統(tǒng)級:防止未經(jīng)授權(quán)用戶從操作系統(tǒng)層著手訪問數(shù)據(jù)庫。

(4)網(wǎng)絡(luò)級:由于數(shù)據(jù)庫系統(tǒng)允許用戶通過網(wǎng)絡(luò)訪問,因此,網(wǎng)絡(luò)軟件內(nèi)部的安全性對數(shù)據(jù)庫的安全是很重要的。

(5)數(shù)據(jù)庫系統(tǒng)級:檢驗(yàn)用戶的身份是否合法,檢驗(yàn)用戶數(shù)據(jù)庫操作權(quán)限是否正確。本節(jié)主要討論數(shù)據(jù)庫系統(tǒng)級的安全性問題。2/1/2023

9.1.2數(shù)據(jù)庫安全控制的一般方法數(shù)據(jù)庫系統(tǒng)中一般采用用戶標(biāo)識(shí)和鑒別、存取控制、視圖以及密碼存儲(chǔ)等技術(shù)進(jìn)行安全控制。標(biāo)識(shí)與鑒別

用戶標(biāo)識(shí)和鑒別是DBMS提供的最外層保護(hù)措施。用戶每次登錄數(shù)據(jù)庫時(shí)都要輸入用戶標(biāo)識(shí),DBMS進(jìn)行核對后,對于合法的用戶獲得進(jìn)入系統(tǒng)最外層的權(quán)限。用戶標(biāo)識(shí)和鑒別的方法很多,常用的方法有:身份(Identification)認(rèn)證用戶的身份,是系統(tǒng)管理員為用戶定義的用戶名(也稱為用戶標(biāo)識(shí)、用戶賬號、用戶ID),并記錄在計(jì)算機(jī)系統(tǒng)或DBMS中。身份認(rèn)證,是指系統(tǒng)對輸入的用戶名與合法用戶名對照,鑒別此用戶是否為合法用戶。若是,則可以進(jìn)入下一步的核實(shí);否則,不能使用系統(tǒng)。2/1/2023口令(Password)認(rèn)證用戶的口令,是合法用戶自己定義的密碼。為保密起見,口令由合法用戶自己定義并可以隨時(shí)變更??诹钫J(rèn)證是為了進(jìn)一步對用戶核實(shí)。通常系統(tǒng)要求用戶輸入口令,只有口令正確才能進(jìn)入系統(tǒng)。隨機(jī)數(shù)運(yùn)算認(rèn)證隨機(jī)數(shù)認(rèn)證實(shí)際上是非固定口令的認(rèn)證,即用戶的口令每次都是不同的。鑒別時(shí)系統(tǒng)提供一個(gè)隨機(jī)數(shù),用戶根據(jù)預(yù)先約定的計(jì)算過程或計(jì)算函數(shù)進(jìn)行計(jì)算,并將計(jì)算結(jié)果輸送到計(jì)算機(jī),系統(tǒng)根據(jù)用戶計(jì)算結(jié)果判定用戶是否合法。例如算法為:“口令=隨機(jī)數(shù)平方的后三位”,出現(xiàn)的隨機(jī)數(shù)是36,則口令是296。2/1/2023存取控制(授權(quán)機(jī)制)DBMS的存取控制機(jī)制是數(shù)據(jù)庫安全的一個(gè)重要保證,它確保具有數(shù)據(jù)庫使用權(quán)限的用戶訪問數(shù)據(jù)庫并進(jìn)行權(quán)限范圍內(nèi)的操作,同時(shí)令未被授權(quán)的用戶無法接近數(shù)據(jù)。存取機(jī)制的構(gòu)成

存取控制機(jī)制主要包括兩部分:定義用戶權(quán)限用戶權(quán)限是指用戶對于數(shù)據(jù)對象能夠進(jìn)行的操作種類。要進(jìn)行用戶權(quán)限定義,DBMS必須提供有關(guān)定義用戶權(quán)限的語言,該語言稱為數(shù)據(jù)控制語言DCL。進(jìn)行權(quán)限檢查每當(dāng)用戶發(fā)出存取數(shù)據(jù)庫的操作請求后,DBMS首先查找數(shù)據(jù)字典,進(jìn)行合法權(quán)限檢查。如果用戶的操作請求沒有超出其數(shù)據(jù)操作權(quán)限,則準(zhǔn)予執(zhí)行其數(shù)據(jù)操作;否則,DBMS將拒絕執(zhí)行此操作。2/1/2023存取機(jī)制的類別在自主存取控制方法中,用戶對于不同的數(shù)據(jù)對象可以有不同的存取權(quán)限,不同的用戶對同一數(shù)據(jù)對象的存取權(quán)限也可以各不相同,用戶還可以將自己擁有的存取權(quán)限轉(zhuǎn)授給其他用戶。在強(qiáng)制存取控制方法中,每一個(gè)數(shù)據(jù)對象被標(biāo)以一定的密級;每一個(gè)用戶也被授予某一個(gè)級別的許可證。對于任意一個(gè)對象,只有具有合法許可證的用戶才可以存取。顯然,自主存取控制比較靈活,強(qiáng)制存取控制比較嚴(yán)格。2/1/2023

視圖機(jī)制進(jìn)行存取權(quán)限的控制,不僅可以通過授權(quán)來實(shí)現(xiàn),而且還可以通過定義用戶的外模式來提供一定的安全保護(hù)功能。在關(guān)系數(shù)據(jù)庫中,可以為不同的用戶定義不同的視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)操作的用戶隱藏起來,從而自動(dòng)地對數(shù)據(jù)提供一定程度的安全保護(hù)。對視圖也可以進(jìn)行授權(quán)。視圖機(jī)制使系統(tǒng)具有數(shù)據(jù)安全性、數(shù)據(jù)邏輯獨(dú)立性和操作簡便等優(yōu)點(diǎn)。2/1/2023

審計(jì)方法審計(jì)功能就是把用戶對數(shù)據(jù)庫的所有操作自動(dòng)記錄下來放入審計(jì)日志(AuditLog)中,一旦發(fā)生數(shù)據(jù)被非法存取,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。由于任何系統(tǒng)的安全保護(hù)措施都不可能無懈可擊,蓄意盜竊、破壞數(shù)據(jù)的人總是想方設(shè)法打破控制,因此審計(jì)功能在維護(hù)數(shù)據(jù)安全、打擊犯罪方面是非常有效的。由于審計(jì)通常是很費(fèi)時(shí)間和空間的,因此DBA要根據(jù)應(yīng)用對安全性的要求,靈活打開或關(guān)閉審計(jì)功能。2/1/2023

數(shù)據(jù)加密

對高度敏感數(shù)據(jù)(例如財(cái)務(wù)、軍事、國家機(jī)密等數(shù)據(jù)),除了以上安全性措施外,還應(yīng)該采用數(shù)據(jù)加密技術(shù)。數(shù)據(jù)加密是防止數(shù)據(jù)在存儲(chǔ)和傳輸中失密的有效手段。加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)(稱為明文)變換為不可直接識(shí)別的格式(稱為密文),從而使得不知道解密算法的人無法獲得數(shù)據(jù)的內(nèi)容。加密方法主要有兩種:

替換方法使用密鑰將明文中的每一個(gè)字符轉(zhuǎn)換為密文中的字符。

置換方法將明文的字符按不同的順序重新排列。單獨(dú)使用這兩種方法的任意一種都是不夠安全的。但是將這兩種方法結(jié)合起來就能達(dá)到相當(dāng)高的安全程度。2/1/20239.1.3關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL的自主存取控制方法

SQL標(biāo)準(zhǔn)對自主存取控制提供了支持,其DCL主要是GRANT(授權(quán))語句和REVOKE(收權(quán))語句。關(guān)系中的用戶權(quán)限用戶權(quán)限主要包括數(shù)據(jù)對象和操作類型兩個(gè)要素。定義用戶的存取權(quán)限稱為授權(quán)。

表9-1不同類型數(shù)據(jù)對象的操作權(quán)限數(shù)據(jù)對象操作權(quán)限表、視圖、列(TABLE)SELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGE基本表(TABLE)ALTER,INDEX數(shù)據(jù)庫(DATABASE)CREATETAB表空間(TABLESPACE)USE系統(tǒng)CREATEDBC2/1/2023

SQL的存取控制功能--授權(quán)和收權(quán)語句授權(quán)(GRANT)語句

格式:GRANT權(quán)限[ON對象]TO用戶[WITHGRANTOPTION]

功能:將指定數(shù)據(jù)對象的指定權(quán)限授予指定的用戶。

說明:其中,WITHGRANTOPTION選項(xiàng)的作用是允許獲得指定權(quán)限的用戶把權(quán)限再授予其他用戶。

【例9.1】把對讀者信息表(readers)中的列“姓名”修改、查詢表的權(quán)限授予用戶user1的語句可以寫為:

GRANTUPDATE(姓名),SELECTONTABLEreadersTOuser1;

【例9.2】把對表readers,books,borrowinf的查詢、修改、插入和刪除等全部權(quán)限授予用戶user1和用戶user2的語句可以寫為:

GRANTALLPRIVILIGESONTABLEreaders,books,borrowinfTOuserl,user2;2/1/2023

【例9.3】

把對表books的查詢權(quán)限授予所有用戶。

GRANTSELECTONTABLEbooksTOPUBLIC;

【例9.4】

把在數(shù)據(jù)庫MyDB中建立表的權(quán)限授予用戶user2。

GRANTCREATETABONDATABASEMyDBTOuser2;

【例9.5】把對表readers的查詢權(quán)限授予用戶user3,并給用戶user3有再授予的權(quán)限。

GRANTSELECTONTABLEreadersTOuser3WITHGRANTOPTION;

【例9.6】用戶user3把查詢r(jià)eaders表的權(quán)限授予用戶user4。

GRANTSELECTONTABLEreadersTOuser4;2/1/2023回收(REVOKE)語句

格式:REVOKE權(quán)限[ON對象]FROM用戶;

功能:把已經(jīng)授予指定用戶的指定權(quán)限收回。

【例9.7】把用戶user1修改讀者姓名的權(quán)限收回。

REVOKEUPDATE(姓名)ONTABLEreadersFROMuserl;

【例9.8】

把用戶user3查詢r(jià)eaders表的權(quán)限收回。

REVOKESELECTONTABLEreadersFROMuser3;2/1/20239.2SQLServer的安全體系結(jié)構(gòu)

9.2.1SQLServer2000的安全體系結(jié)構(gòu)SQLServer2000提供以下4層安全防線:操作系統(tǒng)的安全防線

Windows(WindiwsNT或Windows2000Server等)網(wǎng)絡(luò)管理員負(fù)責(zé)建立用戶組,設(shè)置賬號并注冊,同時(shí)決定不同用戶對不同系統(tǒng)資源的訪問級別。SQLServer的運(yùn)行安全防線

SQLServer通過登錄賬號設(shè)置來創(chuàng)建附加安全層。用戶只有登錄成功,才能與SQLServer建立一次連接。SQLServer數(shù)據(jù)庫的安全防線

SQLServer的特定數(shù)據(jù)庫都有自己的用戶和角色,該數(shù)據(jù)庫只能由它的用戶或角色訪問,其他用戶無權(quán)訪問其數(shù)據(jù)。SQLServer數(shù)據(jù)庫對象的安全防線

SQLServer可以對權(quán)限進(jìn)行管理。保證合法用戶即使進(jìn)入了數(shù)據(jù)庫也不能有超越權(quán)限的數(shù)據(jù)存取操作,即合法用戶必須在自己的權(quán)限范圍內(nèi)進(jìn)行數(shù)據(jù)操作。2/1/2023

9.2.2SQLServer2000的安全認(rèn)證模式

SQLServer2000的安全認(rèn)證模式安全認(rèn)證是指數(shù)據(jù)庫系統(tǒng)對用戶訪問數(shù)據(jù)庫系統(tǒng)時(shí)所輸入的賬號和口令進(jìn)行確認(rèn)的過程。安全性認(rèn)證模式是指系統(tǒng)確認(rèn)用戶身份的方式。SQLServer2000有兩種安全認(rèn)證模式,即Windows安全認(rèn)證模式和SQLServer安全認(rèn)證模式。Windows安全認(rèn)證模式

Windows安全認(rèn)證模式是指SQLServer服務(wù)器通過使用Windows網(wǎng)絡(luò)用戶的安全性來控制用戶對SQLServer服務(wù)器的登錄訪問。SQLServer的安全認(rèn)證模式

SQLServer安全認(rèn)證模式要求用戶必須輸入有效的SQLServer登錄賬號及口令。這個(gè)登錄賬號是獨(dú)立于操作系統(tǒng)的登錄賬號的,從而可以在一定程度上避免操作系統(tǒng)層上對數(shù)據(jù)庫的非法訪問。2/1/2023設(shè)置SQLServer2000的安全認(rèn)證模式使用SQLServer2000企業(yè)管理器功能選擇需要的安全認(rèn)證模式,其步驟如下:1)在企業(yè)管理器中擴(kuò)展開SQL服務(wù)器組,右擊需要設(shè)置的SQL服務(wù)器,在彈出的菜單中選擇【編輯SQLServer注冊屬性】命令。

2)在彈出的“已注冊的SQLServer屬性”對話框(見圖9-1)的【連接】區(qū)域有身份驗(yàn)證的兩個(gè)單選框。單擊【使用Windows身份驗(yàn)證[W]】為選擇集成安全認(rèn)證模式;單擊【使用SQLServer身份驗(yàn)證[Q]】則為選擇SQLServer2000安全認(rèn)證模式。2/1/2023圖9-1編輯已注冊的SQLServer屬性對話框2/1/20239.3SQLServer數(shù)據(jù)庫安全性管理

SQLServer的安全性管理包括以下幾個(gè)方面:數(shù)據(jù)庫系統(tǒng)登錄管理、數(shù)據(jù)庫用戶管理、數(shù)據(jù)庫系統(tǒng)角色管理以及數(shù)據(jù)庫訪問權(quán)限的管理。9.3.1數(shù)據(jù)庫系統(tǒng)登錄管理登錄賬號登錄賬號也稱為登錄用戶或登錄名,是服務(wù)器級用戶訪問數(shù)據(jù)庫系統(tǒng)的標(biāo)識(shí)。為了訪問SQLServer系統(tǒng),用戶必須提供正確的登錄賬號,這些登錄賬號既可以是Windows登錄賬號,也可以是SQLServer登錄賬號。2/1/2023查看登錄賬號使用企業(yè)管理器可以創(chuàng)建、查看和管理登錄賬號?!暗卿涃~號”存放在SQL服務(wù)器的安全性文件夾中。當(dāng)進(jìn)入企業(yè)管理器,打開指定的SQL服務(wù)器組和SQL服務(wù)器,并選擇【安全性】文件夾的系列操作后,就會(huì)出現(xiàn)如圖9-2所示的屏幕窗口。通過該窗口可以看出安全性文件夾包括4個(gè)文件夾:登錄、服務(wù)器角色、連接服務(wù)器和遠(yuǎn)程服務(wù)器。單擊【登錄】可以看到當(dāng)前數(shù)據(jù)庫服務(wù)器的合法登錄用戶的一些信息。編輯或刪除登錄賬號單擊【登錄】文件夾,在出現(xiàn)的顯示登錄賬號的窗口中,用鼠標(biāo)右擊需要操作的登錄號:選擇【屬性】便可對該用戶已設(shè)定內(nèi)容進(jìn)行重新編輯;選擇【刪除】便可刪除該登錄用戶。進(jìn)行上述操作需要對當(dāng)前服務(wù)器擁有管理登錄(SecurityAdministrators)及其以上的權(quán)限。2/1/2023圖9-2安全性文件夾的屏幕界面2/1/2023圖9-3新建登錄對話框

2/1/2023

9.3.2數(shù)據(jù)庫用戶管理用戶賬號用戶賬號是某個(gè)數(shù)據(jù)庫的訪問標(biāo)識(shí)。在SQLServer的數(shù)據(jù)庫中,對象的全部權(quán)限均由用戶賬號控制。用戶賬號可以與登錄賬號相同也可以不想同。數(shù)據(jù)庫用戶必須是登錄用戶。登錄用戶只有成為數(shù)據(jù)庫用戶(或數(shù)據(jù)庫角色)后才能訪問數(shù)據(jù)庫。用戶賬號與具體的數(shù)據(jù)庫有關(guān)。在該表中每一行數(shù)據(jù)表示一個(gè)SQLServer用戶或SQLServer角色信息。創(chuàng)建數(shù)據(jù)庫的用戶稱為數(shù)據(jù)庫所有者(dbo),他具有這個(gè)數(shù)據(jù)庫的所有權(quán)限。系統(tǒng)管理員sa是他所管理系統(tǒng)的任何數(shù)據(jù)庫的dbo用戶。2/1/2023查看用戶賬號使用企業(yè)管理器可以創(chuàng)建、查看和管理數(shù)據(jù)庫用戶。每個(gè)數(shù)據(jù)庫中都有“用戶”文件夾。當(dāng)進(jìn)入企業(yè)管理器,打開指定的SQL服務(wù)器組和SQL服務(wù)器,并打開【數(shù)據(jù)庫】文件夾,選定并打開要操作的數(shù)據(jù)庫后,單擊【用戶】文件夾就會(huì)出現(xiàn)如圖9-4所示的用戶信息窗口。通過該窗口可以看到當(dāng)前數(shù)據(jù)庫合法用戶的一些信息。圖9-4查看用戶信息窗口2/1/2023創(chuàng)建新的數(shù)據(jù)庫用戶創(chuàng)建新的數(shù)據(jù)庫用戶有兩種方法。在創(chuàng)建登錄用戶時(shí),指定他作為數(shù)據(jù)庫用戶的身份

例如,在圖9-3新建登錄對話框中,輸入登錄名稱(如user1),單擊【數(shù)據(jù)庫訪問】選項(xiàng)卡,在【指定此登錄可以訪問的數(shù)據(jù)庫[S]】區(qū)域的【許可】欄目下指定訪問數(shù)據(jù)庫(如MyDb),如圖9-5所示,登錄用戶user1同時(shí)也成為數(shù)據(jù)庫MyDb的用戶。單獨(dú)創(chuàng)建數(shù)據(jù)庫用戶這種方法適于在創(chuàng)建登錄賬號時(shí)沒有創(chuàng)建數(shù)據(jù)庫用戶的情況,操作步驟如下:右擊【用戶】文件夾,在彈出的菜單中選擇【新建數(shù)據(jù)庫用戶】命令后,會(huì)出現(xiàn)圖9-6所示新建用戶對話框界面,在【登錄名】下拉框中選擇預(yù)創(chuàng)建用戶對應(yīng)的登錄名,然后在【用戶名】的文本框中鍵入用戶名即可。如圖9-6所示。通過此界面也可以設(shè)定該數(shù)據(jù)庫用戶的權(quán)限和角色的成員。2/1/2023圖9-5創(chuàng)建登錄時(shí)指定登錄用戶同時(shí)作為數(shù)據(jù)庫用戶界面2/1/2023圖9-6單獨(dú)創(chuàng)建數(shù)據(jù)庫用戶對話框2/1/2023編輯或刪除數(shù)據(jù)庫用戶賬號單擊【用戶】文件夾,在出現(xiàn)的顯示用戶賬號的窗口中,右擊需要操作的用戶賬號,選擇【屬性】命令,出現(xiàn)該用戶的角色和權(quán)限窗口,可對該用戶已設(shè)定內(nèi)容進(jìn)行重新編輯;選擇【刪除】便可刪除該數(shù)據(jù)庫用戶。進(jìn)行上述操作需要對當(dāng)前數(shù)據(jù)庫擁有用戶管理及其以上的權(quán)限。2/1/2023

9.3.3數(shù)據(jù)庫系統(tǒng)角色管理在SQLServer2000中可以把某些用戶設(shè)置成某一角色,這些用戶稱為該角色的成員。當(dāng)對該角色進(jìn)行權(quán)限設(shè)置時(shí),其成員自動(dòng)繼承該角色的權(quán)限。

SQLServer中有兩種角色,即服務(wù)器角色和數(shù)據(jù)庫角色。服務(wù)器角色一臺(tái)計(jì)算機(jī)可以承擔(dān)多個(gè)SQLServer服務(wù)器的管理任務(wù)。固定服務(wù)器角色是對服務(wù)器級用戶即登錄賬號而言的。它是指在登錄時(shí)授予該登錄賬號對當(dāng)前服務(wù)器范圍內(nèi)的權(quán)限。這類角色可以在服務(wù)器上進(jìn)行相應(yīng)的管理操作,完全獨(dú)立于某個(gè)具體的數(shù)據(jù)庫。固定服務(wù)器角色的信息存儲(chǔ)在master數(shù)據(jù)庫的sysxlogins系統(tǒng)表中。SQLServer2000提供了8種固定服務(wù)器角色,如圖9-7所示。2/1/2023圖9-7固定服務(wù)器角色

2/1/2023可以使用企業(yè)管理器將登錄賬號添加到某一指定的固定服務(wù)器角色作為其成員。步驟如下:登錄服務(wù)器后,展開【安全性】文件夾,單擊【服務(wù)器角色】文件夾,則會(huì)出現(xiàn)圖9-7所示的固定服務(wù)器角色窗口,右擊某一角色,在彈出的菜單中選擇【屬性】命令,可以查看該角色的權(quán)限,并可以添加某些登錄賬號作為該角色的成員,也可以將某一登錄賬號從該角色的成員中刪除。注意:

(1)固定服務(wù)器角色不能被刪除、修改和增加;

(2)固定服務(wù)器角色的任何成員都可以將其他的登錄賬號增加到該服務(wù)器角色中。

2/1/2023數(shù)據(jù)庫角色在一個(gè)服務(wù)器上可以創(chuàng)建多個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫角色對應(yīng)于單個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫的角色分為固定數(shù)據(jù)庫角色和用戶定義的數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色是指SQLServer2000為每個(gè)數(shù)據(jù)庫提供的固定角色。SQLServer2000允許用戶自己定義數(shù)據(jù)庫角色,稱為用戶定義的數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色的信息存儲(chǔ)在sysuers系統(tǒng)表中。SQLServer2000提供了10種固定數(shù)據(jù)庫角色,如表9-3所示。

2/1/2023角色描述public維護(hù)默認(rèn)的許可db_owner執(zhí)行數(shù)據(jù)庫中的任何操作db_accessadmin可以增加或刪除數(shù)據(jù)庫用戶、組和角色db_addladmin增加、修改或刪除數(shù)據(jù)庫對象db_securityadmin執(zhí)行語句和對象權(quán)限管理db_backupoperator備份和恢復(fù)數(shù)據(jù)庫db_datareader檢索任意表中的數(shù)據(jù)db_datawriter增加、修改和刪除所有表中的數(shù)據(jù)db_denydatareader不能檢索任意一個(gè)表中數(shù)據(jù)db_denydatawriter不能修改任意一個(gè)表中的數(shù)據(jù)表9-3固定數(shù)據(jù)庫角色

2/1/2023可以使用企業(yè)管理器查看固定數(shù)據(jù)庫角色,還可以將某些數(shù)據(jù)庫用戶添加到固定數(shù)據(jù)庫角色中,使數(shù)據(jù)庫用戶成為該角色的成員。也可以將固定數(shù)據(jù)庫角色的成員刪除。將用戶添加到某一數(shù)據(jù)庫角色的步驟為:打開指定的數(shù)據(jù)庫,單擊【角色】文件夾,右擊某個(gè)固定數(shù)據(jù)庫角色,在出現(xiàn)的菜單中選擇【屬性】命令,就會(huì)出現(xiàn)圖9-8所示的數(shù)據(jù)庫角色屬性對話框,單擊【添加】按鈕,則會(huì)出現(xiàn)該角色的非成員用戶,按提示信息操作可以將他們添加到該角色中;選中某一用戶后,單擊【刪除】按鈕可以將此用戶從該角色中刪除。

注意:(1)SQLServer2000提供的10種固定數(shù)據(jù)庫角色不能被刪除和修改。(2)固定數(shù)據(jù)庫角色的成員可以增加其他用戶到該角色中。2/1/2023圖9-8數(shù)據(jù)庫角色屬性對話框

2/1/2023

用戶定義的數(shù)據(jù)庫角色在許多情況下,固定數(shù)據(jù)庫角色不能滿足要求,需要用戶自定義數(shù)據(jù)庫新角色。使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫角色的步驟為:在企業(yè)管理器中打開要操作的數(shù)據(jù)庫文件夾,右擊【角色】文件夾,并在彈出的菜單中選擇【新建數(shù)據(jù)庫角色】命令,則出現(xiàn)新建數(shù)據(jù)庫角色對話框如圖9-9所示,按提示回答角色名稱等相應(yīng)信息后,單擊【確定】按鈕即可。在新建數(shù)據(jù)庫角色對話框中可完成3種操作:在名稱欄中輸入新角色名;在用戶欄中添加或刪除角色中的用戶;確定數(shù)據(jù)庫角色的類型。用戶定義的數(shù)據(jù)庫角色類型有兩種:標(biāo)準(zhǔn)角色(StandardRole)和應(yīng)用程序角色(ApplicationRole)。標(biāo)準(zhǔn)角色用于正常的用戶管理,它可以包括成員。而應(yīng)用程序角色是一種特殊角色,需要指定口令,是一種安全機(jī)制。2/1/2023圖9-9新增數(shù)據(jù)庫角色對話框圖9-10數(shù)據(jù)庫角色權(quán)限設(shè)置對話框

2/1/2023對用戶定義的數(shù)據(jù)庫角色,可以設(shè)置或修改其權(quán)限。使用企業(yè)管理器進(jìn)行操作的步驟為:打開操作數(shù)據(jù)庫,選中用戶定義的數(shù)據(jù)庫角色,右擊此角色在彈出的菜單中選擇【屬性】命令,然后單擊【權(quán)限】按鈕,則會(huì)出現(xiàn)當(dāng)前數(shù)據(jù)庫的全部數(shù)據(jù)對象以及該角色的權(quán)限標(biāo)記(若對角色設(shè)置過權(quán)限,也可以僅列出該角色具有權(quán)限的數(shù)據(jù)對象)。如圖9-10所示。單擊數(shù)據(jù)庫角色權(quán)限設(shè)置對話框中數(shù)據(jù)對象訪問權(quán)限的選擇方格有三種狀況:

√:授予權(quán)限。表示授予當(dāng)前角色對指定的數(shù)據(jù)對象的該項(xiàng)操作權(quán)限。

×:禁止權(quán)限。表示禁止當(dāng)前角色對指定的數(shù)據(jù)對象的該項(xiàng)操作權(quán)限。

空:撤消權(quán)限。表示撤銷當(dāng)前角色對指定的數(shù)據(jù)對象的該項(xiàng)操作權(quán)限。使用企業(yè)管理器也可以刪除用戶定義的數(shù)據(jù)庫角色。步驟為:打開操作數(shù)據(jù)庫,選中用戶定義的數(shù)據(jù)庫角色,右擊此角色在彈出的菜單中選擇【刪除】命令即可。2/1/20239.3.4SQLServer權(quán)限管理權(quán)限的種類

SQLServer2000使用權(quán)限來加強(qiáng)系統(tǒng)的安全性,通常權(quán)限可以分為三種類型:對象權(quán)限、語句權(quán)限和隱含權(quán)限。對象權(quán)限對象權(quán)限是用于控制用戶對數(shù)據(jù)庫對象執(zhí)行某些操作的權(quán)限。數(shù)據(jù)庫對象通常包括表、視圖、存儲(chǔ)過程。對象權(quán)限是針對數(shù)據(jù)庫對象設(shè)置的,它由數(shù)據(jù)庫對象所有者授予、禁止或撤消。語句權(quán)限語句權(quán)限是用于控制數(shù)據(jù)庫操作或創(chuàng)建數(shù)據(jù)庫中的對象操作的權(quán)限。語句權(quán)限用于語句本身,它只能由SA或dbo授予、禁止或撤消。語句權(quán)限的授予對象一般為數(shù)據(jù)庫角色或數(shù)據(jù)庫用戶。

2/1/2023Transact-SQL數(shù)據(jù)庫對象SELECT(查詢)表、視圖、表和視圖中的列UPDATE(修改)表、視圖、表的列INSERT(插入)表、視圖DELETE(刪除)表、視圖EXECUTE(調(diào)用過程)存儲(chǔ)過程DRI(聲明參照完整性)表、表中的列表9-4對象權(quán)限適用的對象和語句2/1/2023Transact-SQL語句權(quán)限說明CREATEDATABASE創(chuàng)建數(shù)據(jù)庫,只能由SA授予SQL服務(wù)器用戶或角色CREATEDEFAULT創(chuàng)建缺省CREATEPROCEDURE創(chuàng)建存儲(chǔ)過程CREATERULE創(chuàng)建規(guī)則CREATETABLE創(chuàng)建表CREATEVIEW創(chuàng)建視圖BACKUPDATABASE備份數(shù)據(jù)庫

表9-5語句權(quán)限適用的語句和權(quán)限說明

2/1/2023隱含權(quán)限隱含權(quán)限指系統(tǒng)預(yù)定義而不需要授權(quán)就有的權(quán)限,包括固定服務(wù)器角色成員、固定數(shù)據(jù)庫角色成員、數(shù)據(jù)庫所有者(dbo)和數(shù)據(jù)庫對象所有者(dboo)所擁有的權(quán)限。

例如,sysadmin固定服務(wù)器角色成員可以在服務(wù)器范圍內(nèi)做任何操作,dbo可以對數(shù)據(jù)庫做任何操作,dboo可以對其擁有的數(shù)據(jù)庫對象做任何操作,對他不需要明確的賦予權(quán)限。2/1/2023權(quán)限的管理對象權(quán)限的管理可以通過兩種方法實(shí)現(xiàn):一種是通過對象管理它的用戶及操作權(quán)限,另一種是通過用戶管理對應(yīng)的數(shù)據(jù)庫對象及操作權(quán)限。具體使用哪種方法要視管理的方便性來決定。通過對象授予、撒消或禁止對象權(quán)限如果一次要為多個(gè)用戶(角色)授予、撤消或禁止對某一個(gè)數(shù)據(jù)庫對象的權(quán)限時(shí),應(yīng)采用通過對象的方法實(shí)現(xiàn)。在SQLServer的企業(yè)管理器中,實(shí)現(xiàn)對象權(quán)限管理的操作步驟如下:

1)展開企業(yè)管理器窗口,打開【數(shù)據(jù)庫】文件夾,展開要操作的數(shù)據(jù)庫(如MyDb),右擊指定的對象(如readers表)。

2)在彈出的菜單中,選擇【所有任務(wù)】,在彈出的子菜單中選擇【管理權(quán)限】命令,此時(shí)會(huì)出現(xiàn)一個(gè)對象權(quán)限對話框,如圖9-11所示。2/1/2023

圖9-11數(shù)據(jù)庫對象權(quán)限對話框

2/1/2023

3)對話框的上部,有兩個(gè)單選框如圖9-11所示,可以根據(jù)需要選擇一個(gè)。一般選擇【列出全部用戶】→【用戶定義的數(shù)據(jù)庫角色/public】。

4)對話框的下面是有關(guān)數(shù)據(jù)庫用戶和角色所對應(yīng)的權(quán)限表。這些權(quán)限均以復(fù)選框的形式表示。復(fù)選框有三種狀態(tài):“√”(授予權(quán)限)、“×”(禁止權(quán)限)、空(撤消權(quán)限)。在表中可以對各用戶或角色的各種對象操作權(quán)限(SELECT、INSERT、UPDATE、DELETE、EXEC和DRI)進(jìn)行授予、禁止或撤消,單擊復(fù)選框可改變其狀態(tài)。

5)完成后單擊【確定】按鈕。2/1/2023圖9-12數(shù)據(jù)庫角色權(quán)限屬性對話框2/1/2023通過用戶或角色授予、撤消或禁止對象權(quán)限如果要為一個(gè)用戶或角色同時(shí)授予、撤消或者禁止多個(gè)數(shù)據(jù)庫對象的使用權(quán)限,則可以通過用戶或角色的方法進(jìn)行。例如要對“MyDb”數(shù)據(jù)庫中的“數(shù)據(jù)輸入”角色進(jìn)行授權(quán)操作,在企業(yè)管理器中,通過用戶或角色授權(quán)(或收權(quán))的操作步驟如下:

1)擴(kuò)展開SQL服務(wù)器和【數(shù)據(jù)庫】文件夾,單擊數(shù)據(jù)庫【MyDb】,單擊【用戶】或【角色】。本例單擊【角色】。在窗口中找到要選擇的用戶或角色,本例為【數(shù)據(jù)輸入】角色,右擊該角色,在彈出菜單中選擇【屬性】命令后,出現(xiàn)如圖9-12所示數(shù)據(jù)庫角色屬性對話框。

2)在數(shù)據(jù)庫角色屬性對話框中,單擊【權(quán)限】按鈕,會(huì)出現(xiàn)如圖9-13所示的數(shù)據(jù)庫角色權(quán)限屬性對話框。2/1/2023

圖9-13數(shù)據(jù)庫角色權(quán)限屬性對話框2/1/2023

4)在對話框的權(quán)限列表中,對每個(gè)對象進(jìn)行授予、撤消或禁止權(quán)限操作。在權(quán)限表中,權(quán)限SELECT、INSERT、UPDATE等安排在列中,每個(gè)對象的操作權(quán)用一行表示。在相應(yīng)的復(fù)選框上,如果為“√”則為授權(quán),為“×”則為禁止權(quán)限,如果為空白則為撤消權(quán)限。單擊復(fù)選框可改變其狀態(tài)。

5)完成后,單擊【確定】按鈕。返回?cái)?shù)據(jù)庫角色屬性對話框后,再單擊【確定】按鈕。

2/1/2023語句權(quán)限的管理

SQLServer的企業(yè)管理器中還提供了管理語句權(quán)限的方法,其操作的具體步驟如下:

1)展開SQL服務(wù)器和【數(shù)據(jù)庫】文件夾,右擊要操作的數(shù)據(jù)庫文件夾,如【MyDb】數(shù)據(jù)庫,并在彈出菜單中選擇【屬性】命令,會(huì)出現(xiàn)數(shù)據(jù)庫屬性對話框。

2)在數(shù)據(jù)庫屬性對話框中,選擇【權(quán)限】選項(xiàng)卡,出現(xiàn)數(shù)據(jù)庫用戶及角色的語句權(quán)限對話框,如圖9-14所示。在對話框的列表欄中,單擊表中的各復(fù)選框可分別對各用戶或角色授予、撤消或禁止數(shù)據(jù)庫的語句操作權(quán)限。復(fù)選框內(nèi)的“√”表示授予權(quán)限,“×”表示禁止權(quán)限,空白表示撤消權(quán)限。

3)完成后單擊【確定】按鈕。

2/1/2023圖9-14數(shù)據(jù)庫用戶和角色的語句權(quán)限對話框2/1/2023使用Transact-SQL語句管理權(quán)限

SQLServer2000的安全性管理,不僅可以通過SQLServer的企業(yè)管理器的相應(yīng)操作實(shí)現(xiàn),還可以在查詢分析器中通過Transact-SQL語句實(shí)現(xiàn)。這里只介紹用Transact-SQL語句實(shí)現(xiàn)權(quán)限管理,其語句格式與本章9.1.3小節(jié)中介紹的標(biāo)準(zhǔn)SQL的類似。授予權(quán)限語句-GRANT語句授權(quán)

【例9.9】將創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表的權(quán)限授予用戶user1和user2。

USEMyDb

GRANTCREATETABLETOuser2

通過查看數(shù)據(jù)庫MyDb【屬性】的【權(quán)限】項(xiàng),可以看到用戶user2擁有創(chuàng)建表的語句權(quán)限。2/1/2023對象授權(quán)

注意:SQ

溫馨提示

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

最新文檔

評論

0/150

提交評論