數(shù)據(jù)庫(kù)基礎(chǔ)第10章SQLServer的安全管理.ppt_第1頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)第10章SQLServer的安全管理.ppt_第2頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)第10章SQLServer的安全管理.ppt_第3頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)第10章SQLServer的安全管理.ppt_第4頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)第10章SQLServer的安全管理.ppt_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第10章 SQL Server的安全管理,本章學(xué)習(xí)目標(biāo) l 理解身份驗(yàn)證模式、安全賬戶(hù)管理、角色管理、權(quán)限管理的基本概念 l 熟練使用和管理用戶(hù)賬號(hào)、角色并授予相應(yīng)權(quán)限,10.1 身份驗(yàn)證模式 SQL Server 2000的安全機(jī)制是基于用戶(hù)、角色、對(duì)象和權(quán)限的基礎(chǔ)上建立的。系統(tǒng)可以將用戶(hù)加入角色,也可以為它們指定對(duì)象權(quán)限。每個(gè)對(duì)象都有所有者,所有權(quán)也影響到權(quán)限。數(shù)據(jù)庫(kù)對(duì)象(表、索引、視圖、觸發(fā)器、函數(shù)或存儲(chǔ)過(guò)程)的用戶(hù)稱(chēng)為數(shù)據(jù)庫(kù)對(duì)象的所有者。創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的權(quán)限必須由數(shù)據(jù)庫(kù)所有者或系統(tǒng)管理員授予。但是,在授予數(shù)據(jù)庫(kù)對(duì)象這些權(quán)限后,數(shù)據(jù)庫(kù)對(duì)象所有者就可以創(chuàng)建對(duì)象并授予其他用戶(hù)使用該對(duì)象的權(quán)限

2、。,SQL Server 2000安全系統(tǒng)的構(gòu)架建立在用戶(hù)和用戶(hù)組的基礎(chǔ)上,也就是說(shuō)Windows的用戶(hù)和用戶(hù)組可以映射到SQL Server 2000中的安全賬戶(hù),而SQL Server 2000也可以獨(dú)自建立安全賬戶(hù)。對(duì)于安全賬戶(hù)SQL Server 2000可以對(duì)其分配權(quán)限,也可以將其加入到角色中,從而獲得相應(yīng)的權(quán)限。如圖10-1所示。 在SQL Server 2000工作時(shí),用戶(hù)要經(jīng)過(guò)兩個(gè)安全性階段: 第一階段:身份驗(yàn)證。如果身份驗(yàn)證成功,用戶(hù)可連接到SQL Server實(shí)例。 第二階段:授權(quán)(權(quán)限驗(yàn)證)。授權(quán)階段又分為驗(yàn)證用戶(hù)連接到SQL Server實(shí)例的權(quán)限和訪(fǎng)問(wèn)服務(wù)器上數(shù)據(jù)庫(kù)的

3、權(quán)限。為此,需授予每個(gè)數(shù)據(jù)庫(kù)中映射到用戶(hù)登錄的賬號(hào)訪(fǎng)問(wèn)權(quán)限。權(quán)限驗(yàn)證階段則控制用戶(hù)在SQL Server數(shù)據(jù)庫(kù)中所允許進(jìn)行的活動(dòng)。,圖10-1 SQL Server 2000的安全架構(gòu),10.1.1 SQL Server的身份驗(yàn)證模式 在SQL Server2000中,必須以合法的登錄身份注冊(cè)本地或遠(yuǎn)程服務(wù)器后,才能與服務(wù)器建立連接并獲得對(duì)SQL Server的訪(fǎng)問(wèn)權(quán)。系統(tǒng)提供了2種登錄身份驗(yàn)證模式:1Windows身份驗(yàn)證模式(Windows身份驗(yàn)證) Windows身份驗(yàn)證模式使用戶(hù)得以通過(guò)WindowsNT或Windows2000用戶(hù)賬號(hào)進(jìn)行登錄連接,并獲得對(duì)SQL Server的訪(fǎng)問(wèn)權(quán)

4、限。2混合模式(Windows身份驗(yàn)證和SQL Server2000身份驗(yàn)證) 混合模式使用戶(hù)得以使用Windows身份驗(yàn)證或SQL Server 2000身份驗(yàn)證的用戶(hù)賬號(hào)進(jìn)行登錄連接。 在Windows身份驗(yàn)證模式或混合模式下,通過(guò)Windows用戶(hù)賬號(hào)連接的用戶(hù)可以使用信任連接。,10.1.2 身份驗(yàn)證模式的選擇選擇身份驗(yàn)證模式,可按以下步驟操作:在企業(yè)管理器中展開(kāi)【SQL Server組】,選擇目前連接的服務(wù)器。單擊【菜單】中的【屬性】命令,打開(kāi)【SQL Server屬性】對(duì)話(huà)框,選擇【安全性】標(biāo)簽,即可打開(kāi)如圖10-2所示的對(duì)話(huà)框。可在【安全性】選項(xiàng)組中設(shè)置身份驗(yàn)證模式。如圖10-2

5、所示。,圖10-2 設(shè)置身份驗(yàn)證模式對(duì)話(huà)框,10.2 安全賬戶(hù)管理10.2.1 創(chuàng)建安全賬戶(hù)在SQL Server 2000中,可以使用兩種方法添加登錄賬號(hào):使用企業(yè)管理器添加登錄賬號(hào);使用系統(tǒng)存儲(chǔ)過(guò)程添加登錄賬號(hào)。1系統(tǒng)安裝時(shí)建立的賬號(hào)(1)sa系統(tǒng)管理員(sa)是為向后兼容而提供的特殊登錄賬號(hào),擁有最高管理權(quán)限,可以執(zhí)行服務(wù)器范圍內(nèi)的所有操作。默認(rèn)情況下,它指派給固定服務(wù)器角色sysadmin,并不能進(jìn)行更改。雖然是內(nèi)置了管理員登錄賬號(hào),但不應(yīng)例行公事地使用它。相反,應(yīng)使其他的系統(tǒng)管理員賬號(hào)都成為sysadmin固定服務(wù)器角色的成員,并讓他們使用自己的登錄名登錄。只有當(dāng)沒(méi)有其它方法登錄到S

6、QL Server實(shí)例(例如:當(dāng)其它系統(tǒng)管理員不可用或忘記了密碼)時(shí)才使用sa。(2)Builtinadministrators本地管理員組,默認(rèn)加入sysadmin角色中,因此具有管理員權(quán)限。,2使用企業(yè)管理器添加登錄賬號(hào)具體操作步驟如下: 在企業(yè)管理器中展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器。展開(kāi)【安全性】,右擊【登錄】,然后單擊【新建登錄】命令,系統(tǒng)打開(kāi)如圖10-3所示【SQL Server登錄屬性-新建登錄】對(duì)話(huà)框。,圖10-3【SQL Server登錄屬性-新建登錄】對(duì)話(huà)框,在【身份驗(yàn)證】下,單擊【W(wǎng)indows身份驗(yàn)證】,在【名稱(chēng)】框中,輸入要被授權(quán)訪(fǎng)問(wèn)Microsoft SQL Serve

7、rTM的Microsoft Windows NT 4.0或Windows2000賬號(hào)(以DOMAINUser的形式);在【身份驗(yàn)證】下,單擊【SQL Server身份驗(yàn)證】,在【名稱(chēng)】框中,輸入登錄賬號(hào)名稱(chēng)。 設(shè)置可選項(xiàng)。可在【數(shù)據(jù)庫(kù)】中,單擊用戶(hù)在登錄到SQL Server實(shí)例后所連接的默認(rèn)數(shù)據(jù)庫(kù)。在【語(yǔ)言】中,單擊顯示給用戶(hù)的信息所用的默認(rèn)語(yǔ)言。【例10-1】將dss_ibm390 x中的本機(jī)用戶(hù)zhangsan加入到SQL Server實(shí)例中,并建立一個(gè)SQL Server登錄賬號(hào),賬號(hào)名稱(chēng)為wang。在企業(yè)管理器中可以按以下步驟操作:在企業(yè)管理器中展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器展開(kāi)【安全

8、性】,右擊【登錄】,然后單擊【新建登錄】命令,打開(kāi)如圖10-4所示 【SQL Server登錄屬性-新建登錄】對(duì)話(huà)框。在【名稱(chēng)】框中,輸入dss_ibm390 xzhangsan。在【身份驗(yàn)證】下,單擊【W(wǎng)indows身份驗(yàn)證】。填寫(xiě)完成之后,單擊【確定】按鈕。重復(fù)、步。在【名稱(chēng)】框中,輸入wang。在【身份驗(yàn)證】下,單擊【SQL Server身份驗(yàn)證】,在【密碼】框中,輸入密碼,也可以密碼為空?qǐng)D10-2-2登錄帳戶(hù)信息填寫(xiě)完成之后,單擊【確定】按鈕,即可在企業(yè)管理器中看到如圖10-5所示的登錄賬號(hào)信息。,圖10-4 【SQL Server登錄屬性-新建登錄】對(duì)話(huà)框,圖10-5 登錄賬號(hào)信息,

9、3使用系統(tǒng)存儲(chǔ)過(guò)程添加登錄賬號(hào) 在SQL Server 2000中,也可用sp_grantlogin系統(tǒng)存儲(chǔ)過(guò)程來(lái)創(chuàng)建一個(gè)Windows登錄 賬號(hào)。其語(yǔ)法為:Sp_grantlogin Windows賬號(hào)或組其中:Windows 賬號(hào)或組的格式為域名用戶(hù)名。也可用sp_addlogin命令來(lái)創(chuàng)建一個(gè)SQL Server登錄賬號(hào)。其語(yǔ)法為:sp_addlogin loginame = login , passwd = password , defdb = database , deflanguage = language ,其中: loginame = login:登錄的名稱(chēng)。login 的數(shù)據(jù)

10、類(lèi)型為 sysname,沒(méi)有默認(rèn)設(shè)置。 passwd = password:登錄密碼。password 的數(shù)據(jù)類(lèi)型為 sysname,默認(rèn)設(shè)置為 NULL。sp_addlogin 執(zhí)行后,password 被加密并存儲(chǔ)在系統(tǒng)表中。 defdb = database:登錄的默認(rèn)數(shù)據(jù)庫(kù)(登錄后登錄所連接到的數(shù)據(jù)庫(kù))。database 的數(shù)據(jù)類(lèi)型為 sysname,默認(rèn)設(shè)置為 master。其中:,loginame = login:登錄的名稱(chēng)。login 的數(shù)據(jù)類(lèi)型為 sysname,沒(méi)有默認(rèn)設(shè)置。 passwd = password:登錄密碼。password 的數(shù)據(jù)類(lèi)型為 sysname,默認(rèn)設(shè)

11、置為 NULL。sp_addlogin 執(zhí)行后,password 被加密并存儲(chǔ)在系統(tǒng)表中。 defdb = database:登錄的默認(rèn)數(shù)據(jù)庫(kù)(登錄后登錄所連接到的數(shù)據(jù)庫(kù))。database 的數(shù)據(jù)類(lèi)型為 sysname,默認(rèn)設(shè)置為 master。 deflanguage = language:用戶(hù)登錄到 SQL Server 時(shí)系統(tǒng)指派的默認(rèn)語(yǔ)言。language 的數(shù)據(jù)類(lèi)型為 sysname,默認(rèn)設(shè)置為 NULL。如果沒(méi)有指定 language,那么 language 被設(shè)置為服務(wù)器當(dāng)前的默認(rèn)語(yǔ)言(由 sp_configure 配置變量 default language 定義)。更改服務(wù)器

12、的默認(rèn)語(yǔ)言不會(huì)更改現(xiàn)有登錄的默認(rèn)語(yǔ)言。language 保持與添加登錄時(shí)所使用的默認(rèn)語(yǔ)言相同。,可以使用上述系統(tǒng)存儲(chǔ)過(guò)程實(shí)現(xiàn)【例10-1】的功能。在查詢(xún)分析器中執(zhí)行下列存儲(chǔ)過(guò)程:Sp_grantlogin dss_ibm390 xzhangsan添加一個(gè)Windows登錄賬號(hào)GOSp_addlogin wang,master添加一個(gè)SQL Server登錄賬號(hào)GO10.2.2 管理安全賬號(hào)刪除SQL Server登錄賬號(hào)Sp_drop loginlogin表示登錄賬號(hào)禁止一個(gè)Windiws賬號(hào)訪(fǎng)問(wèn)SQL Server實(shí)例Sp_denylogin loginlogin表示W(wǎng)indows用戶(hù)賬號(hào),

13、形式為DomainUser刪除一個(gè)Windiws登錄賬號(hào)Sp_revokelogin loginlogin表示W(wǎng)indows用戶(hù)賬號(hào),形式為DomainUser,10.2.3 創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)有了登錄賬號(hào)之后,可以訪(fǎng)問(wèn)SQL Server,但還不能訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。要讓用戶(hù)能夠訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),還需要在指定數(shù)據(jù)庫(kù)中生成數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)。在SQL Server 2000中,可以使用兩種方法將登錄賬號(hào)生成為指定數(shù)據(jù)庫(kù)的用戶(hù)賬號(hào)。它們是使用企業(yè)管理器新建數(shù)據(jù)庫(kù)用戶(hù);使用系統(tǒng)存儲(chǔ)過(guò)程新建數(shù)據(jù)庫(kù)用戶(hù)。1缺省數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)(1)dbodbo是可以在數(shù)據(jù)庫(kù)范圍內(nèi)執(zhí)行一切操作的最高權(quán)利擁有者。系統(tǒng)將固定服務(wù)器角色sysa

14、dmin的任何成員都映射到每個(gè)數(shù)據(jù)庫(kù)內(nèi)稱(chēng)為dbo的這個(gè)特殊用戶(hù)上。另外,由固定服務(wù)器角色sysadmin的任何成員創(chuàng)建的任何對(duì)象都自動(dòng)屬于dbo,并且dbo用戶(hù)無(wú)法刪除(2)guestGuest用戶(hù)賬號(hào)允許任何已經(jīng)登錄到SQL Server服務(wù)器的用戶(hù)都可以訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。但必須滿(mǎn)足以下兩個(gè)條件:登錄有訪(fǎng)問(wèn)SQL Server實(shí)例的權(quán)限,但沒(méi)有通過(guò)自己的用戶(hù)賬號(hào)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的權(quán)限;數(shù)據(jù)庫(kù)中含有g(shù)uest用戶(hù)賬號(hào)。,10.2.4 創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)可按以下步驟進(jìn)行操作:在企業(yè)管理器中展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器。展開(kāi)指定數(shù)據(jù)庫(kù),右擊【用戶(hù)】,在彈出的快捷菜單中單擊【新建

15、數(shù)據(jù)庫(kù)用戶(hù)(U)】命令,打開(kāi)如圖10-6所示的【數(shù)據(jù)庫(kù)用戶(hù)屬性-新建用戶(hù)】對(duì)話(huà)框。在【登錄名】框中,選擇一個(gè)登錄賬號(hào)。在【用戶(hù)名】框中,輸入用戶(hù)名稱(chēng)。需要說(shuō)明的是,一個(gè)登錄賬號(hào)可以在不同的數(shù)據(jù)庫(kù)中擁有不同的用戶(hù)名稱(chēng)。在【數(shù)據(jù)庫(kù)角色成員】欄中,可以選擇該數(shù)據(jù)庫(kù)用戶(hù)將加入到哪一個(gè)數(shù)據(jù)庫(kù)角色中,但所有的用戶(hù)都屬于public角色。填寫(xiě)完畢之后,單擊【確定】按鈕。,圖10-7 為數(shù)據(jù)庫(kù)XSCJ新建用戶(hù)登錄賬號(hào),圖10-6 【數(shù)據(jù)庫(kù)用戶(hù)屬性-新建用戶(hù)】對(duì)話(huà)框,【例10-2】為數(shù)據(jù)庫(kù)XSCJ新建用戶(hù)登錄賬號(hào)為:dss_ibm390 xzhangsan,在數(shù)據(jù)庫(kù)XSCJ中的用戶(hù)名為zhangsan。在企業(yè)管

16、理器中可以按以下步驟操作:在企業(yè)管理器中展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器,在展開(kāi)數(shù)據(jù)庫(kù)。展開(kāi)指定數(shù)據(jù)庫(kù)XSCJ,右擊【用戶(hù)】,然后單擊【新建數(shù)據(jù)庫(kù)用戶(hù)】命令,打開(kāi)【數(shù)據(jù)庫(kù)用戶(hù)屬性-新建用戶(hù)】對(duì)話(huà)框,如圖10-7所示。在【登錄名】框中,選擇一個(gè)登錄賬號(hào)(dss_ibm390 xzhangsan)。在用戶(hù)名框中,輸入用戶(hù)名稱(chēng)zhangsan。在數(shù)據(jù)庫(kù)角色成員欄中,可以選擇zhangsan為數(shù)據(jù)庫(kù)XSCJ的擁有者,既在db_owner上打。,單擊【確定】按鈕,設(shè)置結(jié)果如圖10-8所示,圖10-8 為數(shù)據(jù)庫(kù)XSCJ新建用戶(hù)登錄賬號(hào),2使用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)在SQL Server 2000中,也

17、可用sp_grantdbaccess命令來(lái)新建數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)。其語(yǔ)法為:sp_grantdbaccess loginame = login,name_in_db = name_in_dbOUTPUT 其中:loginame = login:當(dāng)前數(shù)據(jù)庫(kù)中新安全賬號(hào)的登錄名稱(chēng)。Windows NT 組和用戶(hù)必須用 Windows NT 域名限定,格式為域用戶(hù),例如 LONDONJoeb。登錄不能使用數(shù)據(jù)庫(kù)中已有的賬號(hào)作為別名。name_in_db = name_in_db OUTPUT:數(shù)據(jù)庫(kù)中用戶(hù)賬號(hào)的名稱(chēng)。name_in_db 是 sysname 類(lèi)型的 OUTPUT 變量,默認(rèn)值為 NULL

18、。如果沒(méi)有指定,則使用 login。如果將其指定為 NULL 值的 OUTPUT 變量,則設(shè)置 name_in_db 為 login。當(dāng)前數(shù)據(jù)庫(kù)不必存在 name_in_db。,【例10-3】為數(shù)據(jù)庫(kù)XSCJ新建用戶(hù)賬號(hào),該用戶(hù)賬號(hào)的登錄賬號(hào)為wang,在數(shù)據(jù)庫(kù)XSCJ中的用戶(hù)名為wang。 在查詢(xún)分析器中運(yùn)行如下命令: Sp_grantdbaccess wang,wang GO 運(yùn)行結(jié)果如圖10-9所示。,圖10-9使用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)賬號(hào),10.2.5 管理數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)1刪除數(shù)據(jù)庫(kù)用戶(hù)Sp_revokedbaccess namename表示數(shù)據(jù)庫(kù)用戶(hù)名2報(bào)告當(dāng)前數(shù)據(jù)庫(kù)的用戶(hù)信息

19、Sp_helpuser namename表示數(shù)據(jù)庫(kù)用戶(hù)名,10.3 角色管理 角色是一個(gè)強(qiáng)大的工具,可以將用戶(hù)集中到一個(gè)單元中,然后對(duì)該單元應(yīng)用權(quán)限。對(duì)一個(gè)角色授予、拒絕或廢除權(quán)限也適用于該角色的任何成員??梢越⒁粋€(gè)角色來(lái)代表單位中一類(lèi)工作人員所執(zhí)行的工作,然后給這個(gè)角色授予適當(dāng)?shù)臋?quán)限。當(dāng)工作人員開(kāi)始工作時(shí),只須將他們添加為該角色成員,當(dāng)他們離開(kāi)工作時(shí),將他們從該角色中刪除,而不必在每個(gè)人接受或離開(kāi)工作時(shí),反復(fù)授予、拒絕和廢除其權(quán)限。權(quán)限在用戶(hù)成為角色成員時(shí)自動(dòng)生效。,10.3.1 固定服務(wù)器角色將用戶(hù)添加到表10-1所列角色中,這些用戶(hù)就獲得管理SQL Server的管理權(quán)限。表10-1

20、固定服務(wù)器角色,上述角色是在安裝SQL Server時(shí)自動(dòng)創(chuàng)建的,并且系統(tǒng)已經(jīng)給這些角色分配權(quán)限。用戶(hù)不能修改其權(quán)限,也不能再定義固定服務(wù)器角色。 10.3.2 固定數(shù)據(jù)庫(kù)角色每個(gè)數(shù)據(jù)庫(kù)都有一系列固定數(shù)據(jù)庫(kù)角色。雖然每個(gè)數(shù)據(jù)庫(kù)中都存在名稱(chēng)相同的角色,但各個(gè)角色的作用域只限于特定的數(shù)據(jù)庫(kù)內(nèi)。將用戶(hù)添加到表10-2所列角色中,這些用戶(hù)就獲得這個(gè)數(shù)據(jù)庫(kù)的管理權(quán)限。,表10-2 固定數(shù)據(jù)庫(kù)角色,10.3.3 創(chuàng)建數(shù)據(jù)庫(kù)角色1創(chuàng)建自定義數(shù)據(jù)庫(kù)角色 當(dāng)一組用戶(hù)需要在SQL Server中執(zhí)行一組指定的活動(dòng)時(shí),可以創(chuàng)建SQL Server數(shù)據(jù)庫(kù)角色。用戶(hù)添加到角色中就繼承角色的權(quán)限,這樣可以更加方便管理。方

21、法一、使用企業(yè)管理器創(chuàng)建SQL Server自定義數(shù)據(jù)庫(kù)角色具體操作步驟為:展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器。展開(kāi)【數(shù)據(jù)庫(kù)】文件夾,然后展開(kāi)指定的數(shù)據(jù)庫(kù)右擊【角色】,在彈出的快捷菜單中單擊【新建數(shù)據(jù)庫(kù)角色】命令,打開(kāi)【數(shù)據(jù)庫(kù)角色屬性-新建角色】對(duì)話(huà)框,如圖10-10所示。在【名稱(chēng)】框中輸入新角色的名稱(chēng)。單擊【添加】按鈕,將成員添加到【標(biāo)準(zhǔn)角色】列表中,然后選擇要添加的一個(gè)或多個(gè)用戶(hù)。設(shè)置完畢后,點(diǎn)擊【確定】。設(shè)置結(jié)果如圖10-10所示。,圖10-10 【數(shù)據(jù)庫(kù)角色屬性-新建角色】對(duì)話(huà)框,方法二、使用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建自定義數(shù)據(jù)庫(kù)角色并將用戶(hù)添加到角色中在查詢(xún)分析器中執(zhí)行下列命令即可:USE 數(shù)據(jù)庫(kù)名

22、選擇要?jiǎng)?chuàng)建角色的數(shù)據(jù)庫(kù)sp_addrole role在當(dāng)前數(shù)據(jù)庫(kù)創(chuàng)建新的角色,role為角色名2創(chuàng)建應(yīng)用程序角色 由于某種需要,可能希望限制用戶(hù)只能通過(guò)特定應(yīng)用程序來(lái)訪(fǎng)問(wèn)數(shù)據(jù)或防止用戶(hù)直接訪(fǎng)問(wèn)數(shù)據(jù)。限制用戶(hù)的這種訪(fǎng)問(wèn)方式將禁止用戶(hù)使用應(yīng)用程序連接到SQL Server實(shí)例并執(zhí)行編寫(xiě)質(zhì)量差的查詢(xún),以免對(duì)整個(gè)服務(wù)器的性能造成負(fù)面影響。,應(yīng)用角色不包含成員,默認(rèn)情況下,應(yīng)用程序角色是非活動(dòng)的,需要用密碼激活,當(dāng)一個(gè)應(yīng)用程序角色被該應(yīng)用程序激活以用于連接時(shí),連接會(huì)在連接期間永久地失去數(shù)據(jù)庫(kù)中所有用來(lái)登錄的權(quán)限。使用sp_addapprole role,password命令即可創(chuàng)建一個(gè)應(yīng)用程序角色。使用

23、sp_setapprole role,password命令即可激活應(yīng)用程序角色。role為應(yīng)用程序角色名,password為激活口令。也可以使用企業(yè)管理器創(chuàng)建應(yīng)用程序角色,如圖10-10所示。,10.3.4 管理數(shù)據(jù)庫(kù)角色1將用戶(hù)加入到固定服務(wù)器角色中sp_addsrvrolemember 用戶(hù)名稱(chēng),角色名稱(chēng)2將用戶(hù)從固定服務(wù)器角色中移去sp_dropsrvrolemember 用戶(hù)名稱(chēng),角色名稱(chēng)3將用戶(hù)加入到數(shù)據(jù)庫(kù)角色中sp_addrolemember 角色名稱(chēng),用戶(hù)名稱(chēng)4將用戶(hù)從數(shù)據(jù)庫(kù)角色中移去sp_droprolemember 角色名稱(chēng),用戶(hù)名稱(chēng)5查詢(xún)角色信息sp_helprole 角色

24、名稱(chēng)-列出角色的名稱(chēng)、識(shí)別碼sp_helprolemember 角色名稱(chēng)-列出該角色所有成員及各成員的對(duì)象識(shí)別碼 6刪除角色sp_droprole 角色名稱(chēng) 注意:內(nèi)建角色無(wú)法刪除,當(dāng)角色中仍有成員時(shí)也無(wú)法刪除。,10.4.1 權(quán)限概述 在SQL Server中,并不是所有的用戶(hù)(login)都可以訪(fǎng)問(wèn)特定的數(shù)據(jù)庫(kù),能訪(fǎng)問(wèn)某個(gè)數(shù)據(jù)庫(kù)的用戶(hù)也不一定有全部訪(fǎng)問(wèn)權(quán)限。為了進(jìn)行這種限制,我們需要使用權(quán)限進(jìn)行控制。 管理權(quán)限 包括: 處理數(shù)據(jù)和執(zhí)行過(guò)程(對(duì)象權(quán)限) 創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)中項(xiàng)目(語(yǔ)句權(quán)限) 利用授予預(yù)定義角色的權(quán)限(暗示性權(quán)限) 2.許可權(quán)限 包括: GRANT:授予用戶(hù)有訪(fǎng)問(wèn)權(quán)限 REVO

25、KE:撤消已經(jīng)授予、或撤消已經(jīng)拒絕的權(quán)限 DENY:拒絕用戶(hù)有訪(fǎng)問(wèn)權(quán)限 三者之間的關(guān)系如圖10-11所示。,圖10-11許可權(quán)限之間的關(guān)系,10.4.2 對(duì)象權(quán)限 1對(duì)象權(quán)限類(lèi)別 處理數(shù)據(jù)或執(zhí)行過(guò)程時(shí)需要的權(quán)限稱(chēng)為對(duì)象權(quán)限。 SELECT、INSERT、UPDATE和DELETE語(yǔ)句權(quán)限,它們可以應(yīng)用到整個(gè)表或視圖中。 SELECT和UPDATE語(yǔ)句權(quán)限,它們可以有選擇性地應(yīng)用到表或視圖中單個(gè)列上。 SELECT權(quán)限,它們可以應(yīng)用到用戶(hù)定義函數(shù)。 INSERT和DELETE語(yǔ)句權(quán)限,它們會(huì)影響整行,因此只可以應(yīng)用到表或視圖中,而不能應(yīng)用到單個(gè)列上。 EXEXUTE語(yǔ)句權(quán)限,它們可以影響存儲(chǔ)過(guò)程

26、和函數(shù)。,2分配權(quán)限【例10-4】給public角色授予SELECT權(quán)限。然后,將特定的權(quán)限授予用戶(hù)wang、zhangsan、tom。于是這些用戶(hù)有了對(duì)“班級(jí)表”的所有權(quán)限。在查詢(xún)分析器中執(zhí)行以下命令即可:GRANT SELECT ON 班級(jí)表TO publicGRANT INSERT,UPDATE,DELETE ON 班級(jí)表 TO wang,zhangsan,tom上述過(guò)程既是分配對(duì)象權(quán)限的過(guò)程。撤消權(quán)限只要將GRANT換為REVOKE,拒絕權(quán)限只要將GRANT換為DENY即可。,10.4.3 語(yǔ)句權(quán)限創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)中的項(xiàng)(如表或存儲(chǔ)過(guò)程)所涉及的活動(dòng)要求另一類(lèi)稱(chēng)為語(yǔ)句權(quán)限的權(quán)限。例如

27、,如果用戶(hù)必須能夠在數(shù)據(jù)庫(kù)中創(chuàng)建表,則應(yīng)該向該用戶(hù)授予CREATE TABLE語(yǔ)句權(quán)限。語(yǔ)句權(quán)限適用于語(yǔ)句自身,而不適用于數(shù)據(jù)庫(kù)中定義的特定對(duì)象。1語(yǔ)句權(quán)限有:BACKUP DATABASEBACKUP LOGCREATE DATABASECREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULECREATE TABLECREATE VIEW,2分配權(quán)限【例10-5】使用戶(hù)wang和dss_ibm390 xzhangsan做建立數(shù)據(jù)庫(kù)和建立表的工作。在查詢(xún)分析器中執(zhí)行以下命令即可:GRANT CREATE DATABASE,CREATE T

28、ABLE TO wang,dss_ibm390 xzhangsan上述過(guò)程既是分配語(yǔ)句權(quán)限的過(guò)程。撤消權(quán)限只要將GRANT換為REVOKE,拒絕權(quán)限只要將GRANT換為DENY即可。10.4.4 使用企業(yè)管理器授予、撤消和拒絕權(quán)限分配具體操作步驟如下:1從對(duì)象列表設(shè)置對(duì)象權(quán)限展開(kāi)企業(yè)管理器,然后展開(kāi)【數(shù)據(jù)庫(kù)】,指定數(shù)據(jù)庫(kù)。在指定數(shù)據(jù)庫(kù)的對(duì)象列表(表、視圖、存儲(chǔ)過(guò)程等)中,右擊某對(duì)象,并從彈出的快捷菜單中選擇【屬性】命令,打開(kāi)【對(duì)象屬性】對(duì)話(huà)框。,單擊【權(quán)限】按鈕,打開(kāi)【對(duì)象屬性】對(duì)話(huà)框,如圖10-12所示?!緦?duì)象屬性】對(duì)話(huà)框顯示了所有的用戶(hù)和角色,可以使用它來(lái)修改這些用戶(hù)和角色的權(quán)限。 在上打

29、為授予權(quán)限,打?yàn)榫芙^,無(wú)為撤消。對(duì)話(huà)框底部的【列】按鈕可以打開(kāi)【列權(quán)限】對(duì)話(huà)框,利用【列權(quán)限】對(duì)話(huà)框可以為單個(gè)列設(shè)置select和update權(quán)限,如圖10-13所示點(diǎn)擊【確定】按鈕,權(quán)限分配完畢。,圖10-12【對(duì)象屬性】對(duì)話(huà)框,圖10-13【列權(quán)限】對(duì)話(huà)框,2從用戶(hù)列表設(shè)置對(duì)象權(quán)限展開(kāi)企業(yè)管理,然后展開(kāi)【數(shù)據(jù)庫(kù)】,指定數(shù)據(jù)庫(kù)。在指定數(shù)據(jù)庫(kù)的用戶(hù)列表中,選擇一個(gè)用戶(hù)點(diǎn)擊鼠標(biāo)右鍵,并從彈出的快捷菜單中選擇【屬性】,打開(kāi)【數(shù)據(jù)庫(kù)用戶(hù)屬性】對(duì)話(huà)框,如圖10-14所示。,圖10-14 【數(shù)據(jù)庫(kù)用戶(hù)屬性】對(duì)話(huà)框,圖10-15 【數(shù)據(jù)庫(kù)用戶(hù)屬性】的 【權(quán)限】對(duì)話(huà)框,在屬性框中可以將用戶(hù)加入到數(shù)據(jù)庫(kù)角色中

30、,點(diǎn)擊【權(quán)限】按鈕將會(huì)打開(kāi)【權(quán)限】選項(xiàng)卡,如圖10-15所示。在此可以為用戶(hù)設(shè)置單個(gè)權(quán)限。點(diǎn)擊【確定】,權(quán)限設(shè)置完畢。3從角色列表設(shè)置對(duì)象權(quán)限展開(kāi)企業(yè)管理,然后展開(kāi)【數(shù)據(jù)庫(kù)】,指定數(shù)據(jù)庫(kù)在指定數(shù)據(jù)庫(kù)的角色列表中,選擇一個(gè)角色點(diǎn)擊鼠標(biāo)右鍵,并從彈出的快捷方式菜單中選擇【屬性】,打開(kāi)【數(shù)據(jù)庫(kù)角色屬性】對(duì)話(huà)框,如圖10-16所示。,圖10-16【數(shù)據(jù)庫(kù)角色屬性】對(duì)話(huà)框,在屬性框中可以將用戶(hù)或其它角色加入到指定的角色,也可以將它們從角色中刪除。通過(guò)點(diǎn)擊【權(quán)限】按鈕將會(huì)打開(kāi)【權(quán)限】選項(xiàng)卡,如圖10-17所示。在此可以為角色設(shè)置對(duì)象權(quán)限。點(diǎn)擊【確定】,權(quán)限設(shè)置完畢。,圖10-17【數(shù)據(jù)庫(kù)角色屬性】的【權(quán)限

31、】對(duì)話(huà)框,本章小結(jié) 在本章中同學(xué)們學(xué)習(xí)了SQL Servers的安全機(jī)制和安全管理的基礎(chǔ)知識(shí),并重點(diǎn)學(xué)習(xí)了登錄賬號(hào)、用戶(hù)賬號(hào)的創(chuàng)建和管理、權(quán)限分配和靈活使用角色實(shí)現(xiàn)權(quán)限管理的技術(shù)。本章應(yīng)重點(diǎn)掌握如何根據(jù)安全規(guī)劃,創(chuàng)建登錄賬號(hào)和用戶(hù)賬號(hào),并對(duì)其進(jìn)行合理的權(quán)限分配和有效管理。,思考與練習(xí)一、選擇題1、下列語(yǔ)句中不是語(yǔ)句權(quán)限的是( )。A、CREATE DATABASE B、CREATE TABLE C、INSERT D、BACKUP LOG2、可以在SQL Server中執(zhí)行任何任務(wù)的角色是( )。A、db_owner B、sysadmin C、serveradmin D、setupadmin3、允許沒(méi)有用戶(hù)賬號(hào)的登錄,且能訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)賬號(hào)是( )。A、sa B、administrator

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論