應(yīng)用SQL Server 2005安全管理策略_第1頁(yè)
應(yīng)用SQL Server 2005安全管理策略_第2頁(yè)
應(yīng)用SQL Server 2005安全管理策略_第3頁(yè)
應(yīng)用SQL Server 2005安全管理策略_第4頁(yè)
應(yīng)用SQL Server 2005安全管理策略_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第8章 任務(wù)八 保證數(shù)據(jù)庫(kù)安全性_應(yīng)用SQL Server 2005安全管理策略任務(wù)熟練掌握如何注冊(cè)服務(wù)器,學(xué)習(xí)如何管理用戶、角色并授予相關(guān)權(quán)限。目標(biāo)l 了解SQL Server 2005的安全機(jī)制l 掌握登錄名的創(chuàng)建與管理。l 掌握角色和用戶的創(chuàng)建與管理。l 了解數(shù)據(jù)控制語(yǔ)言對(duì)數(shù)據(jù)庫(kù)權(quán)限的控制。l 了解SQL Server 2005的安全管理模型8.1任務(wù)8-1 SQL Server 2005 安全機(jī)制任務(wù):了解SQL Server 2005的安全機(jī)制以及相關(guān)概念。就目前而言,絕大多數(shù)數(shù)據(jù)庫(kù)管理系統(tǒng)都還是在某一特定操作系統(tǒng)平臺(tái)下運(yùn)行的應(yīng)用程序,SQL Server 2005也不例外,SQL

2、Server 2005的安全機(jī)制分為以下4個(gè)等級(jí)。l 客戶機(jī)操作系統(tǒng)的安全性。l SQL Server的登錄安全性。l 數(shù)據(jù)庫(kù)的使用安全性。l 數(shù)據(jù)庫(kù)對(duì)象的使用安全性。每個(gè)安全等級(jí)都好像一道門,如果門沒(méi)有上鎖,或者用戶就有開門的鑰匙,用戶就可以直接通過(guò)這道門,從而輕松的到達(dá)下個(gè)一個(gè)安全等級(jí)。如果通過(guò)了所有的門,則用戶就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的方問(wèn)了。這種關(guān)系如圖8-1所示。圖8-1 SQL Server 2005的安全等級(jí)1操作系統(tǒng)的安全性在使用客戶計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)SQL Server服務(wù)器的訪問(wèn)時(shí),用戶要首先獲得客戶計(jì)算機(jī)操作系統(tǒng)的使用權(quán)。一般來(lái)說(shuō),能夠?qū)崿F(xiàn)網(wǎng)絡(luò)互聯(lián)的前提下,用戶沒(méi)有必要直接登

3、錄運(yùn)行SQL Server 服務(wù)器的主機(jī),除非SQL Server服務(wù)器就運(yùn)行在本地計(jì)算機(jī)上。SQL Server 可以直接訪問(wèn)網(wǎng)絡(luò)端口,所以可以實(shí)現(xiàn)對(duì)Windows NT安全機(jī)制以外的服務(wù)器及其數(shù)據(jù)庫(kù)的訪問(wèn)。操作系統(tǒng)安全性是操作系統(tǒng)管理員或者網(wǎng)絡(luò)管理員的任務(wù)。由于SQL Server采用了集成Windows NT網(wǎng)絡(luò)安全機(jī)制,從而使得操作系統(tǒng)安全性的地位得到提高,但同時(shí)也加大了管理數(shù)據(jù)庫(kù)系統(tǒng)安全性和靈活性的難度。2SQL Server的安全性SQL Server的服務(wù)器級(jí)安全性建立在控制服務(wù)器登錄賬號(hào)和密碼的基礎(chǔ)之上。SQL Server采用了標(biāo)準(zhǔn)SQL Server登錄和集成Windows

4、 NT登錄兩種方式。無(wú)論使用哪種方式登錄,用戶在登錄時(shí)提供的登錄賬號(hào)和密碼,決定了用戶能否獲得SQL Server的訪問(wèn)權(quán),以及在獲得訪問(wèn)權(quán)以后,用戶在訪問(wèn)SQL Server進(jìn)程時(shí)可以擁有的權(quán)限。管理和設(shè)計(jì)合理的登錄方式是SQL Server安全機(jī)制中的第一道防線。SQL Server事先設(shè)計(jì)了許多固定服務(wù)器角色,擁有固定服務(wù)器角色的用戶可擁有服務(wù)器級(jí)的管理權(quán)限。3數(shù)據(jù)庫(kù)的安全性在用戶通過(guò)SQL Server服務(wù)器的安全性檢查后,將直接面對(duì)不同的數(shù)據(jù)庫(kù)入口。這是用戶將接受到的第三次安全性檢查。在建立用戶的登錄賬號(hào)信息時(shí),SQL Server會(huì)提示用戶選擇默認(rèn)的數(shù)據(jù)庫(kù)。以后用戶每次連接服務(wù)器后

5、,都會(huì)自動(dòng)轉(zhuǎn)到默認(rèn)的數(shù)據(jù)庫(kù)。對(duì)任何用戶來(lái)說(shuō),master數(shù)據(jù)庫(kù)總是打開的,如果在設(shè)置賬號(hào)時(shí)沒(méi)有指定默認(rèn)數(shù)據(jù)庫(kù),則用戶的權(quán)限將局限在master數(shù)據(jù)庫(kù)內(nèi)。但是由于master數(shù)據(jù)庫(kù)存儲(chǔ)了大量的系統(tǒng)信息,對(duì)系統(tǒng)的安全和穩(wěn)定起著至關(guān)重要的作用,所以建議用戶在建立新的登錄賬號(hào)時(shí),最好不要將默認(rèn)的數(shù)據(jù)庫(kù)設(shè)置為master數(shù)據(jù)庫(kù),而是將默認(rèn)數(shù)據(jù)庫(kù)設(shè)置在具有實(shí)際操作意義的數(shù)據(jù)庫(kù)上。默認(rèn)的情況下,數(shù)據(jù)庫(kù)的擁有者(Owner)可以訪問(wèn)該數(shù)據(jù)庫(kù)的對(duì)象,分配訪問(wèn)權(quán)限給別的用戶,以便讓別的用戶也擁有針對(duì)該數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。4SQL Server數(shù)據(jù)庫(kù)對(duì)象的安全性數(shù)據(jù)庫(kù)對(duì)象的安全性是核查用戶權(quán)限的最后一道門。在創(chuàng)建數(shù)據(jù)

6、庫(kù)對(duì)象時(shí),SQL Server自動(dòng)把該數(shù)據(jù)庫(kù)對(duì)象的擁有權(quán)賦予該對(duì)象的創(chuàng)建者。對(duì)象的擁有者可以實(shí)現(xiàn)該對(duì)象的安全機(jī)制。默認(rèn)情況下,只有數(shù)據(jù)庫(kù)的擁有者可以在該數(shù)據(jù)庫(kù)下進(jìn)行操作。當(dāng)一個(gè)非數(shù)據(jù)庫(kù)擁有者想訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)的對(duì)象時(shí),必須事先由數(shù)據(jù)庫(kù)擁有者賦予用戶對(duì)指定對(duì)象執(zhí)行特定操作的權(quán)限。例如,一個(gè)用戶想訪問(wèn)JXGL數(shù)據(jù)庫(kù)中的student_info表中的信息,則必須在成為數(shù)據(jù)庫(kù)用戶的前提下,獲得由JXGL數(shù)據(jù)庫(kù)擁有者(Owner)分配給的student_info表的訪問(wèn)權(quán)限。8.2任務(wù)8-2 分析“高職院校教學(xué)管理系統(tǒng)”數(shù)據(jù)庫(kù)的安全要求任務(wù):分析“高職院校教學(xué)管理系統(tǒng)”數(shù)據(jù)庫(kù)的安全要求。由于實(shí)例數(shù)據(jù)庫(kù)是針對(duì)

7、高職院校的特點(diǎn)所設(shè)計(jì)和建立的,所以對(duì)其數(shù)據(jù)庫(kù)的安全要求也有其特殊的一面。下面從幾個(gè)個(gè)方面來(lái)說(shuō)明:1. 系統(tǒng)用戶分析根據(jù)系統(tǒng)需求分析結(jié)果,本系統(tǒng)主要面向以下用戶:l 系統(tǒng)管理員:負(fù)責(zé)系統(tǒng)的日常維護(hù)。l 管理者:教務(wù)處的管理員,執(zhí)行該系統(tǒng)的大部分業(yè)務(wù)操作,涉及教師、學(xué)生、課程、教材、成績(jī)等信息的錄入、查詢、更新、匯總和審核。l 成績(jī)管理者:任課教師。對(duì)任課班級(jí)進(jìn)行成績(jī)錄入、修改和查詢。l 查詢者:包括年級(jí)輔導(dǎo)員和學(xué)生。輔導(dǎo)員擁有擁有查詢所轄班級(jí)學(xué)生成績(jī)和基本信息的權(quán)限。學(xué)生只擁有查詢個(gè)人信息和成績(jī)的權(quán)限。2. 用戶安全性策略將用戶分為一般性用戶和終端用戶。(1) 一般用戶的安全性包括密碼的安全性和

8、用戶的權(quán)限管理。如果用戶是通過(guò)數(shù)據(jù)庫(kù)進(jìn)行用戶身份的確認(rèn),最好使用密碼加密的方式與數(shù)據(jù)庫(kù)進(jìn)行連接。尤其是對(duì)于一般性用戶說(shuō)是十分必要的。基于對(duì)系統(tǒng)用戶的分析結(jié)果,對(duì)于用戶角色豐富的數(shù)據(jù)庫(kù)JXGL而言,應(yīng)充分利用數(shù)據(jù)庫(kù)“角色”這個(gè)機(jī)制對(duì)權(quán)限進(jìn)行有效管理。對(duì)于復(fù)雜的系統(tǒng)環(huán)境,“角色”能大大地簡(jiǎn)化權(quán)限的管理。(2) 終端用戶的安全性同時(shí),還必須針對(duì)終端用戶制定安全性策略。對(duì)于擁有非常多用戶(尤其學(xué)生數(shù)量的巨大)的數(shù)據(jù)庫(kù),安全性管理員可以決定用戶組分類,并為這些用戶組創(chuàng)建用戶角色,把所需的權(quán)限和應(yīng)用程序角色授予每一個(gè)用戶。3安全性策略 保護(hù)作為sys和system用戶的連接當(dāng)數(shù)據(jù)庫(kù)創(chuàng)建好以后,立即更改有管

9、理權(quán)限的sys和system用戶的密碼,防止非法用戶訪問(wèn)數(shù)據(jù)庫(kù)。 使用角色對(duì)管理員權(quán)限進(jìn)行管理數(shù)據(jù)庫(kù)管理者對(duì)所有的用戶訪問(wèn)權(quán)限進(jìn)行分配,不同的用戶有不同的訪問(wèn)權(quán)限。使得數(shù)據(jù)庫(kù)有一個(gè)良好的安全訪問(wèn)機(jī)制,從而保證數(shù)據(jù)庫(kù)數(shù)據(jù)的安全。 數(shù)據(jù)庫(kù)的安全備份機(jī)制及時(shí)合理地對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。(將在第12章介紹)8.3任務(wù)8-3管理SQL Server服務(wù)器安全任務(wù):了解SQL Server 2005的驗(yàn)證登錄模式,登錄名的創(chuàng)建與管理,以及掌握對(duì)服務(wù)器角色的管理。 8.3.1 SQL Server 2005服務(wù)器的登錄模式1Windows身份驗(yàn)證模式使用Windows操作系統(tǒng)本身提供的安全機(jī)制驗(yàn)證用戶的身份。用

10、 Windows 身份驗(yàn)證連接到 SQL Server 時(shí),Windows 將完全負(fù)責(zé)對(duì)客戶端進(jìn)行身份驗(yàn)證,按其 Windows 用戶帳戶來(lái)識(shí)別客戶端。只要用戶能夠通過(guò)Windows 的用戶賬戶驗(yàn)證,就可以連接到SQL Server。Windows身份驗(yàn)證只能使用在能夠提供有效身份驗(yàn)證的基于NT的Windows操作系統(tǒng),而在Windows 95/98或Windows Me中不能使用。Windows身份驗(yàn)證的優(yōu)點(diǎn)是:l 由Windows系統(tǒng)管理員直接管理用戶賬號(hào),方便管理。l Windows中提供了諸如:安全驗(yàn)證和密碼加密、審核、密碼過(guò)期、密碼長(zhǎng)度限制以及多次登錄失敗后自動(dòng)鎖定賬戶等功能,大大提

11、高了安全性能。2 SQL Server身份驗(yàn)證模式由SQL Server 通過(guò)將客戶端提供的用戶名和密碼與 SQL Server 中維護(hù)的有效用戶名和密碼列表進(jìn)行比較,對(duì)客戶端進(jìn)行身份驗(yàn)證。該驗(yàn)證模式下,使用復(fù)制或遠(yuǎn)程數(shù)據(jù)訪問(wèn)連接到 SQL Server 時(shí),應(yīng)用程序必須提供相應(yīng)的 SQL Server 登錄名和密碼。當(dāng)用戶使用指定的登錄賬號(hào)和密碼進(jìn)行非信任連接時(shí),SQL Server將檢測(cè)登錄賬號(hào)的存在性和密碼的匹配性,如果登錄賬號(hào)和密碼不正確,系統(tǒng)將拒絕用戶的登錄操作。8.3.2 創(chuàng)建與管理登錄名賬戶要進(jìn)入SQL Server系統(tǒng)必須登錄,SQL Server在整個(gè)服務(wù)器范圍管理登錄。登錄

12、名即登錄數(shù)據(jù)庫(kù)服務(wù)器的賬戶,存儲(chǔ)在master數(shù)據(jù)庫(kù)的syslogins系統(tǒng)表中。1. 使用SQL Server Management Studio創(chuàng)建登錄名 (1) 啟動(dòng)SQL SERVER MANAGEMENT STUDIO,在“對(duì)象資源管理器”窗口中展開 “安全性”節(jié)點(diǎn),在列表中選擇“登錄名”,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“新建登錄名”命令,打開“登錄名-新建”對(duì)話框。(2) 在“登錄名-新建”對(duì)話框中的“選項(xiàng)頁(yè)”列表框中有五個(gè)選項(xiàng):常規(guī)、服務(wù)器角色、用戶映射、安全對(duì)象及狀態(tài),如圖8-2所示其中“常規(guī)”選擇頁(yè)中各選項(xiàng)的含義:l 登錄名:輸入或選擇SQL Server登錄名。l W

13、indows身份驗(yàn)證:選擇該單選按鈕,將對(duì)該登錄賬戶使用Windows身份驗(yàn)證。l SQL Server身份驗(yàn)證:選擇該單選按鈕,將對(duì)該登錄賬戶使用SQL Server身份驗(yàn)證。圖8-2 新建登錄l 默認(rèn)數(shù)據(jù)庫(kù):為該登錄賬戶選擇默認(rèn)打開的數(shù)據(jù)庫(kù)。l 默認(rèn)語(yǔ)言:為該登錄賬戶選擇默認(rèn)的語(yǔ)言。當(dāng)選擇SQL Server身份驗(yàn)證單選項(xiàng)后,會(huì)出現(xiàn)以下復(fù)選項(xiàng):l 強(qiáng)制實(shí)施密碼策略: 對(duì)登錄賬戶強(qiáng)制實(shí)施密碼策略。是SQL Server身份驗(yàn)證的默認(rèn)設(shè)置。l 強(qiáng)制密碼過(guò)期: 對(duì)登錄賬戶強(qiáng)制實(shí)施密碼過(guò)期策略。選擇“強(qiáng)制實(shí)施密碼策略”后方能啟動(dòng)此項(xiàng)。l 用戶在下次登錄時(shí)必須更改密碼:首次使用新登錄名時(shí),SQL S

14、erver將提示用戶輸入新密碼。選擇“服務(wù)器角色” 選項(xiàng),可向用戶授予服務(wù)器范圍內(nèi)的安全特性?!胺?wù)器角色”選項(xiàng)頁(yè)中提供的服務(wù)器角色的含義:l Bulkadmin:該成員能夠運(yùn)行BULK INSERT語(yǔ)句。l dbcieator:該成員能夠創(chuàng)建、更改、刪除和還原任何數(shù)據(jù)庫(kù)。l diskadmin: 該成員能夠管理磁盤文件。l processadmin:該成員能夠終止在數(shù)據(jù)庫(kù)引擎實(shí)例中運(yùn)行的進(jìn)程。l securityadmin: 該成員能管理登錄名及其屬性。l serveradmin:該成員能夠更改服務(wù)器范圍的配置選項(xiàng)和關(guān)閉服務(wù)器。l setupadmin:該成員能夠添加和刪除鏈接服務(wù)器,并執(zhí)行

15、某些系統(tǒng)存儲(chǔ)過(guò)程。l sysadmin:該成員能夠在數(shù)據(jù)庫(kù)引擎中執(zhí)行任何活動(dòng)。默認(rèn)情況下,本地管理員組的所有成員都是sysadmin固定服務(wù)器角色的成員。選擇“用戶映射”選項(xiàng),各選項(xiàng)的含義:l 映射:允許登錄名訪問(wèn)列出的數(shù)據(jù)庫(kù)。l 默認(rèn)架構(gòu):指定用戶的默認(rèn)架構(gòu),初次創(chuàng)建用戶時(shí),其默認(rèn)架構(gòu)是dbo。l 已啟用Guest帳戶:只讀屬性,指示當(dāng)前數(shù)據(jù)庫(kù)是否已啟用Guest賬戶。l 數(shù)據(jù)庫(kù)角色成員身份:選擇用戶在當(dāng)前數(shù)據(jù)庫(kù)中的角色。在每個(gè)數(shù)據(jù)庫(kù)中,所有用戶都是public角色的成員并且不能被刪除。使用“安全對(duì)象”選項(xiàng),能查看或設(shè)置數(shù)據(jù)庫(kù)安全對(duì)象的權(quán)限。單擊按鈕,將選項(xiàng)添加到“安全對(duì)象”列表框中,然后在

16、“顯示權(quán)限”列表框?yàn)槠湓O(shè)置適當(dāng)?shù)臋?quán)限。各選項(xiàng)的含義:l “安全對(duì)象”列表框:添加、刪除要設(shè)置權(quán)限的對(duì)象或主體。l “顯示權(quán)限”列表框:列出了“安全對(duì)象”列表框中所選安全對(duì)象的可能權(quán)限。選中或清除“授予”、“具有授予權(quán)限”和“拒絕”復(fù)選框?qū)@些權(quán)限進(jìn)行配置。選擇“狀態(tài)”選項(xiàng),能夠配置所選SQL Server登錄名的一些身份驗(yàn)證和授權(quán)選項(xiàng)。2使用系統(tǒng)存儲(chǔ)過(guò)程sp_addlogin創(chuàng)建登錄名系統(tǒng)存儲(chǔ)過(guò)程sp_addlogin能夠創(chuàng)建新的登錄名,該登錄允許用戶使用SQL Server身份驗(yàn)證連接到SQL Server實(shí)例。基本語(yǔ)法如下:sp_addlogin login_name,pawwwork,d

17、efault_database ,default_language圖8-3 創(chuàng)建登錄帳戶user01【例8-1】使用存儲(chǔ)過(guò)程“sp_addlogin”創(chuàng)建”,密碼為“001”,默認(rèn)數(shù)據(jù)庫(kù)為“JXGL”。EXEC sp_addlogin user01,001, JXGLGO執(zhí)行以上代碼。刷新“登錄名”節(jié)點(diǎn),在列表中會(huì)發(fā)現(xiàn)登錄帳戶“user01”已經(jīng)存在,如圖8-3所示。3. 管理登錄名(1)使用系統(tǒng)存儲(chǔ)過(guò)程“sp_password”添加或更改用戶密碼?;菊Z(yǔ)法如下:sp_password old_passwork,new_passwork,login_name 【例8-2】使用系統(tǒng)存儲(chǔ)過(guò)程“sp

18、_password”將登錄帳戶“user01”的密碼修改為“000”。sp_password 001,000,user01GO(2)使用系統(tǒng)存儲(chǔ)過(guò)程“sp_defaultdb”修改SQL Server登錄名的默認(rèn)數(shù)據(jù)庫(kù)?;菊Z(yǔ)法如下:sp_defaultdb login_name ,new_default_database 【例8-3】使用系統(tǒng)存儲(chǔ)過(guò)程“sp_ defaultdb”將登錄帳戶“user01”的默認(rèn)數(shù)據(jù)庫(kù)修改為“JXGL02”。sp_defaultdb user01, JXGL02(3)使用系統(tǒng)存儲(chǔ)過(guò)程sp_droplogin刪除登錄名?;菊Z(yǔ)法如下:sp_ droplogin

19、login_name 【例8-4】使用系統(tǒng)存儲(chǔ)過(guò)程“sp_droplogin” 刪除登錄帳戶“user01”。 sp_droplogin user018.3.3 服務(wù)器角色管理角色(role),是一組具有相近權(quán)限的登錄賬戶所構(gòu)成的組。當(dāng)數(shù)據(jù)庫(kù)的很多賬戶的權(quán)限各不相同,單獨(dú)授權(quán)的話,不便于集中管理。而當(dāng)權(quán)限改變時(shí),管理員可能需要逐個(gè)修改權(quán)限。角色就是對(duì)登錄賬戶的集中管理機(jī)制,當(dāng)若干個(gè)賬戶都被賦予同一個(gè)角色時(shí),它們都繼承了該角色的權(quán)限,若角色的權(quán)限變更了,這些相關(guān)的賬戶權(quán)限都會(huì)發(fā)生變化。SQL Server 2005的角色分為:固定服務(wù)器角色、數(shù)據(jù)庫(kù)角色和應(yīng)用程序角色。登錄賬戶與服務(wù)器角色的關(guān)系類

20、似于Windows的用戶和組的。固定服務(wù)器角色在其作用域內(nèi)屬于服務(wù)器范圍,角色的每個(gè)成員都可以向其所屬角色添加登錄名。SQL Server 2005提供了如表8-1所示固定服務(wù)器角色。表8-1 固定服務(wù)器角色固定服務(wù)器角色描 述sysadmin能夠在SQL Server中執(zhí)行任何活動(dòng)serveradmin能夠設(shè)置服務(wù)器范圍內(nèi)的配置選項(xiàng),關(guān)閉服務(wù)器securityadminn安全管理員,可以管理登錄服務(wù)器權(quán)限setupadmin能夠添加和刪除鏈接在服務(wù)器,并且也可以執(zhí)行某些系統(tǒng)存儲(chǔ)過(guò)程processadmin管理在SQL Server中運(yùn)行的進(jìn)程dbcreator能夠創(chuàng)建、更改、刪除和還原任何數(shù)

21、據(jù)庫(kù)diskadmin能夠管理磁盤文件bulkadmin能夠執(zhí)行BULK INSERT語(yǔ)句圖8-4 顯示本在服務(wù)器角色1. 使用系統(tǒng)存儲(chǔ)過(guò)程sp_helpsrvrole瀏覽服務(wù)器角色sp_helpsrvrole srvrolename = role 【例8-5】使用sp_helpsrvrole存儲(chǔ)過(guò)程瀏覽本地服務(wù)器角色。 sp_helpsrvrole執(zhí)行以上代碼,結(jié)果如圖8-4所示。2. 添加固定服務(wù)器角色成員在“服務(wù)器角色”列表中雙擊“sysadmin”,彈出“服務(wù)器角色屬性_ sysadmin”對(duì)話框,單擊圖8-5 添加固定服務(wù)器角色成員按鈕,可添加一個(gè)登錄賬戶為固定服務(wù)器角色。也可以使用

22、系統(tǒng)存儲(chǔ)過(guò)程sp_addsrvrolemember添加登錄賬戶為固定服務(wù)器角色成員。【例8-6】使用sp_addsrvrolemember將“user01 ”添加為固定服務(wù)器角色sysadmin的成員。 sp_addsrvrolemember user01,sysadmin執(zhí)行以上代碼,刷新“服務(wù)器角色”節(jié)點(diǎn)。再一次打開“服務(wù)器角色屬性_ sysadmin”對(duì)話框,在“角色成員”列表中發(fā)現(xiàn)user01已經(jīng)被添加在內(nèi),如圖8-5所示。3. 瀏覽固定服務(wù)器角色的權(quán)限使用系統(tǒng)存儲(chǔ)過(guò)程瀏覽固定服務(wù)器角色的權(quán)限。基本語(yǔ)法如下:sp_srvrolepermission srvrolename = role

23、 【例8-7】使用存儲(chǔ)過(guò)程sp_srvrolepermission顯示sysadmin角色的權(quán)限;使用存儲(chǔ)過(guò)程sp_srvrolepermission顯示所有固定服務(wù)器角色的權(quán)限。程序代碼如下:EXEC sp_srvrolepermission sysadmin -顯示sysadmin角色的權(quán)限EXEC sp_srvrolepermission -顯示所有固定服務(wù)器角色的權(quán)限任務(wù):SQL Server 2005數(shù)據(jù)庫(kù)架構(gòu)管理,掌握對(duì)用戶的創(chuàng)建和管理,對(duì)授權(quán)的認(rèn)識(shí),以及對(duì)數(shù)據(jù)庫(kù)角色的管理。8.4任務(wù)8-4 管理SQL Server數(shù)據(jù)庫(kù)安全 8.4.1 數(shù)據(jù)庫(kù)架構(gòu)管理架構(gòu)是形成單個(gè)命名空間的數(shù)據(jù)

24、庫(kù)實(shí)體的集合,屬性數(shù)據(jù)庫(kù)級(jí)的安全對(duì)象。在SQL Server 2005之前,每個(gè)對(duì)象都是被用戶所擁有的,如果用戶離開了,就意味著需要將該用戶賬戶擁有的所有對(duì)象的權(quán)限轉(zhuǎn)換到新的賬戶上。在SQL Server 2005中,對(duì)象被架構(gòu)所擁有,而架構(gòu)同時(shí)被用戶所擁有,這樣轉(zhuǎn)移權(quán)限就會(huì)變得容易和快捷。在數(shù)據(jù)庫(kù)JXGL下,展開“安全性”節(jié)點(diǎn),選擇“架構(gòu)”,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“新建架構(gòu)”命令,打開“架構(gòu)-新建”對(duì)話框。在架構(gòu)名稱文本框內(nèi)輸入“JCGL2”,在架構(gòu)所有者文本框中輸入“db_owner”。如圖8-6所示。圖8-6 新建數(shù)據(jù)庫(kù)架構(gòu)點(diǎn)擊“權(quán)限”選項(xiàng)頁(yè),添加相應(yīng)的角色和選擇賦予這個(gè)角

25、色的權(quán)限,如圖8-7所示。圖8-7 設(shè)置架構(gòu)權(quán)限選項(xiàng)點(diǎn)擊按鈕完成對(duì),完成數(shù)據(jù)庫(kù)架構(gòu)的添加。刷新“架構(gòu)”節(jié)點(diǎn),在列表中發(fā)現(xiàn)新的架構(gòu)“JCGL1”。8.4.2 數(shù)據(jù)庫(kù)用戶管理數(shù)據(jù)庫(kù)用戶也是一個(gè)數(shù)據(jù)庫(kù)級(jí)的安全對(duì)象。用戶使用登錄名登錄后,要想訪問(wèn)某數(shù)據(jù)庫(kù)對(duì)象,需要對(duì)該數(shù)據(jù)庫(kù)對(duì)象擁有相應(yīng)的權(quán)限,而登錄名本身并不提供訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象的用戶權(quán)限。在SQL Server 2005中,登錄名和數(shù)據(jù)庫(kù)用戶是SQL Server 進(jìn)行權(quán)限管理的兩個(gè)不同的對(duì)象。一個(gè)登錄名可以與服務(wù)器上的所有數(shù)據(jù)庫(kù)進(jìn)行關(guān)聯(lián),而數(shù)據(jù)庫(kù)用戶是一個(gè)登錄名在某個(gè)數(shù)據(jù)庫(kù)用戶中的映射,即,一個(gè)登錄名可以映射到不同的數(shù)據(jù)庫(kù),產(chǎn)生多個(gè)數(shù)據(jù)庫(kù)用戶,而一個(gè)

26、數(shù)據(jù)庫(kù)用戶只能映射到一個(gè)登錄名。一個(gè)登錄名必須與每個(gè)數(shù)據(jù)庫(kù)中的一個(gè)數(shù)據(jù)庫(kù)用戶ID關(guān)聯(lián)后,用這個(gè)ID連接的用戶都有訪問(wèn)數(shù)據(jù)庫(kù)中的對(duì)象。反之,定義數(shù)據(jù)庫(kù)用戶ID時(shí),必須與一個(gè)登錄名關(guān)聯(lián)。1. 使用SQL Server Management Studio管理數(shù)據(jù)庫(kù)用戶在數(shù)據(jù)庫(kù)JXGL下,展開“安全性”節(jié)點(diǎn),在列表中選擇“用戶”,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“新建用戶”命令。打開“數(shù)據(jù)庫(kù)用戶-新建”對(duì)話框,進(jìn)行如圖8-8所示的各項(xiàng)設(shè)置。其中幾個(gè)選項(xiàng)的含義:l 用戶名:為所選登錄名輸入用戶名。l 登錄名:創(chuàng)建新用戶時(shí),從列表中選擇一個(gè)登錄名。如果對(duì)現(xiàn)有用戶進(jìn)行編輯,則不能更改此項(xiàng)。l 無(wú)登錄名:

27、指示登錄名是使用WITHOUT LOGIN子句創(chuàng)建的。l 默認(rèn)架構(gòu):除非另行指定,否則指定該用戶所創(chuàng)建對(duì)象所屬的架構(gòu)。l 此用戶擁有架構(gòu):在此選擇或查看該用戶擁有的架構(gòu)。l 數(shù)據(jù)庫(kù)角色成員身份:從可用的數(shù)據(jù)庫(kù)角色列表中為數(shù)據(jù)庫(kù)用戶選擇數(shù)據(jù)庫(kù)角色成員身份。圖8-8 新建數(shù)據(jù)庫(kù)用戶選擇某數(shù)據(jù)庫(kù)用戶,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“刪除”命令,可刪除所選數(shù)據(jù)庫(kù)用戶。2. 使用T-SQL語(yǔ)句管理數(shù)據(jù)庫(kù)用戶使用CREATE USER 語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)用戶,并與指定登錄名相關(guān)聯(lián)?;菊Z(yǔ)法如下:CREATE USER db_user_name FORLOGIN login_name | WITHOUT

28、LOGIN【例8-7】 創(chuàng)建數(shù)據(jù)庫(kù)用戶名為“user02”,與登錄賬戶“user01”相關(guān)聯(lián)。CREATE USER user02 FOR LOGIN user01使用ALTER USER 語(yǔ)句修改數(shù)據(jù)庫(kù)用戶?;菊Z(yǔ)法如下:ALTER USER db_user_name WITH 【例8-8】 將數(shù)據(jù)庫(kù)用戶“user02”的名稱修改為“user03”。ALTER USER user02 WITH name=user03使用DROP USER 語(yǔ)句可刪除數(shù)據(jù)庫(kù)用戶。8.4.3 數(shù)據(jù)庫(kù)角色管理如同SQL Server登錄名隸屬于某個(gè)數(shù)據(jù)庫(kù)角色一樣,數(shù)據(jù)庫(kù)用戶也總是歸屬于某個(gè)數(shù)據(jù)庫(kù)角色。數(shù)據(jù)庫(kù)角色是

29、在數(shù)據(jù)庫(kù)級(jí)的安全對(duì)象,存在于每個(gè)數(shù)據(jù)庫(kù)中。SQLerver 2005提供了10個(gè)固定數(shù)據(jù)庫(kù)角色,如表8-2所示。表8-2 固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色描 述db_owner數(shù)據(jù)庫(kù)的所有者,能夠執(zhí)行數(shù)據(jù)庫(kù)得所有管理操作db_accessadmin能夠添加或刪除用戶db_securityadmin執(zhí)行語(yǔ)句及對(duì)象權(quán)限管理db_ddladmin能夠增加、修改或刪除數(shù)據(jù)庫(kù)中的對(duì)象db_backupoperator能夠執(zhí)行數(shù)據(jù)庫(kù)備份和恢復(fù)db_datareader能夠讀取用戶表中的所有數(shù)據(jù)db_datawrite能夠更改用戶表中得所有數(shù)據(jù)db_denydatareader禁止用戶查看用戶表中的數(shù)據(jù)db_d

30、enydatawriter禁止修改任意用戶表中的數(shù)據(jù)1. 使用SQL Server Management Studio創(chuàng)建數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色是針對(duì)某一具體的數(shù)據(jù)庫(kù)而言的,其作用域?yàn)樵摂?shù)據(jù)庫(kù)范圍?!纠?-11】在SQL Server Management Studio中向“JXGL”數(shù)據(jù)庫(kù)中添加數(shù)據(jù)庫(kù)角色teacher。(2) 啟動(dòng)SQL Server Management Studio,在“對(duì)象資源管理器”窗口中展開節(jié)點(diǎn)“安全性”、“角色”,在角色列表中選擇“數(shù)據(jù)庫(kù)角色”,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫(kù)角色”命令,打開“新建數(shù)據(jù)庫(kù)角色”對(duì)話框。設(shè)置角色各選項(xiàng)值如圖8-9所示

31、。圖8-9 數(shù)據(jù)庫(kù)角色“常規(guī)”項(xiàng)l 所有者:顯示數(shù)據(jù)庫(kù)角色的所有者。l 此角色的成員:從可用的數(shù)據(jù)庫(kù)用戶的列表中選擇角色的成員身份。(2) 根據(jù)需要,設(shè)置“安全對(duì)象”及“擴(kuò)展屬性”中的相關(guān)選項(xiàng)。2. 使用T-SQL語(yǔ)句創(chuàng)建與管理數(shù)據(jù)庫(kù)角色(1)添加數(shù)據(jù)庫(kù)角色使用系統(tǒng)存儲(chǔ)過(guò)程sp_addrole 能夠?yàn)楫?dāng)前數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)角色。基本語(yǔ)法如下:sp_addroledb_role_name,db_role_name_owner【例8-12】向數(shù)據(jù)庫(kù)JXGL中添加名為“student1”的新數(shù)據(jù)庫(kù)角色。USE JXGLGOEXEC sp_addrole student1 (2) 刪除數(shù)據(jù)庫(kù)角色

32、使用系統(tǒng)存儲(chǔ)過(guò)程sp_droprol”刪除當(dāng)前數(shù)據(jù)庫(kù)中的角色。基本語(yǔ)法如下:sp_droprole db_role_name注意:首先應(yīng)該刪除數(shù)據(jù)庫(kù)角色的所有成員,然后才能刪除該數(shù)據(jù)庫(kù)角色。不能在用戶定義的事務(wù)內(nèi)執(zhí)行sp_droprole。 (3)添加數(shù)據(jù)庫(kù)角色成員使用系統(tǒng)存儲(chǔ)過(guò)程sp_addrolemember添加數(shù)據(jù)庫(kù)角色成員?;菊Z(yǔ)法如下:sp_addrolemember db_role_name,db_user_name(4)刪除數(shù)據(jù)庫(kù)角色成員使用系統(tǒng)存儲(chǔ)過(guò)程sp_droprolemembe刪除數(shù)據(jù)庫(kù)角色成員?;菊Z(yǔ)法如下:sp_droprolememberdb_role_name,d

33、b_user_name8.4.4 授權(quán)管理權(quán)限用來(lái)指定用戶可以使用的數(shù)據(jù)庫(kù)對(duì)象及對(duì)這些數(shù)據(jù)庫(kù)對(duì)象執(zhí)行的操作。用戶登錄到SQL erver服務(wù)器后,若要進(jìn)行任何涉及更改數(shù)據(jù)庫(kù)定義或訪問(wèn)數(shù)據(jù)庫(kù)的操作,必須擁有相應(yīng)的權(quán)限,而用戶賬戶所歸屬的NT組或角色所被賦予的權(quán)限,決定了該用戶能夠?qū)δ男?shù)據(jù)庫(kù)對(duì)象執(zhí)行哪些操作(查詢、輸入、修改、刪除)。在SQL Server 2005中,包括三種權(quán)限:默認(rèn)權(quán)限、對(duì)象權(quán)限和語(yǔ)句權(quán)限。 默認(rèn)權(quán)限系統(tǒng)安裝以后,固定服務(wù)器角色、固定數(shù)據(jù)庫(kù)角色、數(shù)據(jù)庫(kù)對(duì)象所有者具有的默認(rèn)權(quán)限。 對(duì)象權(quán)限是基于數(shù)據(jù)庫(kù)訪問(wèn)層的訪問(wèn)和操作權(quán)限。這些對(duì)象包括表、視圖、列和存儲(chǔ)過(guò)程。常用的對(duì)象權(quán)限包

34、括SELECT、INSERT、UPDATE、DELETE和EXECUTE,其中EXECUTE用于存儲(chǔ)過(guò)程,其他幾個(gè)權(quán)限用于表和視圖。 語(yǔ)句權(quán)限 是用戶能否對(duì)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象進(jìn)行操作,語(yǔ)句權(quán)限應(yīng)用于語(yǔ)句本身,而不是數(shù)據(jù)庫(kù)對(duì)象。當(dāng)用戶獲得了某個(gè)語(yǔ)句的權(quán)限,也就具有了執(zhí)行該語(yǔ)句的權(quán)力。要進(jìn)行語(yǔ)句權(quán)限授予的語(yǔ)句如表8-3所示。表8-3 授予權(quán)限的語(yǔ)句序 號(hào)語(yǔ) 句權(quán) 限 含 義1CREATE DATABASE允許用戶創(chuàng)建數(shù)據(jù)庫(kù)2DREATE TABLE允許用戶創(chuàng)建表3CREATE VIEW允許用戶創(chuàng)建視圖4CREATE RULE允許用戶創(chuàng)建規(guī)則5CREATE DEFAULT允許用戶創(chuàng)建默認(rèn)對(duì)象6CRE

35、ATE PROCEDURE允許用戶創(chuàng)建存儲(chǔ)過(guò)程7CREATE FUNCTION允許用戶創(chuàng)建用戶自定義函數(shù)8BACKUP DATABASE允許用戶備份數(shù)據(jù)庫(kù)9BACKUP LOG允許用戶備份事務(wù)日志1. 授予權(quán)限使用GRANT語(yǔ)句授予權(quán)限?;菊Z(yǔ)法如下:GRANT ON TO 其中:l Permission:可以是相應(yīng)對(duì)象的有效權(quán)限的組合,可以使用關(guān)鍵字ALL(所有權(quán)限)代替權(quán)限組合。l Object:被授權(quán)的對(duì)象,可以是表、視圖、列或存儲(chǔ)過(guò)程。【例8-9】為用戶“user03”授予CREATE TABLE語(yǔ)句權(quán)限。GRANT CREATE TABLE TO user032. 撤銷授權(quán)使用REV

36、OKE語(yǔ)句可撤銷已授權(quán)的權(quán)限,其語(yǔ)法結(jié)構(gòu)與GRANT相似。3禁止授權(quán)使用DENY語(yǔ)句可防止主體通過(guò)GRANT獲得特定權(quán)限,其語(yǔ)法結(jié)構(gòu)與GRANT相似。 【例8-10】撤銷為用戶“use03”授予查詢學(xué)生信息的權(quán)限,禁止用戶“user03”對(duì)學(xué)生信息的特定權(quán)限。USE JXGLGOGRANT SELECT ON student_info TO user03GODENY SELECT,INSERT,UPDATE,DELETE ON student_info TO user03GO任務(wù):充分的了解和認(rèn)識(shí)SQL Server 2005的安全管理模型。8.5任務(wù)8-5 SQL Server 2005的安

37、全管理模型由于多種原因,進(jìn)行安全設(shè)置的用戶常常不理解數(shù)據(jù)的真正價(jià)值,所以,也無(wú)法對(duì)數(shù)據(jù)進(jìn)行合適的保護(hù)。將數(shù)據(jù)只限于需要的人訪問(wèn),并保證訪問(wèn)的人的合法性,是一個(gè)數(shù)據(jù)庫(kù)管理人員的重要工作。在SQL Server中的安全管理模型是基于Windows安全模型實(shí)現(xiàn)的,如圖8-10所示。圖8-10 第一種安全模式圖8-11 第二種安全模式使用角色來(lái)分配對(duì)象權(quán)限時(shí),仍需要使用建議的方法為各個(gè)用戶授予對(duì)服務(wù)器和數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。步驟到步驟與圖8-13中基本相同,不同的只是可能不必創(chuàng)建多個(gè) Windows 全局組和本地組。步驟:將各個(gè)Windows賬戶和Windows組分配給某個(gè)角色。步驟:為角色分配對(duì)象訪問(wèn)權(quán)

38、限。使用角色,通過(guò)在SQL Server內(nèi)組織用戶而減少了在Windows內(nèi)組織用戶的需要。8.6知識(shí)進(jìn)階8.6.1 登錄管理、用戶管理、角色管理與權(quán)限管理的比較1.登錄管理登錄管理是定義在數(shù)據(jù)庫(kù)服務(wù)器級(jí)的安全對(duì)象,主要是增加新的登錄名。登錄名是基于服務(wù)器使用的用戶名,既可以創(chuàng)建基于Windows組或用戶賬號(hào)的登錄賬號(hào),也可以創(chuàng)建SQL Server自己的登錄賬號(hào)。2.用戶管理用戶管理是針對(duì)一個(gè)具體的數(shù)據(jù)庫(kù)來(lái)說(shuō)的數(shù)據(jù)庫(kù)級(jí)安全對(duì)象。在實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全登錄后,檢驗(yàn)用戶權(quán)限的下一步就是數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)。而數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)是通過(guò)映射數(shù)據(jù)庫(kù)的用戶和登錄賬戶之間的關(guān)系來(lái)實(shí)現(xiàn)的。一個(gè)登錄賬戶在不同的數(shù)據(jù)庫(kù)中可以映射成不同得數(shù)據(jù)庫(kù)用戶,從而可以具有不同的權(quán)限。這種映射關(guān)系即數(shù)據(jù)庫(kù)用戶的管理為同一服務(wù)器上不同數(shù)據(jù)庫(kù)權(quán)限管理提供了最大的靈活性。3.角色管理角色是SQL Server引進(jìn)的用來(lái)集中管理數(shù)據(jù)庫(kù)和服務(wù)器權(quán)限的概念。數(shù)據(jù)庫(kù)管理員(DBA)操作數(shù)據(jù)庫(kù)的權(quán)限賦予角色,然后再將角色賦給數(shù)據(jù)庫(kù)用戶或者登錄的賬戶,從而使數(shù)據(jù)庫(kù)用戶或登錄賬戶有相應(yīng)的權(quán)限。在SQL Server中既包含服務(wù)器角色又包含數(shù)據(jù)庫(kù)角色。l 服務(wù)器角色:主要于在用戶登錄時(shí)授予的在服務(wù)器范圍內(nèi)的安全特權(quán)。l 數(shù)據(jù)庫(kù)角色:能為某一用戶授予不同級(jí)別的管理或訪問(wèn)數(shù)據(jù)庫(kù)及其對(duì)象得權(quán)限。由于角色管理的應(yīng)用,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論