安全性-安全保護及用戶.ppt_第1頁
安全性-安全保護及用戶.ppt_第2頁
安全性-安全保護及用戶.ppt_第3頁
安全性-安全保護及用戶.ppt_第4頁
安全性-安全保護及用戶.ppt_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第22章 安全性-安全保護及用戶權(quán)限,安全性是數(shù)據(jù)庫最重要的特性之一,可將保護SQL Server視為一系列步驟,其涉及到4方面:平臺、身份驗證、對象(包括數(shù)據(jù))及訪問系統(tǒng)的應(yīng)用程序;而SQL注入是一種最為常見的攻擊方式,嚴重威脅到SQL Server的安全性;合理的用戶權(quán)限也是系統(tǒng)安全的保障之一。,22.1 架構(gòu),架構(gòu)是包含表、視圖、過程等的容器,其位于數(shù)據(jù)庫內(nèi)部,而數(shù)據(jù)庫位于服務(wù)器內(nèi)部。這些實體像嵌套框一樣放置在一起。服務(wù)器是最外面的框,而架構(gòu)是最里面的框。,22.1.1 用戶與架構(gòu)的分離,在SQL Server 2008中,架構(gòu)不等效于數(shù)據(jù)庫用戶。現(xiàn)在,每個架構(gòu)都是獨立于其創(chuàng)建數(shù)據(jù)庫用戶

2、存在的不同命名空間。也就是說,架構(gòu)只是對象的容器。任何用戶都可以擁有架構(gòu),并且架構(gòu)所有權(quán)可以轉(zhuǎn)移。,22.1.2 新目錄視圖,在SQL Server 2008中架構(gòu)是反映的顯式實體。因此,架構(gòu)只能有一個所有者。但一個用戶可以擁有一個架構(gòu),也可以擁有多個架構(gòu),還可以不榮擁有架構(gòu)。這種復雜關(guān)系并未在以前數(shù)據(jù)庫版本的系統(tǒng)表中反映,因此SQL Server 2008使用了新的目錄視圖,以準確反映新的元數(shù)據(jù)。,22.1.3 什么是默認架構(gòu),每個用戶都擁有一個默認架構(gòu),可以使用CREATE USER或ALTER USER的DEFAULT_SCHEMA選項來設(shè)置和更改默認架構(gòu)。如果未定義DEFAULT_SC

3、HEMA,則數(shù)據(jù)庫用戶將使用dbo作為默認架構(gòu)。如存儲過程的名字一般為dbo.uspGetBillOfMaterials。,22.2 主體,主體是可以請求SQL Server資源的實體。與SQL Server授權(quán)模型的其他組件一樣,主體也可以按層次結(jié)構(gòu)排列。主體的影響范圍取決于主體定義的范圍(Windows、服務(wù)器或數(shù)據(jù)庫),以及主體是否不可分或是一個集合。,22.2.1 典型的主體,在SQL Server 2008中典型的主體有SQL Server sa登錄名、public數(shù)據(jù)庫角色,以及基于證書的SQL Server登錄名。 (1)SQL Server sa登錄名 (2)public數(shù)據(jù)庫

4、角色 (3)基于證書的SQL Server登錄名 (4)客戶端和數(shù)據(jù)庫服務(wù)器 (5)非主體,INFORMATION_SCHEMA和sys,22.2.2 選擇身份驗證模式,對于SQL Server 2008的登錄名主體,在安裝過程中,必須為數(shù)據(jù)庫引擎選擇身份驗證模式??晒┻x擇的模式有兩種:Windows身份驗證模式和混合模式。Windows身份驗證模式會啟用Windows身份驗證并禁用SQL Server身份驗證。混合模式會同時啟用Windows身份驗證和SQL Server身份驗證。Windows身份驗證始終可用,并且無法禁用。 (1)配置身份驗證模式 (2)通過Windows身份驗證進行連接

5、 (3)通過SQL Server身份驗證進行連接 (4)SQL Server身份驗證的缺點 (5)SQL Server身份驗證的優(yōu)點,22.3 SQL Server登錄用戶的管理,操作SQL Server的人員一般稱為SQL Server用戶,在打開SQL Server后,都會出現(xiàn)一個連接對話框,要求輸入服務(wù)器名稱和身份驗證等信息。身份驗證信息就是一個用戶的用戶名和密碼,通過SQL Server的“用戶”對象,可以設(shè)置數(shù)據(jù)庫的使用權(quán)限。同一個數(shù)據(jù)庫可以擁有多個用戶,同一個用戶也可以同時訪問多個數(shù)據(jù)庫。,22.3.1 添加用戶,使用SQL Server Management Studio可以可視

6、化的添加用戶,步驟如下所示。,22.3.2 使用用戶登錄,創(chuàng)建登錄名后,可以用該登錄名來登錄數(shù)據(jù)庫實例,下面就列用上面創(chuàng)建好的登錄名進行操作,步驟如下所示。,22.3.3 為用戶設(shè)置權(quán)限,本節(jié)介紹在SQL Server Management Studio里為用戶添加權(quán)限的方法。步驟如下。,22.4 角色,為便于管理服務(wù)器和數(shù)據(jù)庫上的權(quán)限,SQL Server提供了若干“角色”,這些角色是用于分組其他主體的安全主體?!敖巧鳖愃朴贛icrosoft Windows操作系統(tǒng)中的“組”。,22.4.1 服務(wù)器級別角色,服務(wù)器級角色也稱為“固定服務(wù)器角色”,因為用戶不能創(chuàng)建新的服務(wù)器級角色。服務(wù)器級角

7、色的權(quán)限作用域為服務(wù)器范圍。用戶可以向服務(wù)器級角色中添加SQL Server登錄名、Windows賬戶和Windows組。固定服務(wù)器角色的每個成員都可以向其所屬角色添加其他登錄名。,22.4.2 數(shù)據(jù)庫級別的角色,為便于管理數(shù)據(jù)庫中的權(quán)限,SQL Server同樣也提供了若干“角色”,這些角色是用于分組其他主體的安全主體。數(shù)據(jù)庫級角色的權(quán)限作用域為數(shù)據(jù)庫范圍。SQL Server中有兩種類型的數(shù)據(jù)庫級角色:數(shù)據(jù)庫中預定義的“固定數(shù)據(jù)庫角色”和可以自己創(chuàng)建的“靈活數(shù)據(jù)庫角色”。,22.5 權(quán)限,每個SQL Server安全對象都有可以授予主體的關(guān)聯(lián)權(quán)限。從大的范圍來講,SQL Server 20

8、08的權(quán)限也無非是服務(wù)器級安全性的權(quán)限,就是數(shù)據(jù)庫庫安全性的權(quán)限。,22.5.1 了解權(quán)限,本節(jié)需要先了解數(shù)據(jù)庫都提供了哪些權(quán)限。,22.5.2 權(quán)限層次結(jié)構(gòu),數(shù)據(jù)庫引擎管理著可以通過權(quán)限進行保護的實體的分層集合。這些實體稱為“安全對象”。在安全對象中,最突出的是服務(wù)器和數(shù)據(jù)庫,但可以在更細的級別上設(shè)置離散權(quán)限。SQL Server通過驗證主體是否已獲得適當?shù)臋?quán)限來控制主體對安全對象執(zhí)行的操作。,22.5.3 將用戶設(shè)為服務(wù)器角色成員,既然角色相當于用戶組,那么就可以將用戶設(shè)為角色成員,以繼承角色的權(quán)限,下面將WANG賬戶設(shè)為dbcreator角色成員為例,介紹如何將用戶設(shè)為角色成員。,22.

9、5.4 將用戶設(shè)為數(shù)據(jù)庫角色成員,將用戶設(shè)為數(shù)據(jù)庫角色成員與將用戶設(shè)為服務(wù)器角色成員的操作類似,只是權(quán)限不同,下面以將WANG賬戶設(shè)為db_datareader角色成員為例,介紹如何將用戶設(shè)為數(shù)據(jù)庫角色成員。,22.6 SQL注入的安全防范,現(xiàn)在SQL注入已經(jīng)成為所有數(shù)據(jù)庫應(yīng)用程序所必須注意的問題。SQL注入是一種攻擊方式,在這種攻擊方式中,惡意代碼被插入到字符串中,然后將該字符串傳遞到SQL Server的實例以進行分析和執(zhí)行。任何構(gòu)成SQL語句的過程都應(yīng)進行注入漏洞檢查,因為SQL Server將執(zhí)行其接收到的所有語法有效的查詢。一個有經(jīng)驗的、堅定的攻擊者甚至可以操作參數(shù)化數(shù)據(jù)。,22.6

10、.1 什么是SQL注入,SQL注入的形式包括直接將代碼插入到與SQL命令串聯(lián)在一起,并使其得以執(zhí)行的用戶輸入變量。一種間接的攻擊會將惡意代碼注入要在表中存儲或作為元數(shù)據(jù)存儲的字符串。在存儲的字符串隨后串連到一個動態(tài)SQL命令中時,將執(zhí)行該惡意代碼。,22.6.2 驗證所有用戶輸入,始終通過測試類型、長度、格式和范圍來驗證用戶輸入。實現(xiàn)對惡意輸入的預防時,注意應(yīng)用程序的體系結(jié)構(gòu)和部署方案。注意,設(shè)計為在安全環(huán)境中運行的程序可能會被復制到不安全的環(huán)境中。,22.6.3 檢查代碼中的SQL注入,應(yīng)檢查所有調(diào)用EXECUTE、EXEC或sp_executesql的代碼。可以使用類似如下的查詢來幫助標識

11、包含這些語句的過程。 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ù) (2)由數(shù)據(jù)截斷啟用的注入 (3)使用QUOTENAME(variable,)和REPLACE()時的截斷 (4)使用QUOTENAME(variable,)時的截斷,22.7.1 描述登入、用戶、角色的區(qū)別,這個題目很容易把考試者繞進去。它們的區(qū)別和說明如下。 登入是SQL實例級的。用戶是數(shù)據(jù)庫級的。角色有實例級和數(shù)據(jù)庫級兩種。 登入決定你是否能訪問SQL實例。 用戶與登錄對應(yīng), 確實某個登錄后, 它對那些數(shù)據(jù)庫有哪些權(quán)限。. 角色是為了方便管理一類登錄或者用戶所具有的權(quán)限, 當某一類登錄或者用戶具有相同的權(quán)限時, 可以簡單地給予它們對應(yīng)的角色即可。,22.7.2 在SQL Serve

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論