的安全機(jī)制和技術(shù).ppt_第1頁(yè)
的安全機(jī)制和技術(shù).ppt_第2頁(yè)
的安全機(jī)制和技術(shù).ppt_第3頁(yè)
的安全機(jī)制和技術(shù).ppt_第4頁(yè)
的安全機(jī)制和技術(shù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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)介

第20章 SQL Server 2008的安全機(jī)制和技術(shù),學(xué)習(xí)導(dǎo)讀 SQL Server 2008內(nèi)置了保護(hù)SQL Server實(shí)例及其數(shù)據(jù)的安全機(jī)制和技術(shù),而且這些安全機(jī)制和技術(shù)可以被用戶自行進(jìn)行配置。靈活、準(zhǔn)確地使用SQL Server 2008的這些機(jī)制和技術(shù),可以方便地將SQL Server的安全性提高到一個(gè)新的水平。不過(guò),使用SQL Server的安全機(jī)制,只能減少SQL Server安全機(jī)制引起的安全風(fēng)險(xiǎn)。,1,SQL Server的身份驗(yàn)證模式,前面多次提到SQL Server的身份驗(yàn)證模式,但都是簡(jiǎn)單地提到,這里將進(jìn)行匯總,并給出詳細(xì)的描述。本節(jié)還將介紹如何切換服務(wù)器的身份驗(yàn)證模式,以及如何使用不同的身份驗(yàn)證模式連接、訪問(wèn)SQL Server的數(shù)據(jù)庫(kù)引擎服務(wù)。在SQL Server 2008中,SQL Server的身份驗(yàn)證模式主要分為混合模式和Windows身份驗(yàn)證模式兩種。,2,使用混合模式,所謂混合模式,是指SQL Server 2008同時(shí)啟用SQL Server身份驗(yàn)證模式和Windows身份驗(yàn)證模式。在這種模式下,sa是常用的登錄名。不過(guò),sa是一個(gè)被人熟知的賬戶,需要為sa設(shè)置復(fù)雜的密碼。否則,可能引起一些安全方面的問(wèn)題。,3,使用混合模式,一般情況下,混合模式主要用于C/S結(jié)構(gòu)的應(yīng)用系統(tǒng)。在這種結(jié)構(gòu)下,有安全隱患:即使設(shè)置了良好的sa密碼,安全性也較難保障。因?yàn)槊艽a可能會(huì)被sniffer捕獲,進(jìn)而造成sa密碼的暴露。,4,SQL Server服務(wù)器,客戶端,網(wǎng)絡(luò),使用混合模式,一種使用sa帳戶的改進(jìn)的方式。這種模式下客戶端不再使用sa密碼直接與SQL Server建立連接,而是直接與應(yīng)用服務(wù)器連接。而訪問(wèn)SQL Server的操作是由應(yīng)用服務(wù)器完成的。具體步驟: 客戶端與應(yīng)用服務(wù)器建立連接,并將要執(zhí)行的SQL語(yǔ)句發(fā)給應(yīng)用服務(wù)器; 應(yīng)用服務(wù)器與SQL Server建立連接,并將SQL語(yǔ)句提交給數(shù)據(jù)庫(kù); 數(shù)據(jù)庫(kù)把執(zhí)行結(jié)果發(fā)給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器返回給客戶端。,5,應(yīng)用 服務(wù)器,客戶端,網(wǎng)絡(luò),SQL Server 服務(wù)器,使用混合模式,如果使用這種結(jié)構(gòu)編寫使用sa帳戶的應(yīng)用系統(tǒng),那么一定要確保SQL Server服務(wù)器與應(yīng)用服務(wù)器端在同一個(gè)局域網(wǎng)內(nèi),否則應(yīng)用服務(wù)器使用sa帳戶訪問(wèn)SQL Server服務(wù)器仍舊存在安全風(fēng)險(xiǎn)。因?yàn)椴辉谕粋€(gè)局域網(wǎng)內(nèi),所以sa帳戶會(huì)暴露在互聯(lián)網(wǎng)上,更有可能被網(wǎng)絡(luò)監(jiān)聽(tīng)軟件捕獲。 其實(shí),應(yīng)用服務(wù)器就是一個(gè)中間件?,F(xiàn)在隨著B/S結(jié)構(gòu)的流行,越來(lái)越多地采用B/S結(jié)構(gòu)編寫應(yīng)用系統(tǒng)。如果用B/S結(jié)構(gòu)編寫應(yīng)用系統(tǒng),那么C/S中的客戶端可以簡(jiǎn)化為一種WEB瀏覽器,而應(yīng)用服務(wù)器由WEB服務(wù)器替代。,6,使用混合模式,此時(shí),用戶可以從編寫傳統(tǒng)的Windows的應(yīng)用軟件中解脫出來(lái),專心于應(yīng)用系統(tǒng)的編寫(編寫網(wǎng)頁(yè)),而不用去考慮客戶端的開(kāi)發(fā)和維護(hù)。當(dāng)然,編寫網(wǎng)頁(yè)也是一項(xiàng)工程,在編寫的過(guò)程中,需要使用相應(yīng)的動(dòng)態(tài)技術(shù)(如ASP)、客戶端腳本(如JS)以及頁(yè)面布局(HTML)。,7,使用Windows身份驗(yàn)證模式,所謂Windows身份驗(yàn)證,是指SQL Server僅啟用Windows身份驗(yàn)證,而禁用SQL Server身份驗(yàn)證的一種驗(yàn)證登錄者身份的機(jī)制。顯然,即使是在混合模式下,Windows身份驗(yàn)證也可用??傊?,Windows身份驗(yàn)證是不能被禁用的。 盡管在選擇Windows身份驗(yàn)證模式時(shí),SQL Server會(huì)自動(dòng)禁用SQL Server身份驗(yàn)證,但是,SQL Server安裝程序仍然會(huì)為SQL Server身份驗(yàn)證創(chuàng)建sa帳戶,不過(guò)會(huì)禁用該帳戶。,8,使用Windows身份驗(yàn)證模式,使用Windows身份驗(yàn)證模式訪問(wèn)SQL Server是推薦的訪問(wèn)SQL Server的方式。使用Windows身份驗(yàn)證模式訪問(wèn)SQL Server的工具大致可以分為兩類,即SQL Server 2008自帶的客戶端軟件(如SQLCMD)和應(yīng)用系統(tǒng)。 如果需要開(kāi)發(fā)基于SQL Server的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),最好使用Windows Server 2008、VS2008及SQL Server 2008。,9,配置SQL Server的身份驗(yàn)證模式,在安裝SQL Server的過(guò)程中,需要選擇SQL Server的身份驗(yàn)證模式,即選擇Windows身份驗(yàn)證模式或混合驗(yàn)證模式,SQL Server安裝進(jìn)程將會(huì)把SQL Server設(shè)置為相應(yīng)的身份驗(yàn)證模式。不過(guò),仍可以使用SQL Server Management Studio查看和更改SQL Server的身份驗(yàn)證模式,具體步驟如下: (1)在對(duì)象資源管理器中,選擇服務(wù)器的屬性。,10,配置SQL Server的身份驗(yàn)證模式,(2)在服務(wù)器屬性對(duì)話框中,選擇“安全性”標(biāo)簽: 需要重 啟服務(wù),11,配置SQL Server的身份驗(yàn)證模式,(3)由于在Windows身份驗(yàn)證模式下,帳戶sa處于禁用狀態(tài),所以在啟用混合模式后,需要啟用sa帳戶。,12,角色、登錄名、用戶,SQL Server 2008還提供了角色這個(gè)數(shù)據(jù)庫(kù)對(duì)象,來(lái)對(duì)登錄名和權(quán)限進(jìn)行分組和管理。角色這個(gè)概念類似于Windows中用戶組的概念,即屬于不同角色的用戶具有不同的權(quán)限。其中,角色又分為服務(wù)器級(jí)角色和數(shù)據(jù)庫(kù)級(jí)角色。這里主要介紹服務(wù)器級(jí)角色、登錄名、用戶等內(nèi)容。,13,服務(wù)器級(jí)角色,在SQL Server 2008中,服務(wù)器級(jí)角色是不允許被修改的。所以,對(duì)于服務(wù)器級(jí)角色,只能夠使用。也就是說(shuō),可以將一個(gè)登錄名或用戶分配到服務(wù)器及角色中。在SQL Server 2008中,可以使用存儲(chǔ)過(guò)程和系統(tǒng)目錄來(lái)管理服務(wù)器角色。,14,服務(wù)器級(jí)角色,1查看服務(wù)器級(jí)角色 可以在對(duì)象資源管理器-安全性-服務(wù)器角色中查看服務(wù)器級(jí)的角色。,15,服務(wù)器級(jí)角色,也可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_helpsrvrole來(lái)查看服務(wù)器級(jí)角色。 USE master GO sp_helpsrvrole,16,服務(wù)器級(jí)角色,2查看服務(wù)器級(jí)角色的權(quán)限 在SQL Server中服務(wù)器級(jí)角色的相應(yīng)權(quán)限如下表所示:,17,服務(wù)器級(jí)角色,服務(wù)器級(jí)角色的準(zhǔn)確劃分是為了將訪問(wèn)和操作SQL Server的不同權(quán)限分屬于不同的數(shù)據(jù)庫(kù)管理員,適于較大規(guī)模的數(shù)據(jù)庫(kù)。在一般情況下,企業(yè)只有少數(shù)的數(shù)據(jù)庫(kù)管理員,而且數(shù)據(jù)庫(kù)管理員的權(quán)限都是類似的,即都是角色sysadmin的成員。,18,服務(wù)器級(jí)角色,3查看服務(wù)器級(jí)角色的成員 通過(guò)系統(tǒng)存儲(chǔ)過(guò)程sp_helpsrvrolemember可以查看服務(wù)器級(jí)角色中的成員。 USE master GO sp_helpsrvrolemember,19,服務(wù)器級(jí)角色,可以編寫一個(gè)函數(shù)來(lái)查看服務(wù)器級(jí)角色的成員。 USE database_demo GO CREATE FUNCTION dbo.id_to_name(id AS INT) RETURNS NCHAR(57) AS BEGIN DECLARE tmp NCHAR(57)= SELECT tmp=name FROM sys.server_principals AS syssp WHERE syssp.principal_id=id RETURN tmp END GO,20,服務(wù)器級(jí)角色,SELECT role_principal_id,dbo.id_to_name(role_principal_id) AS 角色,member_principal_id,dbo.id_to_name(member_principal_id) AS 成員 FROM sys.server_role_members,21,登錄名,在SQL Server 2008中,所謂登錄名,就是指可以登錄到SQL Server 2008實(shí)例的賬號(hào)。上面在安裝SQL Server時(shí),SQL Server安裝進(jìn)程自動(dòng)創(chuàng)建了兩個(gè)登錄名。具體內(nèi)容如下。 用戶在安裝SQL Server 2008時(shí),對(duì)屬于數(shù)據(jù)庫(kù)引擎的Windows用戶名將自動(dòng)成為一個(gè)登錄名 除此之外,SQL Server安裝進(jìn)程還自動(dòng)創(chuàng)建了sa登錄名,用于混合身份驗(yàn)證模式。,22,登錄名,1查看登錄名 可以通過(guò)系統(tǒng)目錄sys.server_principals來(lái)查看登錄名: SELECT name,type_desc,is_disabled,default_database_name,default_language_name FROM sys.server_principals WHERE type_desc=SQL_LOGIN or type_desc=WINDOWS_LOGIN ORDER BY type_desc,23,登錄名,也可以在對(duì)象資源管理器中查看當(dāng)前服務(wù)器中的登錄名的信息。 其實(shí),基于Windows登錄的登錄名就是由普通的Windows用戶加入適當(dāng)?shù)姆?wù)器級(jí)角色而成的,而基于SQL Server驗(yàn)證方式的登錄名不依賴于Windows用戶帳號(hào)。,24,登錄名,2創(chuàng)建Windows用戶 可以用Windows自帶的計(jì)算機(jī)管理來(lái)創(chuàng)建用戶。 (1)在計(jì)算機(jī)管理-本地用戶和組-用戶上單擊右鍵選擇“新用戶”。,25,登錄名,(2)在新用戶中輸入相應(yīng)信息。,26,登錄名,3創(chuàng)建登錄名 在Studio中創(chuàng)建一個(gè)基于Windows用戶登錄名的操作很簡(jiǎn)單。 (1)對(duì)象資源管理器-安全性-登錄名上右鍵選擇“新建登錄名”。,27,登錄名,(2)在“新建登錄名”窗口中輸入相應(yīng)的信息。,28,登錄名,(3)也可以用SQL語(yǔ)句來(lái)完成相同的工作: CREATE LOGIN PYWLIN FROM WINDOWS WITH DEFAULT_DATABASE=database_demo,DEFAULT_LANGUAGE=簡(jiǎn)體中文,29,登錄名,4給登錄名賦予角色 創(chuàng)建登錄名后,最好給登錄名賦予角色。打開(kāi)登錄名的屬性:,30,登錄名,通過(guò)SQL語(yǔ)句對(duì)登錄名進(jìn)行角色設(shè)置時(shí),需要分為增加角色和刪除角色。系統(tǒng)存儲(chǔ)過(guò)程sp_addsrvrolemember用于增加角色: EXEC sys.sp_addsrvrolemember loginname=NPYWLIN,rolename=Nsysadmin sp_dropsrvrolemember用于刪除角色: EXEC sys.sp_dropsrvrolemember loginname=NPYWLIN,rolename=Nsysadmin,31,用戶,在SQL Server 2008中,用戶和登錄名是兩個(gè)較易于發(fā)生混淆的概念。其實(shí),理清了用戶與登錄名在SQL Server訪問(wèn)數(shù)據(jù)庫(kù)的順序,就能區(qū)別這兩個(gè)概念了。如果客戶端具有一個(gè)登錄名,那么只能使用該登錄名登錄到SQL Server服務(wù)器。此時(shí),SQL Server將通過(guò)系統(tǒng)視圖sys.sql_logins或sys.server_principals查找相應(yīng)登錄名及其對(duì)應(yīng)數(shù)據(jù)庫(kù)等信息。如下SQL語(yǔ)句將查詢當(dāng)前SQL Server實(shí)例中登錄名的信息。,32,用戶,USE master GO SELECT name,type_desc,is_disabled,default_database_name,default_language_name FROM sys.server_principals,33,用戶,在使用登錄名登錄到SQL Server后,SQL Server將通過(guò)系統(tǒng)視圖sys.database_principals查找訪問(wèn)特定數(shù)據(jù)庫(kù)的用戶。如果特定的數(shù)據(jù)庫(kù)沒(méi)有指定相應(yīng)的用戶,那么SQL Server視圖將以guest用戶的身份訪問(wèn)數(shù)據(jù)庫(kù)。如下SQL語(yǔ)句將查詢當(dāng)前數(shù)據(jù)庫(kù)中的用戶信息: USE database_demo GO SELECT name,type_desc,default_schema_name FROM sys.database_principals,34,用戶,總之,在不同的數(shù)據(jù)庫(kù)中,都可以基于一個(gè)登錄名來(lái)創(chuàng)建一個(gè)用戶。也就是說(shuō),一個(gè)登錄名可以被多個(gè)數(shù)據(jù)庫(kù)的用戶名使用。但是在同一個(gè)數(shù)據(jù)庫(kù)中,一個(gè)用戶只能對(duì)應(yīng)一個(gè)登錄名。,35,權(quán)限,在SQL Server中,對(duì)于數(shù)據(jù)庫(kù)的操作是基于權(quán)限進(jìn)行的。也就是說(shuō),如果沒(méi)有權(quán)限,那么相應(yīng)的操作將失敗。所謂權(quán)限,是指數(shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)庫(kù)對(duì)象操作的能力或限制。SQL Server中的權(quán)限一般表現(xiàn)在用戶的權(quán)限上。,36,安全對(duì)象,所謂安全對(duì)象,是指影響到SQL Server安全性的數(shù)據(jù)庫(kù)對(duì)象。在SQL Server 2008中,安全對(duì)象是能夠被SQL Server所控制的最小單位。通過(guò)對(duì)安全對(duì)象的控制,SQL Server限制了數(shù)據(jù)庫(kù)對(duì)象對(duì)資源的訪問(wèn)和占用,也就限制了用戶對(duì)SQL Server資源的使用。在SQL Server 2008中,按照范圍來(lái)分安全對(duì)象的范圍,可分為服務(wù)器、數(shù)據(jù)庫(kù)、架構(gòu)。,37,安全對(duì)象,服務(wù)器范圍內(nèi)的安全對(duì)象:端點(diǎn)、登錄帳戶、數(shù)據(jù)庫(kù); 數(shù)據(jù)庫(kù)范圍內(nèi)的安全對(duì)象:用戶、角色、應(yīng)用系統(tǒng)角色、程序集、非對(duì)稱密鑰、對(duì)稱密鑰和架構(gòu)等; 架構(gòu)范圍內(nèi)的安全對(duì)象:類型、XML架構(gòu)集合、對(duì)象。其中對(duì)象包括:聚合、約束、函數(shù)、過(guò)程、隊(duì)列、統(tǒng)計(jì)信息、同義詞、表和視圖等。顯然,架構(gòu)內(nèi)的安全對(duì)象是最常用、最重要的。,38,權(quán)限,在SQL Server 2008中,會(huì)碰到有很多的權(quán)限。為了使用戶便于記憶和理解,這里先介紹權(quán)限的命名規(guī)則和一些常用的約定。 CONTROL:被授予CONTROL權(quán)限的用戶對(duì)安全對(duì)象具有所有的權(quán)限。因?yàn)镾QL Server安全權(quán)限是分層和繼承的,所以具有CONTROL權(quán)限的用戶對(duì)該安全對(duì)象內(nèi)其他所有安全對(duì)象都具有CONTROL權(quán)限。 ALTER:授予ALTER權(quán)限的用戶對(duì)安全對(duì)象具有更改的權(quán)限。,39,權(quán)限,TAKE OWNERSHIP:被授予TAKE OWNERSHIP的用戶將獲得安全對(duì)象的所有權(quán)。 CREATE:被授予CREATE權(quán)限的用戶具有創(chuàng)建安全對(duì)象的權(quán)限。,40,操作權(quán)限,上面介紹了安全對(duì)象及其一些可用的權(quán)限。SQL Server主要提供了3個(gè)語(yǔ)句操作權(quán)限,即GRANT語(yǔ)句、REVOKE語(yǔ)句和DENY語(yǔ)句。其中,GRANT語(yǔ)句用于將權(quán)限授予某個(gè)安全對(duì)象;REVOKE語(yǔ)句用于刪除已被授予的權(quán)限;DENY語(yǔ)句用于防止安全對(duì)象通過(guò)GRANT來(lái)獲得特定權(quán)限,即如果某安全對(duì)象已經(jīng)被執(zhí)行了DENY語(yǔ)句,那么該安全對(duì)象將不再接受GRANT語(yǔ)句授予的權(quán)限。GRANT語(yǔ)句的語(yǔ)法如下。 GRANT ALL PRIVILEGES | permission ( column ,.n ) ,.n ON class : securable TO principal ,.n WITH GRANT OPTION AS principal ,41,操作權(quán)限,其中,組成元素的意義: ALL:不推薦使用此選項(xiàng),保留此選項(xiàng)僅用于向后兼容。其實(shí),ALL不會(huì)授予所有可能的權(quán)限,而且ALL所授予的權(quán)限會(huì)隨著安全對(duì)象的不同而不同。 PRIVILEGES:包含此參數(shù)只是為了符合ISO的標(biāo)準(zhǔn)。 Permission:權(quán)限的名稱。 column:指定表中將授予其權(quán)限的列名。 class:指定將授予其權(quán)限的安全對(duì)象的類。需要使用范圍限定符(:)。 securable:指定將授予其權(quán)限的安全對(duì)象。 TO principal:主體的名稱。 GRANT

溫馨提示

  • 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)論