安全性-安全保護(hù)及用戶ppt課件_第1頁(yè)
安全性-安全保護(hù)及用戶ppt課件_第2頁(yè)
安全性-安全保護(hù)及用戶ppt課件_第3頁(yè)
安全性-安全保護(hù)及用戶ppt課件_第4頁(yè)
安全性-安全保護(hù)及用戶ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、第第2222章章 安全性安全性- -安全保護(hù)及用戶權(quán)限安全保護(hù)及用戶權(quán)限安全性是數(shù)據(jù)庫(kù)最重要的特性之一,可將保護(hù)安全性是數(shù)據(jù)庫(kù)最重要的特性之一,可將保護(hù)SQL Server視為一系列步驟視為一系列步驟,其涉及到,其涉及到4方面:平臺(tái)、身份驗(yàn)證、對(duì)象(包括數(shù)據(jù))及訪問(wèn)系統(tǒng)的應(yīng)用程序;方面:平臺(tái)、身份驗(yàn)證、對(duì)象(包括數(shù)據(jù))及訪問(wèn)系統(tǒng)的應(yīng)用程序;而而SQL注入是一種最為常見(jiàn)的攻擊方式,嚴(yán)重威脅到注入是一種最為常見(jiàn)的攻擊方式,嚴(yán)重威脅到SQL Server的安全性;合理的安全性;合理的用戶權(quán)限也是系統(tǒng)安全的保障之一。的用戶權(quán)限也是系統(tǒng)安全的保障之一。22.1 22.1 架構(gòu)架構(gòu)架構(gòu)是包含表、視圖、過(guò)程

2、等的容器,其位于數(shù)據(jù)庫(kù)內(nèi)部,而數(shù)據(jù)庫(kù)位于架構(gòu)是包含表、視圖、過(guò)程等的容器,其位于數(shù)據(jù)庫(kù)內(nèi)部,而數(shù)據(jù)庫(kù)位于服務(wù)器內(nèi)部。這些實(shí)體像嵌套框一樣放置在一起。服務(wù)器是最外面的框,而架構(gòu)服務(wù)器內(nèi)部。這些實(shí)體像嵌套框一樣放置在一起。服務(wù)器是最外面的框,而架構(gòu)是最里面的框。是最里面的框。22.1.1 22.1.1 用戶與架構(gòu)的分離用戶與架構(gòu)的分離在在SQL Server 2008中,架構(gòu)不等效于數(shù)據(jù)庫(kù)用戶?,F(xiàn)在,每個(gè)架構(gòu)都是獨(dú)中,架構(gòu)不等效于數(shù)據(jù)庫(kù)用戶?,F(xiàn)在,每個(gè)架構(gòu)都是獨(dú)立于其創(chuàng)建數(shù)據(jù)庫(kù)用戶存在的不同命名空間。也就是說(shuō),架構(gòu)只是對(duì)象的容器。立于其創(chuàng)建數(shù)據(jù)庫(kù)用戶存在的不同命名空間。也就是說(shuō),架構(gòu)只是對(duì)象的容器

3、。任何用戶都可以擁有架構(gòu),并且架構(gòu)所有權(quán)可以轉(zhuǎn)移。任何用戶都可以擁有架構(gòu),并且架構(gòu)所有權(quán)可以轉(zhuǎn)移。22.1.2 22.1.2 新目錄視圖新目錄視圖在在SQL Server 2008中架構(gòu)是反映的顯式實(shí)體。因此,架構(gòu)只能有一個(gè)所有中架構(gòu)是反映的顯式實(shí)體。因此,架構(gòu)只能有一個(gè)所有者。但一個(gè)用戶可以擁有一個(gè)架構(gòu),也可以擁有多個(gè)架構(gòu),還可以不榮擁有架構(gòu)者。但一個(gè)用戶可以擁有一個(gè)架構(gòu),也可以擁有多個(gè)架構(gòu),還可以不榮擁有架構(gòu)。這種復(fù)雜關(guān)系并未在以前數(shù)據(jù)庫(kù)版本的系統(tǒng)表中反映,因此。這種復(fù)雜關(guān)系并未在以前數(shù)據(jù)庫(kù)版本的系統(tǒng)表中反映,因此SQL Server 2008使使用了新的目錄視圖,以準(zhǔn)確反映新的元數(shù)據(jù)。用

4、了新的目錄視圖,以準(zhǔn)確反映新的元數(shù)據(jù)。22.1.3 22.1.3 什么是默認(rèn)架構(gòu)什么是默認(rèn)架構(gòu)每個(gè)用戶都擁有一個(gè)默認(rèn)架構(gòu),可以使用每個(gè)用戶都擁有一個(gè)默認(rèn)架構(gòu),可以使用CREATE USER或或ALTER USER的的DEFAULT_SCHEMA選項(xiàng)來(lái)設(shè)置和更改默認(rèn)架構(gòu)。如果未定義選項(xiàng)來(lái)設(shè)置和更改默認(rèn)架構(gòu)。如果未定義DEFAULT_SCHEMA,則數(shù)據(jù)庫(kù)用戶將使用,則數(shù)據(jù)庫(kù)用戶將使用dbo作為默認(rèn)架構(gòu)。如存儲(chǔ)過(guò)程的名作為默認(rèn)架構(gòu)。如存儲(chǔ)過(guò)程的名字一般為字一般為dbo.uspGetBillOfMaterials。22.2 22.2 主體主體主體是可以請(qǐng)求主體是可以請(qǐng)求SQL Server資源的實(shí)體

5、。與資源的實(shí)體。與SQL Server授權(quán)模型的其他組授權(quán)模型的其他組件一樣,主體也可以按層次結(jié)構(gòu)排列。主體的影響范圍取決于主體定義的范圍(件一樣,主體也可以按層次結(jié)構(gòu)排列。主體的影響范圍取決于主體定義的范圍(Windows、服務(wù)器或數(shù)據(jù)庫(kù)),以及主體是否不可分或是一個(gè)集合。、服務(wù)器或數(shù)據(jù)庫(kù)),以及主體是否不可分或是一個(gè)集合。22.2.1 22.2.1 典型的主體典型的主體在在SQL Server 2008中典型的主體有中典型的主體有SQL Server sa登錄名、登錄名、public數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)角色,以及基于證書(shū)的角色,以及基于證書(shū)的SQL Server登錄名。登錄名。(1)SQL Ser

6、ver sa登錄名登錄名(2)public數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色(3)基于證書(shū)的)基于證書(shū)的SQL Server登錄名登錄名(4)客戶端和數(shù)據(jù)庫(kù)服務(wù)器)客戶端和數(shù)據(jù)庫(kù)服務(wù)器(5)非主體,)非主體,INFORMATION_SCHEMA和和sys22.2.2 22.2.2 選擇身份驗(yàn)證模式選擇身份驗(yàn)證模式對(duì)于對(duì)于SQL Server 2008的登錄名主體,在安裝過(guò)程中,必須為數(shù)據(jù)庫(kù)引擎選的登錄名主體,在安裝過(guò)程中,必須為數(shù)據(jù)庫(kù)引擎選擇身份驗(yàn)證模式。可供選擇的模式有兩種:擇身份驗(yàn)證模式??晒┻x擇的模式有兩種:Windows身份驗(yàn)證模式和混合模式。身份驗(yàn)證模式和混合模式。Windows身份驗(yàn)證模式會(huì)啟用

7、身份驗(yàn)證模式會(huì)啟用Windows身份驗(yàn)證并禁用身份驗(yàn)證并禁用SQL Server身份驗(yàn)證。身份驗(yàn)證?;旌夏J綍?huì)同時(shí)啟用混合模式會(huì)同時(shí)啟用Windows身份驗(yàn)證和身份驗(yàn)證和SQL Server身份驗(yàn)證。身份驗(yàn)證。Windows身份身份驗(yàn)證始終可用,并且無(wú)法禁用。驗(yàn)證始終可用,并且無(wú)法禁用。(1)配置身份驗(yàn)證模式)配置身份驗(yàn)證模式(2)通過(guò))通過(guò)Windows身份驗(yàn)證進(jìn)行連接身份驗(yàn)證進(jìn)行連接(3)通過(guò))通過(guò)SQL Server身份驗(yàn)證進(jìn)行連接身份驗(yàn)證進(jìn)行連接(4)SQL Server身份驗(yàn)證的缺點(diǎn)身份驗(yàn)證的缺點(diǎn)(5)SQL Server身份驗(yàn)證的優(yōu)點(diǎn)身份驗(yàn)證的優(yōu)點(diǎn)22.3 SQL Server22

8、.3 SQL Server登錄用戶的管理登錄用戶的管理操作操作SQL Server的人員一般稱為的人員一般稱為SQL Server用戶,在打開(kāi)用戶,在打開(kāi)SQL Server后后,都會(huì)出現(xiàn)一個(gè)連接對(duì)話框,要求輸入服務(wù)器名稱和身份驗(yàn)證等信息。身份驗(yàn)證,都會(huì)出現(xiàn)一個(gè)連接對(duì)話框,要求輸入服務(wù)器名稱和身份驗(yàn)證等信息。身份驗(yàn)證信息就是一個(gè)用戶的用戶名和密碼,通過(guò)信息就是一個(gè)用戶的用戶名和密碼,通過(guò)SQL Server的的“用戶用戶”對(duì)象,可以設(shè)置對(duì)象,可以設(shè)置數(shù)據(jù)庫(kù)的使用權(quán)限。同一個(gè)數(shù)據(jù)庫(kù)可以擁有多個(gè)用戶,同一個(gè)用戶也可以同時(shí)訪數(shù)據(jù)庫(kù)的使用權(quán)限。同一個(gè)數(shù)據(jù)庫(kù)可以擁有多個(gè)用戶,同一個(gè)用戶也可以同時(shí)訪問(wèn)多個(gè)

9、數(shù)據(jù)庫(kù)。問(wèn)多個(gè)數(shù)據(jù)庫(kù)。22.3.1 22.3.1 添加用戶添加用戶使用使用SQL Server Management Studio可以可視化的添加用戶,步驟如下可以可視化的添加用戶,步驟如下所示。所示。22.3.2 22.3.2 使用用戶登錄使用用戶登錄創(chuàng)建登錄名后,可以用該登錄名來(lái)登錄數(shù)據(jù)庫(kù)實(shí)例,下面就列用上面創(chuàng)建創(chuàng)建登錄名后,可以用該登錄名來(lái)登錄數(shù)據(jù)庫(kù)實(shí)例,下面就列用上面創(chuàng)建好的登錄名進(jìn)行操作,步驟如下所示。好的登錄名進(jìn)行操作,步驟如下所示。22.3.3 22.3.3 為用戶設(shè)置權(quán)限為用戶設(shè)置權(quán)限本節(jié)介紹在本節(jié)介紹在SQL Server Management Studio里為用戶添加權(quán)限的

10、方法。里為用戶添加權(quán)限的方法。步驟如下。步驟如下。22.4 22.4 角色角色為便于管理服務(wù)器和數(shù)據(jù)庫(kù)上的權(quán)限,為便于管理服務(wù)器和數(shù)據(jù)庫(kù)上的權(quán)限,SQL Server提供了若干提供了若干“角色角色”,這些角色是用于分組其他主體的安全主體。這些角色是用于分組其他主體的安全主體?!敖巧巧鳖愃朴陬愃朴贛icrosoft Windows操作系統(tǒng)中的操作系統(tǒng)中的“組組”。22.4.1 22.4.1 服務(wù)器級(jí)別角色服務(wù)器級(jí)別角色服務(wù)器級(jí)角色也稱為服務(wù)器級(jí)角色也稱為“固定服務(wù)器角色固定服務(wù)器角色”,因?yàn)橛脩舨荒軇?chuàng)建新的服務(wù)器,因?yàn)橛脩舨荒軇?chuàng)建新的服務(wù)器級(jí)角色。服務(wù)器級(jí)角色的權(quán)限作用域?yàn)榉?wù)器范圍。用戶可

11、以向服務(wù)器級(jí)角色中級(jí)角色。服務(wù)器級(jí)角色的權(quán)限作用域?yàn)榉?wù)器范圍。用戶可以向服務(wù)器級(jí)角色中添加添加SQL Server登錄名、登錄名、Windows賬戶和賬戶和Windows組。固定服務(wù)器角色的每個(gè)組。固定服務(wù)器角色的每個(gè)成員都可以向其所屬角色添加其他登錄名。成員都可以向其所屬角色添加其他登錄名。22.4.2 22.4.2 數(shù)據(jù)庫(kù)級(jí)別的角色數(shù)據(jù)庫(kù)級(jí)別的角色為便于管理數(shù)據(jù)庫(kù)中的權(quán)限,為便于管理數(shù)據(jù)庫(kù)中的權(quán)限,SQL Server同樣也提供了若干同樣也提供了若干“角色角色”,這,這些角色是用于分組其他主體的安全主體。數(shù)據(jù)庫(kù)級(jí)角色的權(quán)限作用域?yàn)閿?shù)據(jù)庫(kù)范些角色是用于分組其他主體的安全主體。數(shù)據(jù)庫(kù)級(jí)角色的

12、權(quán)限作用域?yàn)閿?shù)據(jù)庫(kù)范圍。圍。SQL Server中有兩種類型的數(shù)據(jù)庫(kù)級(jí)角色:數(shù)據(jù)庫(kù)中預(yù)定義的中有兩種類型的數(shù)據(jù)庫(kù)級(jí)角色:數(shù)據(jù)庫(kù)中預(yù)定義的“固定數(shù)據(jù)庫(kù)固定數(shù)據(jù)庫(kù)角色角色”和可以自己創(chuàng)建的和可以自己創(chuàng)建的“靈活數(shù)據(jù)庫(kù)角色靈活數(shù)據(jù)庫(kù)角色”。22.5 22.5 權(quán)限權(quán)限每個(gè)每個(gè)SQL Server安全對(duì)象都有可以授予主體的關(guān)聯(lián)權(quán)限。從大的范圍來(lái)講安全對(duì)象都有可以授予主體的關(guān)聯(lián)權(quán)限。從大的范圍來(lái)講,SQL Server 2008的權(quán)限也無(wú)非是服務(wù)器級(jí)安全性的權(quán)限,就是數(shù)據(jù)庫(kù)庫(kù)安全性的權(quán)限也無(wú)非是服務(wù)器級(jí)安全性的權(quán)限,就是數(shù)據(jù)庫(kù)庫(kù)安全性的權(quán)限。的權(quán)限。22.5.1 22.5.1 了解權(quán)限了解權(quán)限本節(jié)需要先

13、了解數(shù)據(jù)庫(kù)都提供了哪些權(quán)限。本節(jié)需要先了解數(shù)據(jù)庫(kù)都提供了哪些權(quán)限。22.5.2 22.5.2 權(quán)限層次結(jié)構(gòu)權(quán)限層次結(jié)構(gòu)數(shù)據(jù)庫(kù)引擎管理著可以通過(guò)權(quán)限進(jìn)行保護(hù)的實(shí)體的分層集合。這些實(shí)體稱數(shù)據(jù)庫(kù)引擎管理著可以通過(guò)權(quán)限進(jìn)行保護(hù)的實(shí)體的分層集合。這些實(shí)體稱為為“安全對(duì)象安全對(duì)象”。在安全對(duì)象中,最突出的是服務(wù)器和數(shù)據(jù)庫(kù),但可以在更細(xì)的。在安全對(duì)象中,最突出的是服務(wù)器和數(shù)據(jù)庫(kù),但可以在更細(xì)的級(jí)別上設(shè)置離散權(quán)限。級(jí)別上設(shè)置離散權(quán)限。SQL Server通過(guò)驗(yàn)證主體是否已獲得適當(dāng)?shù)臋?quán)限來(lái)控制主通過(guò)驗(yàn)證主體是否已獲得適當(dāng)?shù)臋?quán)限來(lái)控制主體對(duì)安全對(duì)象執(zhí)行的操作。體對(duì)安全對(duì)象執(zhí)行的操作。22.5.3 22.5.3 將

14、用戶設(shè)為服務(wù)器角色成員將用戶設(shè)為服務(wù)器角色成員既然角色相當(dāng)于用戶組,那么就可以將用戶設(shè)為角色成員,以繼承角色的既然角色相當(dāng)于用戶組,那么就可以將用戶設(shè)為角色成員,以繼承角色的權(quán)限,下面將權(quán)限,下面將WANG賬戶設(shè)為賬戶設(shè)為dbcreator角色成員為例,介紹如何將用戶設(shè)為角色角色成員為例,介紹如何將用戶設(shè)為角色成員。成員。22.5.4 22.5.4 將用戶設(shè)為數(shù)據(jù)庫(kù)角色成員將用戶設(shè)為數(shù)據(jù)庫(kù)角色成員將用戶設(shè)為數(shù)據(jù)庫(kù)角色成員與將用戶設(shè)為服務(wù)器角色成員的操作類似,只將用戶設(shè)為數(shù)據(jù)庫(kù)角色成員與將用戶設(shè)為服務(wù)器角色成員的操作類似,只是權(quán)限不同,下面以將是權(quán)限不同,下面以將WANG賬戶設(shè)為賬戶設(shè)為db_d

15、atareader角色成員為例,介紹如何將角色成員為例,介紹如何將用戶設(shè)為數(shù)據(jù)庫(kù)角色成員。用戶設(shè)為數(shù)據(jù)庫(kù)角色成員。22.6 SQL22.6 SQL注入的安全防范注入的安全防范現(xiàn)在現(xiàn)在SQL注入已經(jīng)成為所有數(shù)據(jù)庫(kù)應(yīng)用程序所必須注意的問(wèn)題。注入已經(jīng)成為所有數(shù)據(jù)庫(kù)應(yīng)用程序所必須注意的問(wèn)題。SQL注入注入是一種攻擊方式,在這種攻擊方式中,惡意代碼被插入到字符串中,然后將該字是一種攻擊方式,在這種攻擊方式中,惡意代碼被插入到字符串中,然后將該字符串傳遞到符串傳遞到SQL Server的實(shí)例以進(jìn)行分析和執(zhí)行。任何構(gòu)成的實(shí)例以進(jìn)行分析和執(zhí)行。任何構(gòu)成SQL語(yǔ)句的過(guò)程都應(yīng)語(yǔ)句的過(guò)程都應(yīng)進(jìn)行注入漏洞檢查,因?yàn)檫M(jìn)

16、行注入漏洞檢查,因?yàn)镾QL Server將執(zhí)行其接收到的所有語(yǔ)法有效的查詢。一將執(zhí)行其接收到的所有語(yǔ)法有效的查詢。一個(gè)有經(jīng)驗(yàn)的、堅(jiān)定的攻擊者甚至可以操作參數(shù)化數(shù)據(jù)。個(gè)有經(jīng)驗(yàn)的、堅(jiān)定的攻擊者甚至可以操作參數(shù)化數(shù)據(jù)。22.6.1 22.6.1 什么是什么是SQLSQL注入注入SQL注入的形式包括直接將代碼插入到與注入的形式包括直接將代碼插入到與SQL命令串聯(lián)在一起,并使其得命令串聯(lián)在一起,并使其得以執(zhí)行的用戶輸入變量。一種間接的攻擊會(huì)將惡意代碼注入要在表中存儲(chǔ)或作為以執(zhí)行的用戶輸入變量。一種間接的攻擊會(huì)將惡意代碼注入要在表中存儲(chǔ)或作為元數(shù)據(jù)存儲(chǔ)的字符串。在存儲(chǔ)的字符串隨后串連到一個(gè)動(dòng)態(tài)元數(shù)據(jù)存儲(chǔ)的

17、字符串。在存儲(chǔ)的字符串隨后串連到一個(gè)動(dòng)態(tài)SQL命令中時(shí),將執(zhí)命令中時(shí),將執(zhí)行該惡意代碼。行該惡意代碼。22.6.2 22.6.2 驗(yàn)證所有用戶輸入驗(yàn)證所有用戶輸入始終通過(guò)測(cè)試類型、長(zhǎng)度、格式和范圍來(lái)驗(yàn)證用戶輸入。實(shí)現(xiàn)對(duì)惡意輸入始終通過(guò)測(cè)試類型、長(zhǎng)度、格式和范圍來(lái)驗(yàn)證用戶輸入。實(shí)現(xiàn)對(duì)惡意輸入的預(yù)防時(shí),注意應(yīng)用程序的體系結(jié)構(gòu)和部署方案。注意,設(shè)計(jì)為在安全環(huán)境中運(yùn)的預(yù)防時(shí),注意應(yīng)用程序的體系結(jié)構(gòu)和部署方案。注意,設(shè)計(jì)為在安全環(huán)境中運(yùn)行的程序可能會(huì)被復(fù)制到不安全的環(huán)境中。行的程序可能會(huì)被復(fù)制到不安全的環(huán)境中。22.6.3 22.6.3 檢查代碼中的檢查代碼中的SQLSQL注入注入應(yīng)檢查所有調(diào)用應(yīng)檢查所

18、有調(diào)用EXECUTE、EXEC或或sp_executesql的代碼??梢允褂妙惖拇a??梢允褂妙愃迫缦碌牟樵儊?lái)幫助標(biāo)識(shí)包含這些語(yǔ)句的過(guò)程。似如下的查詢來(lái)幫助標(biāo)識(shí)包含這些語(yǔ)句的過(guò)程。1SELECT object_Name(id) FROM syscomments 2WHERE UPPER(text) LIKE %EXECUTE (% 3OR UPPER(text) LIKE %EXEC (% 4OR UPPER(text) LIKE %SP_EXECUTESQL% (1)使用)使用QUOTENAME()和和REPLACE()包裝參數(shù)包裝參數(shù) (2)由數(shù)據(jù)截?cái)鄦⒂玫淖⑷耄┯蓴?shù)據(jù)截?cái)鄦⒂玫淖⑷耄?)使用)使用QUOTENAME(variable,)和和REPLACE()時(shí)的截?cái)鄷r(shí)的截?cái)啵?)使用)使用QUOTENAME(variable,)時(shí)的截?cái)鄷r(shí)的截?cái)?2.7.1 22.7.1 描述登入、用戶、角色的區(qū)別描述登入、用戶、角色的區(qū)別這個(gè)題目很容易把考試者繞進(jìn)去。它們的區(qū)別和說(shuō)明如下。這個(gè)題目很容易把考試者繞進(jìn)去。它們的區(qū)別和說(shuō)明如下。登入是登入是SQL實(shí)例級(jí)

溫馨提示

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