SQL 第07章 數(shù)據(jù)庫安全性_第1頁
SQL 第07章 數(shù)據(jù)庫安全性_第2頁
SQL 第07章 數(shù)據(jù)庫安全性_第3頁
SQL 第07章 數(shù)據(jù)庫安全性_第4頁
SQL 第07章 數(shù)據(jù)庫安全性_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7章章 SQL Server的安全性管理的安全性管理 7. 1 SQL Server 2000的驗證模式的驗證模式 7. 2 登錄管理登錄管理 7. 3 用戶管理用戶管理 7. 4 角色管理角色管理 7. 5 許可管理許可管理 綜合練習(xí)綜合練習(xí) 返回目錄返回目錄 2 7. 1 SQL Server 2000的驗證模式 7.1.1 NT 驗證模式 7.1.2 混合安全模式 7.1.3 設(shè)置驗證模式 7.1.4 SQL Server 系統(tǒng)登錄驗證過 程:P118 3 7.1.1 NT 驗證模式 NT驗證模式是指要登錄到SQL Server系統(tǒng)的用戶身份由NT 系統(tǒng)來進行驗證。在NT登錄驗證模式

2、下,SQL Server回叫 Windows NT以獲得相應(yīng)的登錄信息,并在sysxlogins表中 查找該帳戶,以確定該帳戶是否有權(quán)登錄。在這種方式下, 用戶不必提供登錄名或密碼讓SQL server驗證。 使用使用Windows NT驗證有如下特點:驗證有如下特點: NT驗證模式下由Windows NT管理用戶帳戶,數(shù)據(jù)庫管 理員的工作是管理數(shù)據(jù)庫; Windows NT有功能很強的工具去管理用戶帳戶,如安全 驗證和密碼加密、審核、密碼過期、最短密碼長度以及 在多次登錄請求失敗后鎖定帳戶; 可以在SQL Server增加用戶組; 本節(jié)首頁 4 7.1.2 混合模式 混合驗證模式是指用戶登錄

3、SQL Server系統(tǒng)時,其身份驗證 由Windows NT和 SQL Server共同進行。 在混合驗證模式下,使用Windows NT或 Windows 2000 Server用戶帳戶連接的用戶可以使用信任連接。當(dāng)用戶使用 指定的登錄名稱和密碼進行非信任連接時,SQL Server檢測 輸入的登錄名和密碼是否與系統(tǒng)sysxlogins表中記錄的登錄 名和密碼相匹配,自己進行身份驗證。如果不存在該用戶的 登錄帳戶,則身份驗證失敗,用戶將會收到錯誤信息。用戶 只有提供正確的登錄名和密碼,才能通過SQL server驗證。 混合驗證模式有如下特點: 混合模式允許非Windows客戶、Inter

4、net客戶和混合的客戶組連接到 SQL Server中 增加了安全性方面的選擇 本節(jié)首頁 5 7.1.3 設(shè)置驗證模式 設(shè)置驗證模式的工作只能由系統(tǒng)管理員來完成。 使用SQL Server企業(yè)管理器時,設(shè)置或改變驗證模式的步驟如下: 運行SQL Server 企業(yè)管理器。 單擊“SQL Server 服務(wù)器組”及要設(shè)置驗證模式服務(wù)器旁邊的+號,將 服務(wù)器展開。 在服務(wù)器的名字上單擊右鍵,然后選擇“屬性”,系統(tǒng)將彈出如下圖7- 1所示的“SQL Server 屬性(配置)”窗口。 單擊“安全性”選項卡,可以看到“安全性”選項卡中包括3個部分: P117 選擇一種登錄模式,如:“僅 Windows

5、 NT”。 選擇一種“審核級別”,如選擇審核登錄失敗的事件,將有助于查登錄 失敗的原因;選擇審核成功登錄的事件可以幫助你調(diào)試,但卻影響登錄的 速度。 設(shè)置完成后,單擊“確認”,關(guān)閉對話窗口。 重新啟動SQL Server以使修改的值生效。 本節(jié)首頁 6 7.2 登錄管理 7.2.1 系統(tǒng)管理員登錄賬戶 7.2.2 用T-SQL語句創(chuàng)建、查看、刪除SQL Server 登錄賬戶 7.2.3 用企業(yè)管理器創(chuàng)建、查看、刪除SQL Server 登錄賬戶 7 7.2.1 系統(tǒng)管理員登錄賬戶 SQL Server有兩個默認的系統(tǒng)管理員登錄帳戶:sa 和 BUILTINAdministrators。 這兩

6、個登錄帳戶具有SQL Server系統(tǒng)和所有數(shù)據(jù)庫的全部權(quán) 限。sa是一個特殊的登錄名,它代表混合驗證機制下SQL Server的系統(tǒng)管理員,sa始終關(guān)聯(lián)dbo用戶。 BUILTINAdministrators是NT系統(tǒng)的系統(tǒng)管理員組。 具體地說,系統(tǒng)管理員負責(zé)下面的工作: 創(chuàng)建登錄名 配置服務(wù)器 創(chuàng)建、刪除數(shù)據(jù)庫 無須考慮所有權(quán)和權(quán)限,可以操作各種數(shù)據(jù)庫對象 停止、啟動服務(wù)器 停止在服務(wù)器上運行的無效過程 某些權(quán)限只能被系統(tǒng)管理員擁有并且不能被授予其他用戶。 這些功能是管理存儲空間,管理用戶進程及改變數(shù)據(jù)庫選 項。 本節(jié)首頁 8 7.2.2用T-SQL語句創(chuàng)建、查看、刪除SQL Server

7、登錄帳戶 1. 將已經(jīng)存在的將已經(jīng)存在的NT登錄(登錄(NT組或用戶)增加到組或用戶)增加到 SQL Server系統(tǒng)登錄中系統(tǒng)登錄中 使用系統(tǒng)存儲過程sp_grantlogin、sp_denylogin、 sp_revokelogin可以分別允許、阻止、刪除 Windows NT組或用戶到SQL Server的連接。 sp_grantlogin的語法形式如下: sp_grantlogin login sp_denylogin的語法形式如下: sp_denylogin login sp_revokelogin的語法形式如下: sp_revokelogin login 9 注意:注意:在要增加的

8、帳戶login前面要加上域名及“”,而且這 三個存儲過程不能放在同一個批中執(zhí)行。 將Window NT帳戶增加到SQL Server系統(tǒng)的時候,應(yīng)該考 慮以下因素: 如果Windows NT 用戶不是SQL Server組的成員,可以 為其建立一個登錄帳戶 如果某個Windows NT組中的每個成員都要連接到SQL Server上,可以為該組建立一個登錄帳戶 刪除Windows NT 組或用戶,不會刪除SQL Server中對 應(yīng)的登錄帳戶 10 2. 使用使用T-SQL語言創(chuàng)建、查看、刪除語言創(chuàng)建、查看、刪除SQL Server登錄帳戶登錄帳戶 SQL Server登錄帳戶的創(chuàng)建登錄帳戶的創(chuàng)

9、建 使用系統(tǒng)存儲過程 sp_addlogin 可以創(chuàng)建一個登錄帳戶。 sp_addlogin存儲過程的語法形式如下: sp_addlogin login ,password ,default_database login:要被創(chuàng)建的登錄帳戶。它是唯一必須給定值的參數(shù), 而且必須是有效的SQL Server對象名。 password:新登錄帳戶的密碼。 default_database:新登錄帳戶訪問的默認數(shù)據(jù)庫。 SQL Server登錄帳戶的查看登錄帳戶的查看 sp_helplogins 【例7-1】創(chuàng)建一個登錄帳戶為ABC,密碼為123、使用的默認 數(shù)據(jù)庫為JWGL。 EXEC sp_ad

10、dlogin ABC , 123 , jwgl EXEC sp_addlogin a1 , 111 , jwgl EXEC sp_addlogin a2 , 222 , master 11 登錄帳戶的刪除登錄帳戶的刪除 刪除登錄帳戶和刪除用戶相似,但刪除登錄帳戶時需要在數(shù)據(jù)庫 中做較為復(fù)雜的檢查,以確保不會在數(shù)據(jù)庫中留下孤兒型的用戶。 一個孤兒型的用戶是指一個用戶沒有任何登錄名與其映射。 刪除一個登錄帳戶時,SQL Server 必須確認這個登錄帳戶沒有 關(guān)聯(lián)的用戶存在于數(shù)據(jù)庫系統(tǒng)中。如果存在用戶和被刪除的登錄 名關(guān)聯(lián),SQL Server將返回錯誤提示信息,指出數(shù)據(jù)庫中哪個用 戶與被刪除的登

11、錄帳戶相關(guān)聯(lián)。此時,必須先用 sp_revokedbaccess存儲過程將每個數(shù)據(jù)庫中與該登錄帳戶關(guān)聯(lián) 的用戶對象清除,然后才能刪除登錄帳戶。如果要刪除的登錄帳 戶是數(shù)據(jù)庫所有者,則需要使用系統(tǒng)存儲過程sp _ changedbowner將所有權(quán)轉(zhuǎn)授給其他的登錄帳戶。 刪除一個登錄帳戶使用系統(tǒng)存儲過程 sp_droplogin。 sp_droplogin存儲過程的語法形式如下: sp_droplogin login login:要被刪除的登錄帳戶。 【例7-2】從SQL Server中將登錄帳戶ABC刪除掉。 EXEC sp_droplogin ABC 本節(jié)首頁 12 7.2.3 用企業(yè)管理器

12、創(chuàng)建、查看、刪除 SQL Server登錄帳戶 1. 使用企業(yè)管理器將已經(jīng)存在的使用企業(yè)管理器將已經(jīng)存在的Windows NT組增加到組增加到SQL Server中中 使用企業(yè)管理器將已經(jīng)存在的NT組或用戶增加到SQL Server中的操作步驟操作步驟如下: 啟動SQL Server企業(yè)管理器。展開服務(wù)器后,展開“安全性”文 件夾。 點擊“登錄”圖標(biāo),右擊要右邊的窗格中授權(quán)的NT組或用戶,在 系統(tǒng)彈出的快捷菜單上點擊“屬性”。系統(tǒng)出現(xiàn)如圖7-3的“SQL Server 登錄屬性”窗口。 點擊“數(shù)據(jù)庫訪問”選項卡,選擇該NT用戶組或用戶可以訪問的 數(shù)據(jù)庫,并可選擇其在該數(shù)據(jù)庫中允許擔(dān)任的數(shù)據(jù)庫角

13、色。應(yīng)該注 意的是,在選擇該登錄可以訪問的數(shù)據(jù)庫的同時,企業(yè)管理器將創(chuàng) 建與登錄名完全相同的數(shù)據(jù)庫用戶。 點擊“確定”,一個NT組或用戶就增加到SQL Server中登錄帳戶 中去了。 13 2. 用企業(yè)管理器創(chuàng)建、刪除用企業(yè)管理器創(chuàng)建、刪除SQL服務(wù)器登錄帳戶服務(wù)器登錄帳戶 用企業(yè)管理器創(chuàng)建用企業(yè)管理器創(chuàng)建SQL服務(wù)器登錄帳戶服務(wù)器登錄帳戶 用企業(yè)管理器創(chuàng)建SQL服務(wù)器登錄帳戶的具體步驟如下: 啟動SQL服務(wù)器企業(yè)管理器。 單擊要連接的服務(wù)器左側(cè)的加號連接該服務(wù)器。 單擊“安全性”文件夾左側(cè)的加號,將“安全性”文 件夾展開。 右擊“登錄”,選擇“新建登錄”菜單項,進入如圖 7-4“SQL服務(wù)

14、器登錄屬性-新建登錄”窗口。 選擇一種身份驗證模式,如選擇窗口驗證模式,則需 要選擇域名,再點擊名稱欄右邊“”按鈕,在你選擇的 域中選擇一帳戶,然后指定該帳戶默認登錄的數(shù)據(jù)庫和 默認語言;如選擇SQL服務(wù)器驗證模式,則需要輸入登 錄帳戶名稱、密碼及確認密碼。點擊“服務(wù)器角色”選 項卡可授與該登錄用戶服務(wù)器范圍內(nèi)的權(quán)限,點擊“數(shù) 據(jù)庫訪問” 選項卡,可指定該登錄用戶可以訪問的數(shù)據(jù) 庫。 單擊“確定”按鈕即可增加一個登錄帳戶。 14 3. 查看及刪除登錄帳戶查看及刪除登錄帳戶 一個新的登錄帳戶增加后,可以在企業(yè)管理器中查看其詳細 信息。查看一個帳戶的步驟如下: 啟動SQL服務(wù)器企業(yè)管理器,并展開到

15、“安全性”。 點擊“登錄”,右邊窗格顯示的是當(dāng)前以“域名登錄 名”(領(lǐng)土login)格式顯示的登錄帳戶的列表。 右擊該窗口中的某一登錄帳戶,在系統(tǒng)彈出的菜單上 點擊“屬性”可進入“SQL當(dāng)仆人登錄屬性”窗口查看該 登錄帳戶的信息;點擊“刪除”可以刪除該登錄帳戶。 本節(jié)首頁 15 7.3 用戶管理 7.3.1 數(shù)據(jù)庫用戶名和登錄名的關(guān)系 7.3.2 用T-SQL語句創(chuàng)建、查看、刪除數(shù)據(jù)庫 用戶 7.3.3 使用企業(yè)管理器創(chuàng)建、查看、刪除數(shù)據(jù) 庫用戶 7.3.4 改變數(shù)據(jù)庫所有權(quán) 16 7.3.1 數(shù)據(jù)庫用戶名和登錄名的關(guān)系 登錄名、數(shù)據(jù)庫用戶名是SQL服務(wù)器中兩個容易混淆的概念。 登錄名是訪問S

16、QL服務(wù)器的通行證。每個登錄名的定義存放 在主人數(shù)據(jù)庫的表sysxlogins中。登錄名本身并不能讓用戶 訪問服務(wù)器中的數(shù)據(jù)庫資源。 要訪問特定的數(shù)據(jù)庫,還必須有數(shù)據(jù)庫用戶名。新的登錄創(chuàng) 建以后,才能創(chuàng)建用戶,用戶在特定的數(shù)據(jù)庫內(nèi)創(chuàng)建,必須 和一個登錄名相關(guān)聯(lián)。 用戶的定義信息存放在與其相關(guān)的數(shù)據(jù)庫的sysusers表中。 這個表包含了該數(shù)據(jù)庫的所有用戶對象以及和它們相對應(yīng)的 登錄名的標(biāo)識。用戶名沒有密碼和它相關(guān)聯(lián)。 大多數(shù)情況下,登錄名和用戶名使用相同的名稱。 17 在SQL服務(wù)器中,登錄帳戶和數(shù)據(jù)庫用戶是SQL服務(wù)器進 行權(quán)限管理的兩種不同的對象。 一個登錄帳戶可以與服務(wù)器上的所有數(shù)據(jù)庫進

17、行關(guān)聯(lián),而 數(shù)據(jù)庫用戶是一個登錄帳戶在某個數(shù)據(jù)庫中的映射,也就 是說一個登錄帳戶可以映射到不同的數(shù)據(jù)庫,產(chǎn)生多個數(shù) 據(jù)庫用戶,一個數(shù)據(jù)庫用戶只能映射到一個登錄帳戶。 允許數(shù)據(jù)庫為每個用戶對象分配不同的權(quán)限,這一特點為 在組內(nèi)分配權(quán)限提供了最大的自由度。 本節(jié)首頁 18 7.3.2 用T-SQL語句創(chuàng)建、查看、刪除數(shù) 據(jù)庫用戶 登錄帳戶成功創(chuàng)建后,怎樣才能將登錄帳戶映射到數(shù)據(jù)庫中 的用戶上呢? 如果使用企業(yè)管理器創(chuàng)建登錄帳戶,可以省略這步操作。 但要注意,實際上它完成了兩步不同的操作: 第一步是創(chuàng)建登錄帳戶, 第二步是將登錄帳戶映射為數(shù)據(jù)庫中同名的用戶。 為一個登錄帳戶授權(quán),最常使用的方法是創(chuàng)建

18、一個新的數(shù)據(jù) 庫用戶,然后將其與一個登錄帳戶對應(yīng)起來。 19 1. 用用T-SQL語句創(chuàng)建數(shù)據(jù)庫用戶語句創(chuàng)建數(shù)據(jù)庫用戶 使用系統(tǒng)存儲過程sp_grantdbaccess可以創(chuàng)建數(shù)據(jù)庫用戶。其具體 的語法形式如下: sp_grantdbaccess 登錄 ,name_in_db 這個存儲過程有兩個參數(shù),但只有第一個參數(shù)是必須的。 ? 登錄:數(shù)據(jù)庫用戶所對應(yīng)的登錄名。 ? name_in_db:為登錄帳戶登錄在當(dāng)前數(shù)據(jù)庫中創(chuàng)建的用戶名。 注意: 只有 sysadmin固定服務(wù)器角色、db_accessadmin 和 db_owner 固定數(shù)據(jù)庫角色的成員才能執(zhí)行sp_grantdbaccess;

19、如果第二參數(shù)被省略,一個和登錄名相同的用戶名將被添加到數(shù) 據(jù)庫中,通常省略這個參數(shù); 這個存儲過程只對當(dāng)前的數(shù)據(jù)庫進行操作,所以在執(zhí)行存儲過程 前應(yīng)該首先確認當(dāng)前使用的數(shù)據(jù)庫是要增加用戶的數(shù)據(jù)庫; 要創(chuàng)建用戶名的登錄帳戶必須在執(zhí)行存儲過程前已經(jīng)存在。 20 【例7-3】在混合驗證模式下,為數(shù)據(jù)庫JWGL登錄帳戶”ABC” 和“a1”和a2創(chuàng)建一個同名的數(shù)據(jù)庫用戶。 use jwgl go exec sp_grantbaccess ABC exec sp_grantdbaccess a1 exec sp_grantdbaccess a2 2. 用用T-SQL語句查看數(shù)據(jù)庫用戶語句查看數(shù)據(jù)庫用戶

20、在查詢分析器中輸入sp_helpuser,單擊“執(zhí)行”,可顯示 某個數(shù)據(jù)庫中的有效用戶。 21 3. 用用T-SQL語句刪除數(shù)據(jù)庫用戶語句刪除數(shù)據(jù)庫用戶 當(dāng)一個登錄帳戶不再需要訪問一個數(shù)據(jù)庫或?qū)?yīng)的的登錄 帳戶被刪除時,需要將數(shù)據(jù)庫內(nèi)的用戶名刪除。 用辦理-SQL的sp_revokedbaccess存儲過程可以刪除數(shù)據(jù) 庫用戶。這個存儲過程從數(shù)據(jù)庫中將用戶刪除,即從 sysusers表中刪除用戶名。但在用戶定義事務(wù)內(nèi)部不能執(zhí) 行存儲過程sp_revokedbaccess。sp_revokedbaccess存 儲過程具體語法如下: sp_revokedbaccess name_in_db = 名

21、字 22 在以上語法形式中: ? 名字:要刪除的用戶名。名字可以是SQL服務(wù)器的用戶 名或存在于當(dāng)前數(shù)據(jù)庫中的窗口NT的用戶名或組名。 注意,sp_revokedbaccess 存儲過程不能刪除: 公眾角色、dbo、數(shù)據(jù)庫中的固定角色 主人和 tempdb 數(shù)據(jù)庫中的 客人用戶帳戶 窗口NT組中的 窗口NT用戶 【例7-4】使用命令sp_revokedbaccess將數(shù)據(jù)庫中的“ABC” 刪除掉。 sp_revokedbaccess ABC 本節(jié)首頁 23 7.3.3 使用企業(yè)管理器創(chuàng)建、查看、刪除 數(shù)據(jù)庫用戶 1. 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶與查看使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶與查看 在SQ

22、L服務(wù)器的企業(yè)管理器中用以下步驟完成同樣 的任務(wù): 啟動企業(yè)管理器。 展開要操作的服務(wù)器及要創(chuàng)建用戶的數(shù)據(jù)庫。 點擊“用戶”,右邊窗格可以查看到該數(shù)據(jù)庫的用戶。 右擊“用戶”文件夾,選擇“新建數(shù)據(jù)庫用戶”,彈 出“新建用戶”的窗口。 輸入要創(chuàng)建的數(shù)據(jù)庫用戶的名字,然后在下拉的列表 中選擇對應(yīng)的登錄名。 單擊“確定”按鈕,將用戶添加到數(shù)據(jù)庫中。 24 2. 使用企業(yè)管理器刪除數(shù)據(jù)庫用戶使用企業(yè)管理器刪除數(shù)據(jù)庫用戶 在企業(yè)管理器中用以下的步驟刪除用戶名: 啟動企業(yè)管理器。 展開要操作的服務(wù)器及要刪除用戶所在的數(shù)據(jù)庫。 單擊“用戶”,右邊顯示該數(shù)據(jù)庫所有的庫用戶。 右擊要刪除的用戶,在系統(tǒng)彈出的快捷

23、菜單上選擇 “刪除”來刪除這個用戶。 本節(jié)首頁 25 7.3.4 改變數(shù)據(jù)庫所有權(quán) 在數(shù)據(jù)庫中有一個用戶是數(shù)據(jù)庫所有者,該用戶擁有數(shù)據(jù)庫 中所有的對象。 一個數(shù)據(jù)庫只能有一個數(shù)據(jù)庫所有者。數(shù)據(jù)庫所有者不能被 刪除。 通常,登錄名sa映射到庫中的用戶是dbo。要改變數(shù)據(jù)庫所 有權(quán)只能使用系統(tǒng)存儲過程sp_changedbowner,這個存儲 過程是唯一改變數(shù)據(jù)庫所有權(quán)的方法。 存儲過程sp_changedbowner只有一個參數(shù),即新的所有者 的登錄標(biāo)識。在企業(yè)管理器中沒有類似功能。 本節(jié)首頁 26 7.4 角色管理 管理用戶的任務(wù)是要確保用戶能夠訪問到他們需要的數(shù)據(jù)但 又不能獲得超出他們權(quán)限范

24、圍的數(shù)據(jù)。SQL服務(wù)器2000中, 用戶一般是放在組中工作的。也就是說,可以將在相同數(shù)據(jù) 上具有相同權(quán)限的用戶放入一個組中進行管理。SQL服務(wù)器 具有將用戶分配到組中的能力,分配給組的權(quán)限適用于組中 的每一個成員。使用角色對用戶進行分組管理有利于簡化對 用戶的授權(quán)工作。 在SQL服務(wù)器2000中,組是通過角色來實現(xiàn)的,可以將角色 理解為組。角色有兩種:服務(wù)器角色和數(shù)據(jù)庫角色。服務(wù)器 角色是服務(wù)器級的一個對象,只能包含登錄名。數(shù)據(jù)庫角色 是數(shù)據(jù)庫級的一個對象,數(shù)據(jù)庫角色只能包含數(shù)據(jù)庫用戶名 而不能是登錄名。 7.4.1 固定服務(wù)器角色固定服務(wù)器角色 7.4.2 數(shù)據(jù)庫角色數(shù)據(jù)庫角色 27 7.4

25、.1 固定服務(wù)器角色 1. 固定服務(wù)器角色及功能固定服務(wù)器角色及功能 安裝完SQL服務(wù)器2000后,系統(tǒng)自動創(chuàng)建了以下8個固定的服 務(wù)器角色,具體名稱及功能描述如下表7-1。它在服務(wù)器級別 上被定義,存在于數(shù)據(jù)庫外面,它是不能被創(chuàng)建的。 表表7-1 固定服務(wù)器角色及功能固定服務(wù)器角色及功能 角色 功能 sysadmin 能夠執(zhí)行任何任務(wù) securityadmin 負責(zé)系統(tǒng)的安全管理,能夠管理和審核服務(wù)器登錄名 serveradmin 能夠配置服務(wù)器的設(shè)置 setupadmin 能夠安裝、復(fù)制 processadmin 能夠管理SQL服務(wù)器系統(tǒng)的進程 diskadmin 能夠管理磁盤文件 db

26、creator 能夠創(chuàng)建和修改數(shù)據(jù)庫 bulkadmin 能夠執(zhí)行大容量數(shù)據(jù)的插入數(shù)據(jù)操作 28 固定服務(wù)器角色存放在主人數(shù)據(jù)庫的sysxlogins表中。執(zhí)行 存儲過程sp_helpsrvrole,可查看服務(wù)器上的固定服務(wù)器角 色,要查看某個固定服務(wù)器角色的權(quán)限可執(zhí)行存儲過程 sp_srvrolepermission。如在查詢分析器中執(zhí)行語句:實行 sp_srvrolepermission sysadmin,可查看固定服務(wù)器角色 sysadmin的權(quán)限。 2. 為登錄帳戶指定及收回服務(wù)器角色為登錄帳戶指定及收回服務(wù)器角色 使用sp_addsrvrolemember存儲過程或企業(yè)管理器可為一個

27、 登錄帳戶指定服務(wù)器角色。 使用系統(tǒng)存儲過程為登錄帳戶指定及收回服務(wù)器角色、 指定服務(wù)器角色的系統(tǒng)存儲過程是sp_addsrvrolemember, 具體語法如下: sp_addsrvrolemember 登錄登錄,角色角色 ? 登錄:是指登錄名。 ? 角色:是指服務(wù)器角色名。 收回服務(wù)器角色的系統(tǒng)存儲過程sp_dropsrvrolemember,參 數(shù)含義同上。具體語法如下: sp_dropsrvrolemember 登錄,角色 29 【例7-5】 將登錄名ABC加到sysadmin角色中。 sp_addsrvrolemember ABC ,sysadmin 使用企業(yè)管理器為登錄帳戶指定及收

28、回服務(wù)器角 色 使用企業(yè)管理器為服務(wù)器角色增加成員的步驟如下: 啟動企業(yè)管理器。 展開要操作的服務(wù)器、展開“安全性”文件夾。 點擊“安全性”節(jié)點下的“服務(wù)器角色”,右邊窗格 將顯示系統(tǒng)的8個服務(wù)器角色。 右擊要添加登錄到的服務(wù)器角色(如sysadmin),選擇 “屬性”,系統(tǒng)將彈出如圖7-5的 30 如要收回某登錄帳戶的服務(wù)器角色,只需從圖7-5中 選擇該登錄帳戶,然后點擊“刪除”即可。 如要為登錄帳戶指定服務(wù)器角色,單擊“添加”按 鈕,出現(xiàn)“添加成員”窗口。 在“添加成員”窗口中選擇相應(yīng)的用戶并單擊“確 定”按鈕將它們加入到組中。 再次單擊“確定”按鈕,退出“服務(wù)器角色屬性” 窗口。 本節(jié)首

29、頁 31 7.4.2 數(shù)據(jù)庫角色 7.4.2 數(shù)據(jù)庫角色數(shù)據(jù)庫角色 數(shù)據(jù)庫角色分為固定數(shù)據(jù)庫角色和自定義數(shù)據(jù)庫角色。 1. 固定數(shù)據(jù)庫角色及功能固定數(shù)據(jù)庫角色及功能 在安裝完在安裝完SQL服務(wù)器后,系統(tǒng)將自動創(chuàng)建如表服務(wù)器后,系統(tǒng)將自動創(chuàng)建如表7-2所示的所示的10個固定的數(shù)個固定的數(shù) 據(jù)庫角色。據(jù)庫角色。 表表7-2 固定數(shù)據(jù)庫角色及功能固定數(shù)據(jù)庫角色及功能 角色角色 功能功能 公眾公眾維護默認的許可維護默認的許可 db_owner 數(shù)據(jù)庫屬主,在特定數(shù)據(jù)庫內(nèi)具有全部權(quán)限數(shù)據(jù)庫屬主,在特定數(shù)據(jù)庫內(nèi)具有全部權(quán)限 db_accessadmin 能夠添加、刪除數(shù)據(jù)庫用戶和角色能夠添加、刪除數(shù)據(jù)庫用

30、戶和角色 db_securityadmin 可以管理全部權(quán)限、對象所有權(quán)、角色和角色成可以管理全部權(quán)限、對象所有權(quán)、角色和角色成 員資格員資格 db_ddladmin 能夠添加、刪除和修改數(shù)據(jù)庫對象。能夠添加、刪除和修改數(shù)據(jù)庫對象。 db_backupoperator能夠備份和恢復(fù)數(shù)據(jù)庫。能夠備份和恢復(fù)數(shù)據(jù)庫。 db_datareader 能夠從任意表中讀出數(shù)據(jù)。能夠從任意表中讀出數(shù)據(jù)。 db_datawriter 能夠?qū)θ我獗聿迦?、修改和刪除數(shù)據(jù)。能夠?qū)θ我獗聿迦?、修改和刪除數(shù)據(jù)。 db_denydatareader 不允許從表中讀數(shù)據(jù)。不允許從表中讀數(shù)據(jù)。 db_denydatawrite

31、r 不允許改變表中的數(shù)據(jù)。不允許改變表中的數(shù)據(jù)。 32 公眾角色公眾角色是一個特殊的數(shù)據(jù)庫角色,數(shù)據(jù)庫中的每位用戶都 是公眾角色的成員,它負責(zé)維護數(shù)據(jù)庫中用戶的全部默認許 可,不能將用戶和組或角色指定公眾角色。 在使用NT驗證模式時,推薦使用企業(yè)管理器將窗口NT的組 加入到指定的數(shù)據(jù)庫中并為NT組成員提供登錄名和數(shù)據(jù)庫 用戶名,在這里,用戶被定義成某種數(shù)據(jù)庫角色。利用這種 方法,數(shù)據(jù)庫管理員可以減輕創(chuàng)建組時的工作量。 要瀏覽數(shù)據(jù)庫固定數(shù)據(jù)庫角色,可執(zhí)行系統(tǒng)存儲過程:實行 sp_helpfixesrole 有如下幾點需要注意:有如下幾點需要注意: 數(shù)據(jù)庫角色在數(shù)據(jù)庫級別上被定義,存在于數(shù)據(jù)庫之內(nèi)

32、。數(shù)據(jù)庫角 色存放在每個數(shù)據(jù)庫sysusers表中 固定數(shù)據(jù)庫角色不能被刪除、修改、創(chuàng)建 固定數(shù)據(jù)庫角色可以指定給其它登錄帳戶 33 2. 自定義數(shù)據(jù)庫角色自定義數(shù)據(jù)庫角色 創(chuàng)建自定義數(shù)據(jù)庫角色創(chuàng)建自定義數(shù)據(jù)庫角色 自定義數(shù)據(jù)庫角色有兩種:標(biāo)準角色和應(yīng)用程序角色。其中 應(yīng)用程序角色需要設(shè)置密碼。標(biāo)準角色型的自定義數(shù)據(jù)庫角 色將已經(jīng)存在的數(shù)據(jù)庫用戶作為它的成員。創(chuàng)建自定義數(shù)據(jù) 庫角色和許多其他任務(wù)一樣,在SQL服務(wù)器中有兩種方法完 成增加角色的工作。可以使用辦理-SQL語句或企業(yè)管理器。 使用系統(tǒng)存儲過程創(chuàng)建自定義數(shù)據(jù)庫角色使用系統(tǒng)存儲過程創(chuàng)建自定義數(shù)據(jù)庫角色 創(chuàng)建自定義數(shù)據(jù)庫角色使用的是系統(tǒng)存

33、儲過程sp_addrole, 它只有一個參數(shù),即要增加的角色名。這個角色名必須遵照 SQL服務(wù)器的命名規(guī)則,而且不能和任何用戶名相同。具體 語法如下: sp_addrole 角色角色 ,所有者所有者 ? 角色:是指新增的數(shù)據(jù)庫角色。 ? 所有者:是新增數(shù)據(jù)庫角色的屬主。 【例7-6】增加一個叫AAA的自定義數(shù)據(jù)庫角色。 sp_addrole AAA ,dbo 34 使用企業(yè)管理器創(chuàng)建自定義數(shù)據(jù)庫角色使用企業(yè)管理器創(chuàng)建自定義數(shù)據(jù)庫角色 使用企業(yè)管理器可以創(chuàng)建自定義數(shù)據(jù)庫角色,具體創(chuàng)建 的步驟如下: 啟動企業(yè)管理器。 展開要操作的服務(wù)器、展開想添加角色的數(shù)據(jù)庫。 右擊“角色”文件夾并選擇“新建數(shù)據(jù)

34、庫角色”,系統(tǒng)將 彈出如圖7-6(P128)的“數(shù)據(jù)庫角色-新建角色”的對話窗口。 輸入角色名。 選擇作為角色成員的用戶。單擊“添加”按鈕。用戶被顯 示在“用戶”列表框內(nèi)。選中相應(yīng)的用戶并單擊“確定”按 鈕將它們加入到角色中。 再次單擊“確定”按鈕,退出“數(shù)據(jù)庫角色-新建角色”窗 口。 35 刪除自定義數(shù)據(jù)庫角色刪除自定義數(shù)據(jù)庫角色 用戶自定義數(shù)據(jù)庫角色可以刪除,從數(shù)據(jù)庫中刪除“角色” 和從數(shù)據(jù)庫中刪除用戶非常相似。但是,和固定服務(wù)器角色 一樣,固定數(shù)據(jù)庫角色不能被刪除。 使用系統(tǒng)存儲過程刪除自定義數(shù)據(jù)庫角色使用系統(tǒng)存儲過程刪除自定義數(shù)據(jù)庫角色 刪除自定義數(shù)據(jù)庫角色的系統(tǒng)存儲過程是sp_dro

35、prole,其語 法形式如下: sp_droprole 角色角色 ? 角色:要刪除的自定義數(shù)據(jù)庫角色。 在執(zhí)行sp_droprole時要注意的一點是:要刪除的角色必須沒 有成員。被刪除角色中的所有成員必須刪除或被事先改變到 其他的角色中。如果使用sp_droprole去刪除一個非空的角色 時,系統(tǒng)將會給出如下的錯誤信息: 服務(wù)器: 消息 15144,級別 16,狀態(tài) 1,過程 sp_droprole, 行 53 該角色有成員。角色必須為空白后才能除去。 36 使用企業(yè)管理器刪除自定義數(shù)據(jù)庫角色使用企業(yè)管理器刪除自定義數(shù)據(jù)庫角色 啟動企業(yè)管理器。 展開需要操作的服務(wù)器并展開要操作的數(shù)據(jù)庫。 展開

36、“角色”,右擊要刪除的自定義數(shù)據(jù)庫角色, 在系統(tǒng)彈出的快捷菜單中選擇“刪除”。 確認“刪除”操作,如該角色無成員,該角色將被刪 除,如該角色有成員,系統(tǒng)將給出提示。 3. 為數(shù)據(jù)庫角色添加及刪除成員為數(shù)據(jù)庫角色添加及刪除成員 使用系統(tǒng)存儲過程或企業(yè)管理器為一個數(shù)據(jù)庫角色添加及 刪除成員。 使用系統(tǒng)存儲過程為數(shù)據(jù)庫角色增加及刪除成員使用系統(tǒng)存儲過程為數(shù)據(jù)庫角色增加及刪除成員 系統(tǒng)存儲過程sp_addrolemembe可為數(shù)據(jù)庫角色增加成員, sp_addrolemember存儲過程的具體語法如下: 37 sp_addrolemember 角色,security_account ? 角色:數(shù)據(jù)庫角

37、色名。 ? security_account:數(shù)據(jù)庫用戶名。 系統(tǒng)存儲過程sp_droprolemembe可為數(shù)據(jù)庫角色刪除成員, sp_droprolemember存儲過程的具體語法如下: sp_addrolemember 角色,security_account 角色及security_account參數(shù)的含義同上。 【例7-7】使用系統(tǒng)存儲過程sp_addrolemember將數(shù)據(jù)庫用戶 ABC,a1,a2作為成員添加到數(shù)據(jù)庫角色AAA中,再將ABC從數(shù)據(jù) 庫角色AAA中刪除。 use jwgl exec sp_addrolemember AAA,a1 exec sp_addrolemem

38、ber AAA,a2 exec sp_addrolemember AAA,ABC go sp_droprolemember AAA,ABC 38 使用企業(yè)管理器為數(shù)據(jù)庫角色增加及刪除成員使用企業(yè)管理器為數(shù)據(jù)庫角色增加及刪除成員 使用企業(yè)管理器為數(shù)據(jù)庫角色增加及刪除成員的具體步驟如 下: 啟動企業(yè)管理器。 展開要操作的服務(wù)器并展開要添加用戶的數(shù)據(jù)庫。 單擊“角色”文件夾,右邊窗格出現(xiàn)該數(shù)據(jù)庫的所有 角色列表,右擊某個角色并選擇“屬性”。系統(tǒng)將彈出類 似圖7-6(P128)那樣的“數(shù)據(jù)庫角色屬性”對話窗口。 如要刪除該數(shù)據(jù)庫角色的某個成員,可點擊該成員, 再點擊“刪除”即可。 如要為該數(shù)據(jù)庫角色添

39、加成員,單擊“添加”按鈕, 出現(xiàn)“添加角色成員”窗口。 在“添加角色成員”窗口中,選擇某一用戶并單擊 “確定”按鈕將它們加入到組中。 在用戶增加完后,單擊“確定”按鈕,一個數(shù)據(jù)庫角 色的成員就添加進去了。 本節(jié)首頁 39 7. 5 權(quán)限(許可)管理 7.5.1 許可類型 7.5.2 許可的驗證 7.5.3 管理許可 40 7.5.1 許可類型 SQL服務(wù)器2000中,許可有三種類型:默認許可、對象許可 和語句許可。 1. 默認許可默認許可 SQL服務(wù)器中包含很多對象,每個對象都有一個屬主。一般 來說,對象的屬主是創(chuàng)建該對象的用戶。 如果系統(tǒng)管理員創(chuàng)建了一個數(shù)據(jù)庫,系統(tǒng)管理員就是這個數(shù) 據(jù)庫的屬

40、主。 如果一個用戶創(chuàng)建了一個表,這個用戶就是這個表的屬主。 很顯然,系統(tǒng)管理員具有這個數(shù)據(jù)庫的全部操作權(quán)限,創(chuàng)建 表的用戶具有這個表全部操作權(quán)限。這就是數(shù)據(jù)庫對象的默 認許可。 默認許可也稱為暗指許可。 41 數(shù)據(jù)庫中的用戶根據(jù)它們在數(shù)據(jù)庫中的角色被設(shè)定 了某些缺省權(quán)限,也就意味著這些用戶獲得某些默 認許可。這樣的用戶有四類: 第一類,系統(tǒng)管理員系統(tǒng)管理員,可以創(chuàng)建和刪除數(shù)據(jù)庫,配置服 務(wù)器。系統(tǒng)管理員永遠擁有主人數(shù)據(jù)庫; 第二類,數(shù)據(jù)庫屬主數(shù)據(jù)庫屬主,可以創(chuàng)建和管理數(shù)據(jù)庫中的對象 以及管理整個數(shù)據(jù)庫; 第三類,對象屬主對象屬主,是特定對象的屬主。對數(shù)據(jù)庫來說, dbo就是對象屬主。一個對象屬

41、主可以在對象上進行授予 或回收權(quán)限的操作而且可以刪除對象; 第四類,數(shù)據(jù)庫用戶數(shù)據(jù)庫用戶,其默認許可取決于創(chuàng)建數(shù)據(jù)庫用 戶時的設(shè)置。 42 2. 對象許可對象許可 對象許可是指用戶基于數(shù)據(jù)庫層次上的訪問和操作權(quán)限,如 果沒有對象的許可,用戶將不能訪問該對象。對象許可有五 種:查詢、插入、修改、刪除和執(zhí)行。前四個許可是用于表 和視圖的,執(zhí)行許可只用于存儲過程。 選擇:該許可授予數(shù)據(jù)庫中某個特定表的用戶,具備這種許 可的用戶才能訪問、操作該表的數(shù)據(jù)。 插入:該許可授予數(shù)據(jù)庫中某個特定表的用戶可以向表中插 入數(shù)據(jù)。 更新:該許可授予數(shù)據(jù)庫中某個特定表的用戶可以對表中的 數(shù)據(jù)進行更新。 刪除:該許可授

42、予數(shù)據(jù)庫中某個特定表的用戶可以刪除表中 的數(shù)據(jù)。 執(zhí)行:該許可授予數(shù)據(jù)庫中某個特定的用戶,具有這種許可 的用戶可以執(zhí)行存儲過程。 43 3.語句許可語句許可 語句許可通常授予需要在數(shù)據(jù)庫中創(chuàng)建對象或修改對象、執(zhí)行數(shù) 據(jù)庫和事務(wù)日志備份的用戶。如果一個用戶獲得某個語句的許可, 該用戶就具有了執(zhí)行該語句的權(quán)力。 以下是需要進行許可設(shè)置的語句: BACKUP DTADBASE:允許用戶執(zhí)行備份數(shù)據(jù)庫的操作。 BACK LOG:允許用戶執(zhí)行備份事務(wù)日志庫的操作。 CREATE DATABASE:允許用戶創(chuàng)建新的數(shù)據(jù)庫。 CREATE DEFAULT:允許用戶創(chuàng)建缺省。 CREATE PROCEDURE

43、:允許用戶執(zhí)行創(chuàng)建存儲過程的操作。 CTEATE FUNCTION:允許用戶創(chuàng)建用戶定義函數(shù)。 CREATE RULE:允許用戶創(chuàng)建規(guī)則。 CREATE TABLE:允許用戶創(chuàng)建表。 CREATE VIEW:允許用戶創(chuàng)建視圖。 語句許可授予用戶執(zhí)行相應(yīng)命令的能力,語句許可適用于創(chuàng)建和 刪除對象、備份和恢復(fù)數(shù)據(jù)庫。 本節(jié)首頁 44 7.5.2 許可的驗證 針對每一個數(shù)據(jù)庫及數(shù)據(jù)庫對象,管理員為用戶指定了 執(zhí)行某些操作的許可。當(dāng)用戶執(zhí)行某個操作時,系統(tǒng)首 先進行許可檢查,用戶獲得許可,可以執(zhí)行該操作,否 則,不允許執(zhí)行該操作,系統(tǒng)返回錯誤信息。 SQL服務(wù)器服務(wù)器2000進行許可驗證的步驟如下進行

44、許可驗證的步驟如下: 用戶執(zhí)行某項操作,相應(yīng)的SQL語句通過網(wǎng)絡(luò)發(fā)送到SQL 服務(wù)器服務(wù)器。 SQL服務(wù)器服務(wù)器收到SQL語句后,檢查該用戶是否具有 對操作對象的許可權(quán)限及執(zhí)行這些語句的權(quán)限。 如果SQL服務(wù)器服務(wù)器許可驗證通過,SQL服務(wù)器系統(tǒng)執(zhí) 行相應(yīng)的操作,否則,系統(tǒng)給出錯誤信息。 本節(jié)首頁 45 7.5.3 管理許可 1. 管理許可的用戶管理許可的用戶 以下的四種用戶可以對部分或全部語句授權(quán): 系統(tǒng)管理員系統(tǒng)管理員(系統(tǒng)管理員系統(tǒng)管理員):有sa帳戶或具有相同權(quán)限 的用戶 數(shù)據(jù)庫的屬主數(shù)據(jù)庫的屬主(數(shù)據(jù)庫所有者數(shù)據(jù)庫所有者):當(dāng)前數(shù)據(jù)庫的擁有者 對象的屬主對象的屬主(物體所有者物體所有者):當(dāng)前對象的擁有者 數(shù)據(jù)庫用戶數(shù)據(jù)庫用戶(使用者使用者):不屬于以上用戶的其他用戶 46 2. 許可的狀態(tài)許可的狀

溫馨提示

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

評論

0/150

提交評論