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

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理與應(yīng)用教程

―SQLServer第14章數(shù)據(jù)庫的安全管理

第14章數(shù)據(jù)庫的安全管理安全性對(duì)于任何數(shù)據(jù)庫管理系統(tǒng)來說都是至關(guān)重要的,數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止因不合法用戶的訪問而造成數(shù)據(jù)的泄密或破壞。SQLServer2005提供有效的數(shù)據(jù)訪問安全機(jī)制,在數(shù)據(jù)庫管理系統(tǒng)中,用檢查口令等手段來檢查用戶身份,從而保證只有合法的用戶才能進(jìn)入數(shù)據(jù)庫系統(tǒng)。當(dāng)用戶對(duì)數(shù)據(jù)庫執(zhí)行操作時(shí),系統(tǒng)自動(dòng)檢查用戶是否有權(quán)限進(jìn)行這些操作。第14章數(shù)據(jù)庫的安全管理14.1SQLServer的安全性機(jī)制在介紹安全管理之前,首先看一下SQLServer是如何保證數(shù)據(jù)庫安全性的,即了解SQLServer安全機(jī)制。SQLServer2005的安全性管理機(jī)制可分為三個(gè)等級(jí):操作系統(tǒng)級(jí)、SQLServer級(jí)和數(shù)據(jù)庫級(jí)。第14章數(shù)據(jù)庫的安全管理14.1SQLServer的安全性機(jī)制1.操作系統(tǒng)級(jí)的安全性在用戶使用客戶計(jì)算機(jī)通過網(wǎng)絡(luò)實(shí)現(xiàn)SQLServer服務(wù)器的訪問時(shí),用戶首先要獲得計(jì)算機(jī)操作系統(tǒng)的使用權(quán)。一般說來,在能夠?qū)崿F(xiàn)網(wǎng)絡(luò)互聯(lián)的前提下,用戶沒有必要向運(yùn)行SQLServer服務(wù)器的主機(jī)進(jìn)行登錄,除非SQLServer服務(wù)器就運(yùn)行在本地計(jì)算機(jī)上。SQLServer可以直接訪問網(wǎng)絡(luò)端口,所以可以實(shí)現(xiàn)對(duì)Windows安全體系以外的服務(wù)器及其數(shù)據(jù)庫的訪問,操作系統(tǒng)安全性是操作系統(tǒng)管理員或者網(wǎng)絡(luò)管理員的任務(wù)。由于SQLServer采用了集成Windows網(wǎng)絡(luò)安全性機(jī)制,所以使得操作系統(tǒng)安全性的地位得到提高,但同時(shí)也加大了管理數(shù)據(jù)庫系統(tǒng)安全性的靈活性和難度。第14章數(shù)據(jù)庫的安全管理14.1SQLServer的安全性機(jī)制2.SQLServer級(jí)的安全性SQLServer的服務(wù)器級(jí)安全性建立在控制服務(wù)器登錄賬號(hào)和口令的基礎(chǔ)上。SQLServer采用了標(biāo)準(zhǔn)SQLServer登錄和集成WindowsNT登錄兩種方式。無論是使用哪種登錄方式,用戶在登錄時(shí)提供的登錄賬號(hào)和口令,決定了用戶能否獲得SQLServer的訪問權(quán),以及在獲得訪問權(quán)以后,用戶在訪問SQLServer時(shí)可以擁有的權(quán)利。第14章數(shù)據(jù)庫的安全管理14.1SQLServer的安全性機(jī)制3.數(shù)據(jù)庫級(jí)的安全性在用戶通過SQLServer服務(wù)器的安全性檢驗(yàn)以后,將直接面對(duì)不同的數(shù)據(jù)庫入口這是用戶將接受的第三次安全性檢驗(yàn)。在建立用戶的登錄賬號(hào)信息時(shí),SQLServer會(huì)提示用戶選擇默認(rèn)的數(shù)據(jù)庫。以后用戶每次連接上服務(wù)器后,都會(huì)自動(dòng)轉(zhuǎn)到默認(rèn)的數(shù)據(jù)庫上。對(duì)任何用戶來說master數(shù)據(jù)庫的門總是打開的,設(shè)置登錄賬號(hào)時(shí)沒有指定默認(rèn)的數(shù)據(jù)庫,則用戶的權(quán)限將局限在master數(shù)據(jù)庫以內(nèi)。第14章數(shù)據(jù)庫的安全管理14.2身份驗(yàn)證當(dāng)用戶使用SQLServer2005時(shí),需要經(jīng)過兩個(gè)安全性階段,身份驗(yàn)證階段和權(quán)限認(rèn)證階段。身份驗(yàn)證階段,用戶在SQLServer2005上獲得對(duì)任何數(shù)據(jù)庫的訪問權(quán)限之前,必須登錄到SQLServer2005上,并且被認(rèn)為是合法的。SQLServer2005或者Windows對(duì)用戶進(jìn)行驗(yàn)證。如果驗(yàn)證通過,用戶就可以連接到SQLServer2005服務(wù)器上。否則,服務(wù)器將拒絕用戶登錄,從而保證了系統(tǒng)的安全性。第14章數(shù)據(jù)庫的安全管理14.2.1SQLServer的身份驗(yàn)證模式身份驗(yàn)證模式用來確認(rèn)登錄SQLServer用戶的登錄賬號(hào)和密碼的正確性,驗(yàn)證其是否具有連接SQLServer的權(quán)限。在身份驗(yàn)證階段,SQLServer和Windows是組合在一起的,因此SQLServer提供了兩種確認(rèn)用戶的驗(yàn)證模式:Windows驗(yàn)證和混合驗(yàn)證模式。第14章數(shù)據(jù)庫的安全管理14.2.1SQLServer的身份驗(yàn)證模式1.Windows驗(yàn)證模式SQLServer2005數(shù)據(jù)庫系統(tǒng)通常運(yùn)行在Windows服務(wù)器平臺(tái)上,Windows本身具備管理登錄、驗(yàn)證用戶合法性的能力,因此Windows驗(yàn)證模式利用這一用戶安全性和賬號(hào)管理的機(jī)制,允許SQLServer使用Windows操作系統(tǒng)的安全機(jī)制來驗(yàn)證用戶身份,在這種模式下,只要用戶能夠通過Windows的用戶身份驗(yàn)證,即可連接到SQLServer2005服務(wù)器上,而SQLServer本身不需要管理一套登錄數(shù)據(jù)。在Windows驗(yàn)證模式下,SQLServer檢測當(dāng)前使用Windows的用戶賬戶,并在系統(tǒng)注冊表中查找該用戶,以確定該用戶是否有權(quán)限登錄。這種驗(yàn)證模式只適用于能夠有效身份驗(yàn)證的Windows操作系統(tǒng),在其他的操作系統(tǒng)下無法使用。第14章數(shù)據(jù)庫的安全管理14.2.1SQLServer的身份驗(yàn)證模式1.Windows驗(yàn)證模式Windows驗(yàn)證模式有以下主要優(yōu)點(diǎn):

(1)數(shù)據(jù)庫管理員的工作可以集中在管理數(shù)據(jù)庫上,而不是管理用戶賬戶。對(duì)用戶賬戶的管理可以交給Windows去完成。

(2)Windows有著更強(qiáng)的用戶賬戶管理工具。可以設(shè)置賬戶鎖定、密碼期限等。如果不是通過定制來擴(kuò)展SQLServer,SQLServer是不具備這些功能的。

(3)Windows的組策略支持多個(gè)用戶同時(shí)被授權(quán)訪問SQLServer。

(4)SQLServer是從RPC協(xié)議連接中自動(dòng)登錄Windows用戶賬戶信息的。多協(xié)議和命名管道自動(dòng)使用RPC協(xié)議。因此,在客戶和服務(wù)器之間,可以使用上述網(wǎng)絡(luò)庫使用Windows驗(yàn)證模式。第14章數(shù)據(jù)庫的安全管理14.2.1SQLServer的身份驗(yàn)證模式2.混合驗(yàn)證模式混合身份驗(yàn)證模式使用戶可以使用Windows身份驗(yàn)證或SQLServer身份驗(yàn)證與SQLServer2005服務(wù)器連接。它將區(qū)分用戶賬號(hào)在Windows操作系統(tǒng)下是否可信,對(duì)于可信的連接用戶系統(tǒng),直接采用Windows身份驗(yàn)證模式,否則,SQLServer2005會(huì)通過賬戶的存在性和密碼的匹配性自行進(jìn)行驗(yàn)證。例如,允許某些非可信的Windows用戶連接SQLServer2005服務(wù)器,它通過檢查是否已設(shè)置SQLServer2005登錄賬戶以及輸入的密碼是否與設(shè)置的相符來進(jìn)行驗(yàn)證,如果SQLServer2005服務(wù)器未設(shè)置登錄信息,則身份驗(yàn)證失敗,而且用戶會(huì)收到錯(cuò)誤提示信息。第14章數(shù)據(jù)庫的安全管理14.2.1SQLServer的身份驗(yàn)證模式2.混合驗(yàn)證模式混合驗(yàn)證模式允許以SQLServer驗(yàn)證模式或者Windows驗(yàn)證模式來進(jìn)行驗(yàn)證,使用哪個(gè)模式取決于最初通信時(shí)使用的網(wǎng)絡(luò)庫,如果一個(gè)用戶使用TCP/IPSOCKETS進(jìn)行登錄驗(yàn)證,則將使用SQLServer驗(yàn)證模式;如果用戶使用命名管道,則登錄時(shí)使用Windows驗(yàn)證?;旌向?yàn)證模式具有如下優(yōu)點(diǎn):(1)創(chuàng)建了Windows之上的另外一個(gè)安全層次。(2)支持更大范圍的用戶,例如非Windows客戶、Novell網(wǎng)絡(luò)等。(3)一個(gè)應(yīng)用程序可利用單個(gè)的SQLServer登錄或口令。第14章數(shù)據(jù)庫的安全管理14.2.2設(shè)置身份驗(yàn)證模式在第一次安裝SQLServer或者使用SQLServer連接其他服務(wù)器時(shí),需要指定驗(yàn)證模式。對(duì)于己經(jīng)指定驗(yàn)證模式的SQLServer服務(wù)器,在SQLServer中還可以進(jìn)行修改。SQLSerer的安全系統(tǒng)必須保證不能被未通過驗(yàn)證的用戶訪問。在SQLServerManagementStudio中設(shè)置身份驗(yàn)證模式的基本步驟如下:(1)打開SQLServerManagementStudio,在對(duì)象資源管理器窗口中的目標(biāo)服務(wù)器上單擊鼠標(biāo)右鍵,彈出快捷菜單,選擇“屬性”命令。第14章數(shù)據(jù)庫的安全管理14.2.2設(shè)置身份驗(yàn)證模式(2)出現(xiàn)“服務(wù)器屬性”窗口,選擇“選擇頁”中的“安全性”選項(xiàng),進(jìn)入安全性設(shè)置頁面,如圖14.2所示(3)在“服務(wù)器身份驗(yàn)證”選項(xiàng)中選擇驗(yàn)證模式前的單選按鈕,選中需要的驗(yàn)證模式。還可以在“登錄審核”選項(xiàng)中設(shè)置需要的審核方式。審核方式取決于安全性要求,這四種審核級(jí)別的含義如下:①“無”:不使用登錄審核。②“僅限失敗的登錄”:記錄所有的失敗登錄。③“僅限成功的登錄”:記錄所有的成功登錄。④“失敗和成功的登錄”:記錄所有的登錄。(4)單擊“確定”按鈕,完成登錄驗(yàn)證模式的設(shè)置。第14章數(shù)據(jù)庫的安全管理14.3賬號(hào)管理Windows用戶賬號(hào)和SQLServer登錄賬號(hào)允許用戶登錄到SQLServer系統(tǒng)中。如果用戶想繼續(xù)對(duì)系統(tǒng)中的某個(gè)特定數(shù)據(jù)庫進(jìn)行操作,就必須有一個(gè)數(shù)據(jù)庫用戶賬號(hào)。每個(gè)數(shù)據(jù)庫要求單獨(dú)的用戶賬戶,每個(gè)用戶賬戶都為該數(shù)據(jù)庫中對(duì)象(表、視圖和存儲(chǔ)過程等)應(yīng)用的安全權(quán)限,用戶在數(shù)據(jù)庫中進(jìn)行的所有活動(dòng)由T-SQL語句傳到SQLServer的服務(wù)器上,以確定是否有權(quán)限。所以,對(duì)于每一個(gè)要使用的數(shù)據(jù)庫,用戶必須擁有該數(shù)據(jù)庫的賬號(hào)。當(dāng)然,如果沒有這些特定的賬號(hào),用戶也可以用guest登錄。數(shù)據(jù)庫用戶賬號(hào)可以從已經(jīng)存在的Windows用戶賬號(hào)、Windows用戶組、SQLServer的登錄名或者角色映射過來。第14章數(shù)據(jù)庫的安全管理14.3.1服務(wù)器登錄賬號(hào)登錄屬于服務(wù)器級(jí)的安全策略,要連接到數(shù)據(jù)庫,首先要存在一個(gè)合法的登錄賬號(hào)。1.創(chuàng)建服務(wù)器登錄賬號(hào)在SQLServerManagementStudio中創(chuàng)建服務(wù)器登錄賬號(hào)的步驟如下:(1)在SQLServerManagementStudio的對(duì)象資源管理器窗口中,展開“安全性”項(xiàng)。在“登錄名”上單擊鼠標(biāo)右鍵,在彈出快捷菜單中選擇“新建登錄名”命令。(2)在“登錄名”對(duì)話框中,首先選擇登錄的驗(yàn)證模式,選中其前面的單選按鈕。如果選中了“Windows身份驗(yàn)證”,則“登錄名”Windows設(shè)置為Windows登錄賬號(hào)即可,無需設(shè)置密碼;如果選中了“SQLServer身份驗(yàn)證”,則需要設(shè)置一個(gè)“登錄名”以及“密碼”和“確認(rèn)密碼”。最后都可以再進(jìn)行其他參數(shù)的設(shè)置。第14章數(shù)據(jù)庫的安全管理14.3.1服務(wù)器登錄賬號(hào)(3)選擇“選擇頁”中的“服務(wù)器角色”項(xiàng),出現(xiàn)服務(wù)器角色設(shè)定頁面,可以為此登錄賬號(hào)的用戶添加服務(wù)器角色,當(dāng)然也可以不為此用戶添加任何服務(wù)器角色。(4)選擇“選擇頁”中的“用戶映射”項(xiàng),進(jìn)入映射設(shè)置頁面,可以為這個(gè)新建的登錄添加映射到此登錄名的用戶,并添加數(shù)據(jù)庫角色,從而使該用戶獲得數(shù)據(jù)庫的相應(yīng)角色對(duì)應(yīng)的數(shù)據(jù)庫權(quán)限。同樣也可以不為此用戶添加任何數(shù)據(jù)庫角色。(5)“確定”按鈕,服務(wù)器登錄賬號(hào)創(chuàng)建完畢。第14章數(shù)據(jù)庫的安全管理14.3.1服務(wù)器登錄賬號(hào)2.查看服務(wù)器登錄賬號(hào)可以使用對(duì)象資源管理器查看登錄賬號(hào):在SQLServerManagementStudio中進(jìn)入“對(duì)象資源管理器”面板,展開“安全性”選項(xiàng),再展開“登錄名”選項(xiàng),即可看到系統(tǒng)創(chuàng)建的默認(rèn)登錄賬號(hào)以及建立的其他登錄賬號(hào)。第14章數(shù)據(jù)庫的安全管理14.3.2數(shù)據(jù)庫用戶賬號(hào)用戶是數(shù)據(jù)庫級(jí)的安全策略,在為數(shù)據(jù)庫創(chuàng)建新的用戶前,必須存在創(chuàng)建用戶的一個(gè)登錄或者使用已經(jīng)存在的登錄創(chuàng)建用戶。用戶登錄后,如果想要操作數(shù)據(jù)庫,還必須有一個(gè)數(shù)據(jù)庫用戶賬號(hào),然后為這個(gè)數(shù)據(jù)庫用戶設(shè)置某種角色,才能進(jìn)行相應(yīng)的操作。1.創(chuàng)建數(shù)據(jù)庫用戶賬號(hào)在SQLServerManagementStudio中創(chuàng)建數(shù)據(jù)庫用戶的具體步驟如下:(1)在SQLServerManagementStudio的對(duì)象資源管理器窗口中,展開“數(shù)據(jù)庫”選項(xiàng),選中要?jiǎng)?chuàng)建用戶的數(shù)據(jù)庫,展開此數(shù)據(jù)庫,如教學(xué)庫。展開“安全性”選項(xiàng),在“用戶”上單擊鼠標(biāo)右鍵,彈出快捷菜單,從中選擇“新建用戶”命令。第14章數(shù)據(jù)庫的安全管理14.3.2數(shù)據(jù)庫用戶賬號(hào)2.查看數(shù)據(jù)庫用戶賬號(hào)可以使用對(duì)象資源管理器查看數(shù)據(jù)庫的用戶:在在SQLServerManagementStudio中的“對(duì)象資源管理器”面板中,展開要查看的數(shù)據(jù)庫,展開“安全性”選項(xiàng),再展開“用戶”選項(xiàng),則顯示目前數(shù)據(jù)庫中的所有用戶。第14章數(shù)據(jù)庫的安全管理14.4角色管理角色是一種SQLServer安全賬戶,是SQLServer內(nèi)部的管理單元,是管理權(quán)限時(shí)可以視為單個(gè)單元的其他安全賬戶的集合。角色包含SQLServer登錄、Windows登錄、組或其他角色(與Windows中的用戶組類似),若用戶被加入到某一個(gè)角色中,則具有該角色的權(quán)限。可以建立一個(gè)角色來代表單位中一類工作人員所執(zhí)行的工作,然后給這個(gè)角色授予適當(dāng)?shù)臋?quán)限。利用角色,SQLSerer管理者可以將某些用戶設(shè)置為某一個(gè)角色,這樣只對(duì)角色進(jìn)行權(quán)限設(shè)置便可以實(shí)現(xiàn)對(duì)所有用戶權(quán)限的設(shè)置,極大地減少了管理員的工作量。SQLServer提供了用戶通常管理工作的預(yù)定義服務(wù)器角色和數(shù)據(jù)庫角色。如果有好幾個(gè)用戶需要在一個(gè)特定的數(shù)據(jù)庫中執(zhí)行一些操作,數(shù)據(jù)庫擁有者可以在這個(gè)數(shù)據(jù)庫中加入一個(gè)角色。第14章數(shù)據(jù)庫的安全管理14.4.1固定服務(wù)器角色固定服務(wù)器角色是在服務(wù)器級(jí)別定義的,所以存在于數(shù)據(jù)庫外面,是屬于數(shù)據(jù)庫服務(wù)器的。在SQLServer安裝時(shí)就創(chuàng)建了在服務(wù)器級(jí)別上應(yīng)用的大量預(yù)定義的角色,每個(gè)角色對(duì)應(yīng)著相應(yīng)的管理權(quán)限。這些固定服務(wù)器角色用于授權(quán)給DBA(數(shù)據(jù)庫管理員)擁有某種或某些角色的DBA就會(huì)獲得與相應(yīng)角色對(duì)應(yīng)的服務(wù)器管理權(quán)限。通過給用戶分配固定服務(wù)器角色,可以使用戶具有執(zhí)行管理任務(wù)的角色權(quán)限。根據(jù)SQLServer的管理任務(wù)以及這些任務(wù)相對(duì)的重要性等級(jí)來把具有SQLServer管理職能的用戶劃分為不同的用戶組,每一組所具有的管理SQLServer的權(quán)限都是SQLServer內(nèi)置的,即不能對(duì)其進(jìn)行添加、修改和刪除,只能向其中加入用戶或者其他角色。因此,固定服務(wù)器角色的維護(hù)比單個(gè)權(quán)限維護(hù)更容易些,但是固定服務(wù)器角色不能修改。第14章數(shù)據(jù)庫的安全管理在SQLServerManagementStudio中,可以按以下步驟為用戶分配固定服務(wù)器角色,使該用戶獲取相應(yīng)的權(quán)限。(1)在對(duì)象資源管理器中,展開服務(wù)器,再展開“安全性”選項(xiàng)。這時(shí)可以看到固定服務(wù)器角色,在要給用戶添加的目標(biāo)角色(如dbcreator)上單擊鼠標(biāo)右鍵,彈出快捷菜單,選擇“屬性”命令。(2)在“服務(wù)器角色屬性”對(duì)話框中,單擊“添加”按鈕,出現(xiàn)“選擇登錄名”對(duì)話框,單擊“瀏覽”按鈕。(3)在“查找對(duì)象”對(duì)話框中,選擇目標(biāo)用戶前的復(fù)選框,選中其用戶,單擊“確定”按鈕。(4)回到“選擇登錄名”對(duì)話框,可以看到選中的目標(biāo)用戶已包含在對(duì)話框中,確定無誤后,單擊“確定”按鈕。(5)回到“服務(wù)器角色屬性”對(duì)話框。確定添加的用戶無誤后,單擊“確定”按鈕,完成為用戶分配角色的操作。第14章數(shù)據(jù)庫的安全管理14.4.2數(shù)據(jù)庫角色在SQLServer2005安裝時(shí),數(shù)據(jù)庫級(jí)別上也有一些預(yù)定義的角色,在創(chuàng)建每個(gè)數(shù)據(jù)庫時(shí)都會(huì)添加這些角色到新創(chuàng)建的數(shù)據(jù)庫中,每個(gè)角色對(duì)應(yīng)著相應(yīng)的權(quán)限。這些數(shù)據(jù)庫角色用于授權(quán)給數(shù)據(jù)庫用戶,擁有某種或某些角色的用戶會(huì)獲得相應(yīng)角色對(duì)應(yīng)的權(quán)限。也可以為數(shù)據(jù)庫添加角色,然后把角色分配給用戶,使用戶擁有相應(yīng)的權(quán)限,在SQLServerManagementStudio中,給用戶添加角色(或者叫做將角色授權(quán)用戶)的操作與將固定服務(wù)器角色授予用戶的方法類似,通過相應(yīng)角色的屬性對(duì)話框可以方便的添加用戶,使用戶成為角色成員。第14章數(shù)據(jù)庫的安全管理14.4.2數(shù)據(jù)庫角色1.固定數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色是為某一個(gè)用戶或某一組用戶授予不同級(jí)別的管理或訪問數(shù)據(jù)庫以及數(shù)據(jù)庫對(duì)象的權(quán)限,這些權(quán)限是數(shù)據(jù)庫專有的,并且還可以使一個(gè)用戶具有屬于同一個(gè)數(shù)據(jù)庫的多個(gè)角色。2.自定義數(shù)據(jù)庫角色創(chuàng)建用戶自定義的數(shù)據(jù)庫角色就是創(chuàng)建一組用戶,這些用戶具有相同的一組權(quán)限。如果一組用戶需要執(zhí)行在SQLServer中指定的一組操作并且不存在對(duì)應(yīng)的Windows組,或者沒有管理Windows用戶賬號(hào)的權(quán)限,就可以在數(shù)據(jù)庫中建立一個(gè)用戶自定義的數(shù)據(jù)庫角色。第14章數(shù)據(jù)庫的安全管理14.4.3應(yīng)用程序角色應(yīng)用程序角色是一種比較特殊的由用戶定義的數(shù)據(jù)庫角色。應(yīng)用程序角色是用來控制應(yīng)用程序存取數(shù)據(jù)庫的,本身不包含任何成員。在編寫數(shù)據(jù)庫的應(yīng)用程序時(shí),可以自定義應(yīng)用程序角色,讓應(yīng)用程序的操作能用編寫的程序來存取SQLServer的數(shù)據(jù),也就是說,應(yīng)用程序的操作者本身并不需要在SQLServer2005上擁有登錄賬號(hào)以及用戶賬號(hào),但是仍然可以存取數(shù)據(jù)庫。如果想讓某些用戶只能通過特定的應(yīng)用程序間接地存取數(shù)據(jù)庫中的數(shù)據(jù)而不是直接地存取數(shù)據(jù)庫數(shù)據(jù)時(shí),就應(yīng)該考慮使用應(yīng)用程序角色。當(dāng)某一個(gè)用戶使用了應(yīng)用程序角色時(shí),便放棄了已被賦予的所有數(shù)據(jù)庫專有權(quán)限,所擁有的只是應(yīng)用程序角色被設(shè)置的權(quán)限。第14章數(shù)據(jù)庫的安全管理14.5權(quán)限管理權(quán)限用于控制對(duì)數(shù)據(jù)庫對(duì)象的訪問,以及指定用戶對(duì)數(shù)據(jù)庫可以執(zhí)行的操作,用戶在登錄到SQLServer之后,其用戶賬號(hào)所歸屬的Windows組或角色所被賦予的權(quán)限決定了該用戶能夠?qū)δ男?shù)據(jù)庫對(duì)象執(zhí)行哪種操作以及能夠訪問、修改哪些數(shù)據(jù)。14.5.1權(quán)限的類別用戶可以設(shè)置服務(wù)器和數(shù)據(jù)庫的權(quán)限。服務(wù)器權(quán)限允許數(shù)據(jù)庫管理員執(zhí)行管理任務(wù),數(shù)據(jù)庫權(quán)限用于控制對(duì)數(shù)據(jù)庫對(duì)象的訪問和語句執(zhí)行。用戶只有在具有訪問數(shù)據(jù)庫的權(quán)限之后,才能夠?qū)Ψ?wù)器上的數(shù)據(jù)庫進(jìn)行權(quán)限下的各種操作。第14章數(shù)據(jù)庫的安全管理14.5.1權(quán)限的類別1.服務(wù)器權(quán)限服務(wù)器權(quán)限允許數(shù)據(jù)庫管理員執(zhí)行任務(wù)。這些權(quán)限定義在固定服務(wù)器角色中。這些固定服務(wù)器角色可以分配給登錄用戶,但這些角色是不能修改的。一般只把服務(wù)器權(quán)限授給DBA(數(shù)據(jù)庫管理員),他不需要修改或者授權(quán)給別的用戶登錄。2.數(shù)據(jù)庫對(duì)象權(quán)限數(shù)據(jù)庫對(duì)象是授予用戶以允許他們訪問數(shù)據(jù)庫中對(duì)象的一類權(quán)限,對(duì)象權(quán)限對(duì)于使用SQL語句訪問表或者視圖是必須的。第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作SQLServer2005中的權(quán)限控制操作可以通過在SQLServerManagementStudio中,對(duì)用戶的權(quán)限進(jìn)行設(shè)置,也可以使用T-SQL提供的GRANT(授予)、REVOKE(撤銷)和DENY(禁止)語句完成。1.在SQLServerManagementStudio中設(shè)置權(quán)限在SQLServerManagementStudio中給用戶設(shè)置權(quán)限的具體步驟如下:(1)在SQLServerManagementStudio的對(duì)象資源管理器中展開目標(biāo)數(shù)據(jù)庫的“用戶”選項(xiàng)。在目標(biāo)用戶上單擊鼠標(biāo)右鍵,彈出快捷菜單,選擇“屬性”命令。第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作(2)在“數(shù)據(jù)庫用戶”對(duì)話框中選擇“選擇頁”窗口中的“安全對(duì)象”選項(xiàng),進(jìn)入權(quán)限設(shè)置頁面,單擊“添加”按鈕。(3)在“添加對(duì)象”對(duì)話框中,單擊要添加的對(duì)象類別前的單選按鈕(如“特定對(duì)象”),添加權(quán)限的對(duì)象類別,然后單擊“確定”按鈕。(4)在“選擇對(duì)象”對(duì)話框中,單擊“對(duì)象類型”按鈕。(5)在“選擇對(duì)象類型”對(duì)話框中,依次選擇需要添加權(quán)限的對(duì)象類型前的復(fù)選框,選中其對(duì)象。單擊“確定”按鈕。(6)回到“選擇對(duì)象”對(duì)話框,在該對(duì)話框中出現(xiàn)了剛才選擇的對(duì)象類型,單擊該對(duì)話框中的“瀏覽”按鈕。在“查找對(duì)象”對(duì)話框中,依次選中要添加權(quán)限的對(duì)象前的復(fù)選框。最后單擊“確定”按鈕。第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作(7)再次回到“選擇對(duì)象”對(duì)話框,已包含了選擇的對(duì)象。確定無誤后,單擊該對(duì)話框中的“確定”按鈕,完成對(duì)象選擇操作。(8)回到“數(shù)據(jù)庫用戶”對(duì)話框,其中已包含用戶添加的對(duì)象,依次選擇每一個(gè)對(duì)象,并在下面的該對(duì)象的“顯示權(quán)限”窗口中根據(jù)需要選擇“授予/拒絕”列的復(fù)選框,添加或禁止對(duì)該(表)對(duì)象的相應(yīng)訪問權(quán)限。設(shè)置完每一個(gè)對(duì)象的訪問權(quán)限后,單擊“確定”按鈕,完成給用戶添加數(shù)據(jù)庫對(duì)象權(quán)限所有操作。第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作2.使用T-SQL設(shè)置權(quán)限數(shù)據(jù)庫內(nèi)的權(quán)限始終授予數(shù)據(jù)庫用戶、角色和Windows用戶或組,但從不授予SQLServer登錄。為數(shù)據(jù)庫內(nèi)的用戶或角色設(shè)置適當(dāng)權(quán)限的方法有:GRANT授予權(quán)限、DENY禁止權(quán)限和REVOKE撤銷權(quán)限。授權(quán)語句T-SQL語句中的GRANT命令的語法格式如下:GRANT{ALL[PRIVILEGES]}|permission[(column[,...n])][,...n][ON[class::]securable]TOprincipal[,...n][WITHGRANTOPTION][ASprincipal]

第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作[例14-1]把查詢學(xué)生表的權(quán)限授予用戶U1。GRANTSELECTON學(xué)生TOU1執(zhí)行此操作后,用戶U1就被授予了查詢學(xué)生表的權(quán)限??梢栽赟QLServerManagementStudio中查看到用戶U1被授予了學(xué)生表的SELECT權(quán)限。此時(shí),U1登錄SQLServer就可以對(duì)學(xué)生表進(jìn)行SELECT操作。第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作[例14-2]把學(xué)生表的全部操作權(quán)限授予用戶U2和U3。GRANTALLPRIVILEGESON學(xué)生TOU2,U3[例14-3]把對(duì)選課表的查詢權(quán)限授予所有用戶。GRANTSELECTON選課TOPUBLIC[例14-4]把查詢學(xué)生表和修改學(xué)生學(xué)號(hào)的權(quán)限授予用戶U4。GRANTSELECT,UPDATE(學(xué)號(hào))ON學(xué)生TOU4第14章數(shù)據(jù)庫的安全管理14.5.2權(quán)限操作[例14-5]把對(duì)選課表的插入權(quán)限授予用戶U5,允許U5再將此權(quán)限授予其它用戶。GRANTINSERTON選課TOU5WITHGRANTOPTIONGRANTINSERTON選課TOU6WITHGRANTOPTIONGRA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論