版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第10章SQLServer安全管理安全管理概述10.1登錄10.2數(shù)據(jù)庫用戶10.3角色10.4權(quán)限管理10.51第10章SQLServer安全管理安全管理概述10.對于網(wǎng)絡(luò)環(huán)境下的多用戶數(shù)據(jù)庫而言,安全問題是至關(guān)重要的。必須對不同的用戶賦予不同的訪問權(quán)限,才能保證數(shù)據(jù)庫中的數(shù)據(jù)不被泄露或破壞。本章將介紹SQLServer2000實現(xiàn)安全管理的方法。2對于網(wǎng)絡(luò)環(huán)境下的多用戶數(shù)據(jù)庫而言,安全問題是至關(guān)重要本章要點安全管理概述登錄數(shù)據(jù)庫用戶角色權(quán)限管理3本章要點安全管理概述310.1安全管理概述SQLServer2000的安全管理模型中包括SQLServer登錄、數(shù)據(jù)庫用戶、權(quán)限和角色4個主要方面,具體如下。SQLServer登錄:要想連接到SQLServer服務(wù)器實例,必須擁有相應(yīng)的登錄賬戶和密碼。SQLServer的身份認(rèn)證系統(tǒng)驗證用戶是否擁有有效的登錄賬戶和密碼,從而決定是否允許該用戶連接到指定的SQLServer服務(wù)器實例。410.1安全管理概述SQLServer20010.1安全管理概述數(shù)據(jù)庫用戶:通過身份認(rèn)證后,用戶可以連接到SQLServer服務(wù)器實例。但是,這并不意味著該用戶可以訪問到指定服務(wù)器上的所有數(shù)據(jù)庫。在每個SQLServer數(shù)據(jù)庫中,都存在一組SQLServer用戶賬戶。登錄賬戶要訪問指定數(shù)據(jù)庫,就要將自身映射到數(shù)據(jù)庫的一個用戶賬戶上,從而獲得訪問數(shù)據(jù)庫的權(quán)限。一個登錄賬戶可以對應(yīng)多個用戶賬戶。510.1安全管理概述數(shù)據(jù)庫用戶:通過身份認(rèn)證后,用戶可以10.1安全管理概述權(quán)限:權(quán)限規(guī)定了用戶在指定數(shù)據(jù)庫中所能進(jìn)行的操作。角色:類似于Windows的用戶組,角色可以對用戶進(jìn)行分組管理。可以對角色賦予數(shù)據(jù)庫訪問權(quán)限,此權(quán)限將應(yīng)用于角色中的每一個用戶。610.1安全管理概述權(quán)限:權(quán)限規(guī)定了用戶在指定數(shù)據(jù)庫中所10.2登錄登錄指用戶連接到指定SQLServer數(shù)據(jù)庫實例的過程。在此期間,系統(tǒng)要對該用戶進(jìn)行身份驗證。只有擁有正確的登錄賬戶和密碼,才能連接到指定的數(shù)據(jù)庫實例。710.2登錄登錄指用戶連接到指定SQLServer數(shù)據(jù)10.2.1身份驗證模式登錄到SQLServer實例必須經(jīng)過兩個過程。首先要從系統(tǒng)中獲得此權(quán)限,即得到授權(quán);然后就是要通過系統(tǒng)的身份驗證。SQLServer提供以下兩種身份驗證模式。Windows身份驗證模式混合模式(Windows身份驗證和SQLServer身份驗證)810.2.1身份驗證模式登錄到SQLServ1.Windows身份驗證模式SQLServer數(shù)據(jù)庫系統(tǒng)通常運行在WindowsNT服務(wù)器平臺上,而NT作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄、驗證用戶合法性的能力,Windows身份驗證模式正是利用了這一用戶安全性和賬戶管理的機制,允許SQLServer也可以使用Windows的用戶名和密碼。在這種模式下,用戶只需要通過Windows的身份驗證,就可以連接到SQLServer,而SQLServer本身也就不需要管理一套登錄數(shù)據(jù)。當(dāng)用戶通過WindowsNT4.0、Windows2000或Windows2003用戶賬戶進(jìn)行連接時,SQLServer通過回叫Windows系統(tǒng)以獲得信息,重新驗證賬戶名和密碼。91.Windows身份驗證模式SQLServer數(shù)據(jù)庫系2.混合模式SQLServer可以設(shè)置其自己的SQLServer登錄賬戶。用戶登錄時,SQLServer將對用戶的賬戶進(jìn)行驗證。如果SQLServer未設(shè)置該登錄賬戶,或該賬戶的用戶名、密碼不正確,則身份驗證將失敗,而且用戶將收到錯誤信息。混合模式允許用戶使用WindowsNT安全性或SQLServer安全性連接到SQLServer,這就意味著用戶可以使用他的Windows賬戶,或使用他的SQLServer賬戶登錄到SQLServer系統(tǒng)。102.混合模式SQLServer可以設(shè)置其自己的SQLSe身份驗證模式的選擇對于WindowsNT的用戶,既可以使用Windows身份驗證模式,也可以使用SQLServer的身份驗證模式。而對于Windows9.x的用戶只能使用SQLServer的身份驗證模式。應(yīng)用程序開發(fā)人員和數(shù)據(jù)庫用戶也許更喜歡“SQLServer身份驗證”模式,因為他們可以通過對登錄賬戶和密碼的管理實現(xiàn)權(quán)限控制。11身份驗證模式的選擇對于WindowsNT的用戶,既可以使用SQLServer2000的身份驗證過程Windows身份驗證模式
混合模式
用戶連接請求
身份驗證模式?
使用SQLServer賬戶連接嗎?
是有效賬戶嗎?
SQLServer拒絕連接
有效的NT帳戶嗎
SQLServer接受用戶連接
是
是
是
否
否
否
12SQLServer2000的身份驗證過程Windows身設(shè)置SQLServer的身份認(rèn)證模式13設(shè)置SQLServer的身份認(rèn)證模式1310.2.2新建登錄賬戶SQLServer有以下兩個默認(rèn)的登錄賬戶:sa:即系統(tǒng)管理員(systemadministrator)賬戶,該賬戶在SQLServer系統(tǒng)和所有數(shù)據(jù)庫中擁有所有的權(quán)限。BUILTIN\Administrators:該賬戶為WindowsNT系統(tǒng)管理員賬戶,具有與sa有相同的權(quán)限。可以使用以下兩種方式新建登錄帳戶:在企業(yè)管理器中創(chuàng)建登錄賬戶使用命令創(chuàng)建登錄賬戶1410.2.2新建登錄賬戶SQLServer有以下兩個默1.在企業(yè)管理器中創(chuàng)建登錄賬戶展開指定服務(wù)器實例下的“安全性”文件夾,用鼠標(biāo)右擊“登錄”項,在彈出菜單中選擇“新建登錄”命令,打開餅設(shè)置“新建登錄”對話框:151.在企業(yè)管理器中創(chuàng)建登錄賬戶展開指定服務(wù)器實例下的“安全性2.使用命令創(chuàng)建登錄賬戶使用系統(tǒng)存儲過程創(chuàng)建Windows身份驗證模式登錄賬戶;使用系統(tǒng)存儲過程創(chuàng)建SQLServer身份驗證模式的登錄賬戶162.使用命令創(chuàng)建登錄賬戶使用系統(tǒng)存儲過程創(chuàng)建Windows身使用系統(tǒng)存儲過程創(chuàng)建Windows身份驗證模式登錄賬戶使用sp_grantlogin存儲過程可以創(chuàng)建新的Windows身份驗證模式登錄賬戶,語法如下:
sp_grantlogin'登錄名稱'登錄名稱指要添加的Windows用戶或組的名稱。Windows組和用戶必須用Windows域名限定,格式為“域名\用戶名”,例如“London\Joeb”。只有sysadmin或securityadmin固定服務(wù)器角色的成員可以執(zhí)行sp_grantlogin。17使用系統(tǒng)存儲過程創(chuàng)建Windows身份驗證模式登錄賬戶使用s例10-1使用sp_grantlogin存儲過程將用戶LEE\public映射到SQLServer登錄賬戶。
sp_grantlogin'LEE\public'執(zhí)行結(jié)果為:
已向'LEE\public'授予登錄訪問權(quán)。18例10-1使用sp_grantlogin存儲過程將用戶LEE使用sp_addlogin存儲過程可以創(chuàng)建新的登錄賬戶,語法如下:
sp_addlogin'登錄名稱'[,'登錄密碼'][,'默認(rèn)數(shù)據(jù)庫'][,'默認(rèn)語言']SQLServer登錄名稱和密碼不能含有反斜線(\);不能是保留的登錄名稱,例如sa或public,或者已經(jīng)存在的登錄名稱;不能為NULL;不能為空字符串('')。使用系統(tǒng)存儲過程創(chuàng)建SQLServer身份驗證模式的登錄賬戶19使用sp_addlogin存儲過程可以創(chuàng)建新的登錄賬戶,語法使用sp_addlogin存儲過程創(chuàng)建SQLServer登錄賬戶lee,密碼為111111,默認(rèn)數(shù)據(jù)庫為“學(xué)生管理”。
sp_addlogin'lee','111111','學(xué)生管理'執(zhí)行結(jié)果為:
已創(chuàng)建新登錄。例10-220使用sp_addlogin存儲過程創(chuàng)建SQLServer登使用企業(yè)管理器修改賬戶使用企業(yè)管理器刪除賬戶使用存儲過程修改和刪除賬戶10.2.3修改和刪除登錄賬戶21使用企業(yè)管理器修改賬戶10.2.3修改和刪除登錄賬戶2展開指定服務(wù)器實例下的“安全性”文件夾,用鼠標(biāo)單擊“登錄”項,可以在右側(cè)窗格中查看到已經(jīng)存在的SQLServer登錄賬戶。用鼠標(biāo)右鍵單擊登錄賬戶名,在彈出的快捷菜單中選擇“屬性”命令,打開“登錄屬性”對話框,在該對話框中可以對賬戶信息進(jìn)行修改。1.使用企業(yè)管理器修改賬戶22展開指定服務(wù)器實例下的“安全性”文件夾,用鼠標(biāo)單擊“登錄”項修改Windows身份驗證模式賬戶1.使用企業(yè)管理器修改賬戶23修改Windows身份驗證模式賬戶1.使用企業(yè)管理器修改賬戶修改SQLServer身份驗證模式賬戶1.使用企業(yè)管理器修改賬戶24修改SQLServer身份驗證模式賬戶1.使用企業(yè)管理器修在企業(yè)管理器中,用鼠標(biāo)右鍵單擊SQLServer賬戶,在彈出的快捷菜單中選擇“刪除”命令,在彈出的確認(rèn)對話框中單擊“是”按鈕,可以刪除該賬戶。2.使用企業(yè)管理器刪除賬戶25在企業(yè)管理器中,用鼠標(biāo)右鍵單擊SQLServer賬戶,在彈sp_denylogin存儲過程sp_revokelogin存儲過程sp_password存儲過程sp_droplogin存儲過程3.使用系統(tǒng)存儲過程修改和刪除賬戶26sp_denylogin存儲過程3.使用系統(tǒng)存儲過程修改和用于阻止Windows用戶或用戶組連接到SQLServer實例,基本語法:
sp_denylogin'用戶或用戶組名'sp_denylogin只能和Windows賬戶一起使用,“用戶或用戶組名”格式為“域名\用戶名”。sp_denylogin無法用于通過sp_addlogin添加的SQLServer登錄。sp_denylogin和sp_grantlogin是對應(yīng)的兩個存儲過程,它們可以互相反轉(zhuǎn)對方的效果,允許和拒絕用戶訪問SQLServer。sp_denylogin存儲過程27用于阻止Windows用戶或用戶組連接到SQLServer使用sp_denylogin存儲過程拒絕用戶LEE\public訪問SQLServer實例。
sp_denylogin'LEE\public'執(zhí)行結(jié)果為:
已拒絕對'LEE\public'的登錄訪問權(quán)。例10-328使用sp_denylogin存儲過程拒絕用戶LEE\publ用于刪除SQLServer中使用sp_denylogin或sp_grantlogin創(chuàng)建的Windows身份認(rèn)證模式登錄賬戶,基本語法如下:
sp_revokelogin'用戶或用戶組名'【例10-4】使用sp_revokelogin存儲過程刪除用戶LEE\public對應(yīng)的SQLServer登錄賬戶。
sp_revokelogin'LEE\public'執(zhí)行結(jié)果為:已廢除'LEE\public'的登錄訪問權(quán)。從登錄列表中可以看到,LEE\public已經(jīng)被刪除。sp_revokelogin存儲過程29用于刪除SQLServer中使用sp_denylogin或用于修改SQLServer登錄的密碼,基本語法如下:
sp_password'舊密碼','新密碼','登錄賬戶名'【例10-5】使用sp_password存儲過程將登錄賬戶lee的密碼修改為222222。
sp_password'111111','222222','lee'執(zhí)行結(jié)果為:
密碼已更改。sp_password存儲過程30用于修改SQLServer登錄的密碼,基本語法如下:sp_用于刪除SQLServer登錄賬戶,以阻止使用該登錄賬戶訪問SQLServer,基本語法如下:
sp_droplogin'登錄名稱'【例10-6】使用sp_droplogin存儲過程刪除登錄賬戶lee。
sp_droplogin'lee'執(zhí)行結(jié)果為:
登錄已除去。sp_droplogin存儲過程31用于刪除SQLServer登錄賬戶,以阻止使用該登錄賬戶訪本節(jié)介紹:數(shù)據(jù)庫用戶概述新建數(shù)據(jù)庫用戶修改和刪除數(shù)據(jù)庫用戶10.3數(shù)據(jù)庫用戶擁有登錄賬戶的用戶才能通過SQLServer身份驗證,從而獲得對SQLServer實例的訪問權(quán)限。但通過SQLServer的身份驗證并不代表用戶就能夠訪問SQLServer中的數(shù)據(jù),要訪問某個具體的數(shù)據(jù)庫,還必須使登錄賬戶成為某數(shù)據(jù)庫的用戶。32本節(jié)介紹:10.3數(shù)據(jù)庫用戶擁有登錄賬戶的用戶才能通過兩個特殊的數(shù)據(jù)庫用戶:Dbo:數(shù)據(jù)庫所有者,是具有在數(shù)據(jù)庫中執(zhí)行所有活動的權(quán)限的用戶,它與登錄賬戶sa相對應(yīng)。Guest:允許沒有用戶賬戶的登錄訪問數(shù)據(jù)庫。當(dāng)滿足下列所有條件時,登錄采用guest用戶的標(biāo)識。登錄有訪問SQLServer實例的權(quán)限,但沒有通過自己的用戶賬戶訪問數(shù)據(jù)庫的權(quán)限。數(shù)據(jù)庫中含有g(shù)uest用戶賬戶。10.3.1數(shù)據(jù)庫用戶概述33兩個特殊的數(shù)據(jù)庫用戶:10.3.1數(shù)據(jù)庫用戶概述33可以將權(quán)限應(yīng)用到guest用戶,就如同它是任何其他用戶賬戶一樣。可以在除master和tempdb外(在這兩個數(shù)據(jù)庫中g(shù)uest用戶必須始終存在)的所有數(shù)據(jù)庫中添加或刪除guest用戶。默認(rèn)情況下,新建的數(shù)據(jù)庫中沒有g(shù)uest用戶賬戶。創(chuàng)建數(shù)據(jù)庫對象的用戶稱為數(shù)據(jù)庫對象所有者。創(chuàng)建數(shù)據(jù)庫對象的權(quán)限必須由數(shù)據(jù)庫所有者或系統(tǒng)管理員授予。但是,在授予數(shù)據(jù)庫對象這些權(quán)限后,數(shù)據(jù)庫對象所有者就可以創(chuàng)建對象并授予其他用戶使用該對象的權(quán)限。數(shù)據(jù)庫對象所有者沒有特殊的登錄ID或密碼。對象創(chuàng)建者被隱性授予數(shù)據(jù)庫的所有權(quán)限,但其他用戶必須被顯式授予權(quán)限后才能訪問該對象。用戶授權(quán)34可以將權(quán)限應(yīng)用到guest用戶,就如同它是任何其他用戶賬戶使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶sp_grantdbaccess存儲過程創(chuàng)建數(shù)據(jù)庫用戶10.3.2新建數(shù)據(jù)庫用戶35使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶10.3.2新建數(shù)據(jù)庫用戶展開指定的數(shù)據(jù)庫,選擇“用戶”項,可以查看該數(shù)據(jù)庫中用戶的信息,如下圖。默認(rèn)情況下,用戶創(chuàng)建的數(shù)據(jù)庫中只有一個用戶,即dbo。(1)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶36展開指定的數(shù)據(jù)庫,選擇“用戶”項,可以查看該數(shù)據(jù)庫中用戶的信用鼠標(biāo)右擊“用戶”項,從快捷菜單中選擇“新建數(shù)據(jù)庫用戶”命令,打開“新建用戶”對話框,如下圖。(1)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶37用鼠標(biāo)右擊“用戶”項,從快捷菜單中選擇“新建數(shù)據(jù)庫用戶”命令使用sp_grantdbaccess存儲過程可以將SQLServer登錄和Windows用戶(用戶組)指定為當(dāng)前數(shù)據(jù)庫用戶,并使其能夠被授予在數(shù)據(jù)庫中執(zhí)行活動的權(quán)限。基本語法如下:
sp_grantdbaccess'登錄名'[,'數(shù)據(jù)庫用戶名']數(shù)據(jù)庫用戶名:可以包含1~128個字符,包括字母、符號和數(shù)字,但不能包含反斜線符號(\)、不能為NULL或空字符串。如果沒有指定數(shù)據(jù)庫用戶名,則默認(rèn)為與“登錄名”相同(2)使用sp_grantdbaccess存儲過程創(chuàng)建數(shù)據(jù)庫用戶38使用sp_grantdbaccess存儲過程可以將SQLS使用sp_grantdbaccess存儲過程為登錄賬戶lee創(chuàng)建數(shù)據(jù)庫用戶。
sp_grantdbaccess'lee'執(zhí)行結(jié)果為:
已向'lee'授予數(shù)據(jù)庫訪問權(quán)。例10-739使用sp_grantdbaccess存儲過程為登錄賬戶lee使用企業(yè)管理器修改數(shù)據(jù)庫用戶:右擊數(shù)據(jù)庫用戶名,從彈出菜單中選擇“屬性”命令,打開“用戶屬性”對話框。(與“新建用戶”對話框類似,但其“權(quán)限”按鈕變?yōu)橛行В┛梢栽诖藢υ捒蛑行薷挠脩粜畔?。使用企業(yè)管理器刪除數(shù)據(jù)庫用戶:右擊數(shù)據(jù)庫用戶名,從彈出菜單中選擇“刪除”命令。使用sp_revokedbaccess存儲過程刪除數(shù)據(jù)庫用戶,基本語法如下:
sp_revokedbaccess'數(shù)據(jù)庫用戶名'10.3.3修改和刪除數(shù)據(jù)庫用戶40使用企業(yè)管理器修改數(shù)據(jù)庫用戶:右擊數(shù)據(jù)庫用戶名,從彈出菜單中使用sp_revokedbaccess存儲過程刪除數(shù)據(jù)庫用戶lee。
sp_revokedbaccess'lee'執(zhí)行結(jié)果為:
用戶已從當(dāng)前數(shù)據(jù)庫中除去。例10-841使用sp_revokedbaccess存儲過程刪除數(shù)據(jù)庫用戶角色是一個強大的工具。利用角色,SQLServer管理者可以將某些用戶設(shè)置為某一角色,對一個角色授予、拒絕或廢除的權(quán)限也適用于該角色的任何成員,這樣只需對角色進(jìn)行權(quán)限設(shè)置便可以實現(xiàn)對所有用戶權(quán)限的設(shè)置,大大減少了管理員的工作量。10.4角色42角色是一個強大的工具。利用角色,SQLServer10.4.1角色管理角色固定服務(wù)器角色數(shù)據(jù)庫角色固定的數(shù)據(jù)庫角色用戶自定義的數(shù)據(jù)庫角色4310.4.1角色管理角色固定服務(wù)器角色數(shù)據(jù)庫角色固定的數(shù)1.固定服務(wù)器角色根據(jù)SQLServer的管理任務(wù),以及這些任務(wù)的相對重要性等級,把具有SQLServer管理職能的用戶劃分為不同的用戶組,每一組定義為一種固定服務(wù)器角色。每一組所具有的管理SQLServer的權(quán)限都是SQLServer內(nèi)置的,即不能對其權(quán)限進(jìn)行添加、修改和刪除,可以在這些角色中添加用戶以獲得相關(guān)的管理權(quán)限。441.固定服務(wù)器角色根據(jù)SQLServer的管理任務(wù)SQLServer中的固定服務(wù)器角色Sysadmin:可以在SQLServer中執(zhí)行任何活動Serveradmin:可以設(shè)置服務(wù)器范圍的配置選項,關(guān)閉服務(wù)器Setupadmin:可以管理鏈接服務(wù)器和啟動過程Securityadmin:可以管理登錄和CREATEDATABASE權(quán)限,還可以讀取錯誤日志和更改密碼Processadmin:可以管理在SQLServer中運行的進(jìn)程Dbcreator:可以創(chuàng)建、更改和除去數(shù)據(jù)庫Diskadmin:可以管理磁盤文件Bulkadmin:可以執(zhí)行BULKINSERT(大容量數(shù)據(jù)插入)語句45SQLServer中的固定服務(wù)器角色Sysadmin:可以2.固定數(shù)據(jù)庫角色每個數(shù)據(jù)庫還有一系列的固定數(shù)據(jù)庫角色。在添加用戶時,可以指定該用戶屬于哪一個數(shù)據(jù)庫角色。雖然不同的數(shù)據(jù)庫中可以存在名稱相同的角色,但各個角色的作用域只是在特定的數(shù)據(jù)庫內(nèi)。例如,如果Database1和Database2中都有叫UserX的用戶,將Database1中的UserX添加到Database1的db_owner固定數(shù)據(jù)庫角色中,對Database2中的UserX是否是Database2的db_owner角色成員沒有任何影響462.固定數(shù)據(jù)庫角色每個數(shù)據(jù)庫還有一系列的固定數(shù)據(jù)庫SQLServer中的固定數(shù)據(jù)庫角色Public:每個數(shù)據(jù)庫用戶都屬于public角色db_owner:在數(shù)據(jù)庫中有全部權(quán)限db_accessadmin:可以增加或者刪除數(shù)據(jù)庫用戶、用戶組和角色db_securityadmin:管理數(shù)據(jù)庫角色的角色和成員,并管理數(shù)據(jù)庫中的語句和對象權(quán)限db_ddladmin:可以添加、修改或除去數(shù)據(jù)庫中的對象(運行所有DDL)db_backupoperator:可以備份和恢復(fù)數(shù)據(jù)庫db_datareader:可以選擇數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)47SQLServer中的固定數(shù)據(jù)庫角色Public:每個數(shù)據(jù)SQLServer中的固定數(shù)據(jù)庫角色db_datawriter:可以更改數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)db_denydatareader:不能選擇數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)db_denydatawriter:不能更改數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)48SQLServer中的固定數(shù)據(jù)庫角色db_datawrit3.用戶自定義的數(shù)據(jù)庫角色用戶還可以自定義數(shù)據(jù)庫角色。可以:使用企業(yè)管理器管理自定義數(shù)據(jù)庫角色使用存儲過程管理自定義數(shù)據(jù)庫角色。493.用戶自定義的數(shù)據(jù)庫角色用戶還可以自定義數(shù)據(jù)庫角色??梢裕海?)在企業(yè)管理器中新建角色展開指定的數(shù)據(jù)庫,選擇數(shù)據(jù)庫中的“角色”項,可以查看到指定數(shù)據(jù)庫的所有角色。右擊“角色”項,在彈出菜單中選擇“新建數(shù)據(jù)庫角色”,打開新建數(shù)據(jù)庫角色對話框50(1)在企業(yè)管理器中新建角色展開指定的數(shù)據(jù)庫,選擇數(shù)據(jù)庫中的(2)在企業(yè)管理器中修改角色在角色列表中,用鼠標(biāo)右擊角色名,在彈出菜單中選擇“屬性”命令,打開數(shù)據(jù)庫角色屬性對話框。用戶可以在角色屬性對話框中修改角色的屬性。如修改角色權(quán)限,添加用戶或刪除角色中的用戶等。51(2)在企業(yè)管理器中修改角色在角色列表中,用鼠標(biāo)右擊角色名,(3)在企業(yè)管理器中刪除角色用鼠標(biāo)右擊角色名稱,在彈出的快捷菜單中選擇“刪除”命令,可以刪除數(shù)據(jù)庫角色。但是無法刪除固定的數(shù)據(jù)庫角色。52(3)在企業(yè)管理器中刪除角色用鼠標(biāo)右擊角色名稱,在彈出的快捷(4)使用sp_addrole存儲過程創(chuàng)建自定義角色sp_addrole存儲過程的功能是創(chuàng)建SQLServer角色,基本語法如下:sp_addrole'數(shù)據(jù)庫角色名'【例10-9】使用sp_addrole存儲過程創(chuàng)建數(shù)據(jù)庫角色newrole。
sp_addrole'newrole'執(zhí)行結(jié)果為:
新角色已添加。53(4)使用sp_addrole存儲過程創(chuàng)建自定義角色sp_a(5)使用sp_droprole存儲過程刪除自定義角色sp_droprole存儲過程的功能是刪除SQLServer角色,基本語法如下:
sp_droprole'數(shù)據(jù)庫角色名'【例10-10】使用sp_droprole存儲過程刪除數(shù)據(jù)庫角色newrole。
sp_droprole'newrole'執(zhí)行結(jié)果為:
角色已除去。54(5)使用sp_droprole存儲過程刪除自定義角色sp_10.4.2管理角色中的用戶角色只有包含了用戶后才有存在的意義。向角色中添加用戶后,用戶就擁有了角色的所有權(quán)限;將用戶從角色中刪除后,用戶從角色得到的權(quán)限將被取消。在企業(yè)管理器中添加和刪除角色成員使用sp_addrolemember存儲過程添加角色成員使用sp_droprolemember存儲過程刪除角色成員本小節(jié)介紹:5510.4.2管理角色中的用戶角色只有包含了用戶后1.在企業(yè)管理器中添加和刪除角色成員右擊角色名,在彈出菜單中選擇“屬性”命令,打開“數(shù)據(jù)庫角色屬性”對話框(如左圖),單擊“添加”按鈕,打開“添加角色成員”對話框(如右圖)。列表框中顯示了當(dāng)前數(shù)據(jù)庫中所有用戶名,不包括dbo。選擇一個用戶,單擊“確定”按鈕,可以將用戶添加到角色中。561.在企業(yè)管理器中添加和刪除角色成員右擊角色名,在彈2.使用sp_addrolemember存儲過程添加角色成員sp_addrolemember存儲過程的功能是向角色中添加用戶,基本語法如下:
sp_addrolemember'數(shù)據(jù)庫角色名','數(shù)據(jù)庫用戶名'【例10-11】使用sp_addrolemember存儲過程向數(shù)據(jù)庫角色newrole中添加用戶lee。
sp_addrolemember'newrole','lee'執(zhí)行結(jié)果為:
'lee'已添加到角色'newrole'中。572.使用sp_addrolemember存儲過程添加角色成10.5權(quán)限管理權(quán)限決定了用戶在數(shù)據(jù)庫中可以進(jìn)行的操作??梢詫?shù)據(jù)庫用戶或角色設(shè)置權(quán)限。本節(jié)介紹:權(quán)限的種類設(shè)置權(quán)限5810.5權(quán)限管理權(quán)限決定了用戶在數(shù)據(jù)庫中可以進(jìn)10.5.1權(quán)限的種類3種類型:對象權(quán)限語句權(quán)限暗示性權(quán)限。5910.5.1權(quán)限的種類3種類型:591.對象權(quán)限對象權(quán)限表示一個用戶對特定的數(shù)據(jù)庫對象,如表、視圖、字段等的操作權(quán)限,如用戶能否進(jìn)行查詢、刪除、插入和修改一個表中的行,或能否執(zhí)行一個存儲過程。601.對象權(quán)限對象權(quán)限表示一個用戶對特定的數(shù)據(jù)庫對象,1.對象權(quán)限SELECT、INSERT、UPDATE和DELETE語句權(quán)限,它們可以應(yīng)用到整個表或視圖中。SELECT和UPDATE語句權(quán)限,它們可以有選擇性地應(yīng)用到表或視圖中的單個列上。SELECT權(quán)限,它們可以應(yīng)用到用戶定義函數(shù)。INSERT和DELETE語句權(quán)限,它們會影響整行,因此只可以應(yīng)用到表或視圖中,不能應(yīng)用到列上。EXECUTE語句權(quán)限,它們可以影響存儲過程和函數(shù)。對象權(quán)限如下:611.對象權(quán)限SELECT、INSERT、UPDATE和DEL2.語句權(quán)限BACKUPDATABASE。BACKUPLOG。CREATEDATABASE。CREATEDEFAULT。CREATEFUNCTION。CREATEPROCEDURE。CREATERULE。CREATETABLE。CREATEVIEW。語句權(quán)限表示一個用戶對數(shù)據(jù)庫的操作權(quán)限,如能否執(zhí)行創(chuàng)建和刪除對象的語句,能否執(zhí)行備份和恢復(fù)數(shù)據(jù)庫的語句等。語句權(quán)限如下:622.語句權(quán)限BACKUPDATABASE。語句權(quán)限3.暗示性權(quán)限暗示性權(quán)限指系統(tǒng)安裝以后有些用戶和角色不必授權(quán)就有的權(quán)限。例如,sysadmin固定服務(wù)器角色成員自動繼承在SQLServer安裝中進(jìn)行操作或查看的全部權(quán)限。數(shù)據(jù)庫對象所有者擁有暗示性權(quán)限,可以對所擁有的對象執(zhí)行一切活動。例如,擁有表的用戶可以查看、添加或刪除數(shù)據(jù),更改表定義,或控制允許其他用戶對表進(jìn)行操作的權(quán)限。633.暗示性權(quán)限暗示性權(quán)限指系統(tǒng)安裝以后有些用戶和角色不必授10.5.2設(shè)置權(quán)限設(shè)置權(quán)限包括:授予權(quán)限:授予用戶、組或角色的語句權(quán)限和對象權(quán)限,使數(shù)據(jù)庫用戶在當(dāng)前數(shù)據(jù)庫中具有執(zhí)行活動或處理數(shù)據(jù)的權(quán)限。拒絕權(quán)限:包括刪除以前授予用戶、組或角色的權(quán)限,停用從其他角色繼承的權(quán)限,確保用戶、組或角色將來不繼承更高級別的組或角色的權(quán)限。廢除權(quán)限:廢除以前授予或拒絕的權(quán)限。廢除類似于拒絕,因為二者都是在同一級別上刪除已授予的權(quán)限。但是,廢除權(quán)限是刪除已授予的權(quán)限,并不妨礙用戶、組或角色從更高級別繼承已授予的權(quán)限。6410.5.2設(shè)置權(quán)限設(shè)置權(quán)限包括:641.使用企業(yè)管理器管理對象權(quán)限用鼠標(biāo)右擊一個表、視圖或存儲過程,在彈出菜單中選擇“所有任務(wù)→管理權(quán)限”,如圖:651.使用企業(yè)管理器管理對象權(quán)限用鼠標(biāo)右擊一個表、視圖1.使用企業(yè)管理器管理對象權(quán)限打開“對象屬性”對話框:661.使用企業(yè)管理器管理對象權(quán)限打開“對象屬性”對話框2.使用企業(yè)管理器管理語句權(quán)限用鼠標(biāo)右擊數(shù)據(jù)庫,在彈出菜單中選擇“屬性”,打開數(shù)據(jù)庫屬性對話框。單擊“權(quán)限”選項卡,可以設(shè)置用戶的語句權(quán)限。如下圖:672.使用企業(yè)管理器管理語句權(quán)限用鼠標(biāo)右擊數(shù)據(jù)庫,在彈3.使用企業(yè)管理器管理用戶的權(quán)限用鼠標(biāo)右擊用戶名,在彈出菜單中選擇“所有任務(wù)→管理權(quán)限”,打開“數(shù)據(jù)庫用戶屬性”對話框,可以設(shè)置用戶的權(quán)限。如下圖:683.使用企業(yè)管理器管理用戶的權(quán)限用鼠標(biāo)右擊用戶名,在4.使用企業(yè)管理器管理角色的權(quán)限用鼠標(biāo)右擊角色名,在彈出的快捷菜單中選擇“屬性”,打開“數(shù)據(jù)庫角色屬性”對話框,單擊“權(quán)限”按鈕,打開“數(shù)據(jù)庫角色屬性”對話框,在“權(quán)限”選項卡中可以設(shè)置角色對各種數(shù)據(jù)庫對象的權(quán)限。如下圖:694.使用企業(yè)管理器管理角色的權(quán)限用鼠標(biāo)右擊角色名,5.使用GRANT語句授予語句權(quán)限授予對象權(quán)限705.使用GRANT語句授予語句權(quán)限70(1)授予語句權(quán)限基本語法如下:GRANT{ALL|語句[,...n]}TO安全賬戶[,...n]安全賬戶:當(dāng)前數(shù)據(jù)庫中的用戶、角色或組,包括:SQLServer角色;SQLServer用戶;WindowsNT組;WindowsNT用戶。若權(quán)限被授予SQLServer角色或WindowsNT組,權(quán)限可影響到當(dāng)前數(shù)據(jù)庫中該組或該角色成員的所有用戶?!纠?0-13】使用GRANT語句對用戶lee授予創(chuàng)建表和創(chuàng)建視圖的權(quán)限。GRANTCREATETABLE,CREATEVIEWTOlee71(1)授予語句權(quán)限基本語法如下:71(2)授予對象權(quán)限基本語法如下:GRANT{ALL|權(quán)限[,...n]}{[(列名[,...n])]ON{表|視圖}|ON{表|視圖}[(列名[,...n])]|ON存儲過程|ON用戶自定義函數(shù)}TO安全賬戶[,...n][WITHGRANTOPTION][AS{組|角色}]72(2)授予對象權(quán)限基本語法如下:72(2)授予對象權(quán)限參數(shù)說明:ALL:表示授予所有可用的權(quán)限。權(quán)限:當(dāng)前授予的對象權(quán)限。如在表、視圖上可授予SELECT、INSERT、DELETE或UPDATE權(quán)限。在列上可授予SELECT和UPDATE權(quán)限。安全賬戶:權(quán)限將應(yīng)用的安全賬戶??梢允牵篠QLServer用戶;SQLServer角色;WindowsNT用戶;WindowsNT組。WITHGRANTOPTION:使被授予權(quán)限的用戶或角色擁有再將該權(quán)限授予其他用戶的權(quán)限。AS{組|角色}:作為角色或組的成員使用角色或組的權(quán)限。73(2)授予對象權(quán)限參數(shù)說明:73(2)授予對象權(quán)限【例10-14】使用GRANT語句對角色newrole授予對表“學(xué)生”的INSERT、UPDATE和DELETE的權(quán)限。
GRANTINSERT,UPDATE,DELETEON學(xué)生TOnewrole【例10-15】使用GRANT語句授予用戶Mary、John和Tom對pubs數(shù)據(jù)庫的authors表的插入、修改、刪除權(quán)限。
USEpubsGRANTINSERT,UPDATE,DELETEONauthorsTOMary,John,Tom74(2)授予對象權(quán)限【例10-14】使用GRANT語句對角色n(2)授予對象權(quán)限【例10-16】使用GRANT語句授予用戶Log1對pubs數(shù)據(jù)庫的Titles表的Title_id和Title列具有修改權(quán)限。
USEPubsGRANTUPDATE(Title_id,Title)ONTitlesTOLog1也可以寫成:
USEPubsGRANTUPDATEONTitles(Title_id,Title)TOLog175(2)授予對象權(quán)限【例10-16】使用GRANT語句授予用戶(2)授予對象權(quán)限【例10-17】使用GRANT語句將對Market數(shù)據(jù)庫的Custumers表的SELECT、INSERT權(quán)限授予用戶Zhang,并允許用戶Zhang再將該權(quán)限授予其他用戶或角色。
USEMarketGRANTSELECT,INSERTONCustumersTOZhangWITHGRANTOPTION76(2)授予對象權(quán)限【例10-17】使用GRANT語句將對Ma(2)授予對象權(quán)限【例10-18】用戶Tom將對表Table1的SELECT權(quán)限授予Role1角色,指定WITHGRANTOPTION子句。
GRANTSELECTONTable1TORole1WITHGRANTOPTION設(shè)用戶Jerry是Role1的成員,他要將表Table1上的SELECT權(quán)限授予用戶Jack(設(shè)Jack不是Role1的成員)。相應(yīng)的GRANT語句如下:
GRANTSELECTONTable1TOJackASrole1因為對表Table1的WITHGRANTOPTION權(quán)限是授予Role1角色,而不是顯式地授予Jerry,因此,Jerry必須用AS子句來獲得role1角色的這種權(quán)限。77(2)授予對象權(quán)限【例10-18】用戶Tom將對表Table6.使用DENY語句拒絕語句權(quán)限拒絕對象權(quán)限
786.使用DENY語句拒絕語句權(quán)限78(1)拒絕語句權(quán)限基本語法如下:
DENY{ALL|語句[,...n]}TO安全賬戶[,...n]【例10-19】使用DENY語句對用戶lee拒絕創(chuàng)建表和創(chuàng)建視圖的權(quán)限。
DENYCREATETABLE,CREATEVIEWTOlee79(1)拒絕語句權(quán)限基本語法如下:79(2)拒絕對象權(quán)限基本語法如下:
DENY{ALL|權(quán)限[,...n]}{[(列名[,...n])]ON{表|視圖}|ON{表|視圖}[(列名[,...n])]|ON{存儲過程|用戶自定義函數(shù)}}TO安全賬戶[,...n][CASCADE]參數(shù)CASCADE:拒絕安全賬戶的權(quán)限時,也將拒絕由安全賬戶授權(quán)的任何其他安全賬戶的權(quán)限。80(2)拒絕對象權(quán)限基本語法如下:80(2)拒絕對象權(quán)限【例10-20】使用DENY語句拒絕角色newrole對“學(xué)生”表的INSERT、UPDATE和DELETE的權(quán)限。
DENYINSERT,UPDATE,DELETEON學(xué)生TOnewrole81(2)拒絕對象權(quán)限【例10-20】使用DENY語句拒絕角色(2)拒絕對象權(quán)限【例10-21】CASCADE選項的作用。設(shè)管理員使用以下GRANT語句對Liu進(jìn)行授權(quán),使用戶Liu具有對Sales表的SELECT權(quán)限。
GRANTSELECTONSalesTOLiuWITHGRANTOPTION因此,用戶Liu具有了將sales對象的SELECT權(quán)限授予其他用戶的權(quán)限,于是用戶Liu執(zhí)行以下授權(quán):
GRANTSELECTONSalesTOGao這時,管理員執(zhí)行下面語句將拒絕用戶Liu和Gao對sales表的SELECT權(quán)限,以及Liu的WITHGRANTOPTION權(quán)限。
DENYSELECTONsalesTOLiuCASCADE82(2)拒絕對象權(quán)限【例10-21】CASCADE選項的作用。7.使用REVOKE語句廢除語句權(quán)限廢除對象權(quán)限837.使用REVOKE語句廢除語句權(quán)限83(1)廢除語句權(quán)限基本語法如下:
REVOKE{ALL|語句[,...n]}FROM安全賬戶[,...n]【例10-22】使用REVOKE語句廢除用戶lee創(chuàng)建表和創(chuàng)建視圖的權(quán)限。
REVOKECREATETABLE,CREATEVIEWFROMlee84(1)廢除語句權(quán)限基本語法如下:84(2)廢除對象權(quán)限基本語法如下:REVOKE[GRANTOPTIONFOR]{ALL|權(quán)限[,...n]}{[(列名[,...n])]ON{表|視圖}|ON{表|視圖}[(列名[,...n])]|ON{存儲過程|用戶自定義函數(shù)}}{TO|FROM}安全賬戶[,...n][CASCADE][AS{組|角色}]85(2)廢除對象權(quán)限基本語法如下:85(2)廢除對象權(quán)限參數(shù)說明:GRANTOPTIONFOR:指定要收回WITHGRANTOPTION權(quán)限。用戶仍然具有指定的權(quán)限,但是不能將該權(quán)限授予其他用戶。CASCADE:收回指定安全賬戶的權(quán)限時,也將收回由其授權(quán)的任何其他安全賬戶的權(quán)限。如果要收回的權(quán)限原先是通過WITHGRANTOPTION設(shè)置授予的,需指定CASCADE和GRANTOPTIONFOR子句,否則將返回一個錯誤。AS{組|角色}:說明要管理的用戶從哪個角色或組繼承權(quán)限。86(2)廢除對象權(quán)限參數(shù)說明:86(2)廢除對象權(quán)限【例10-23】使用REVOKE語句廢除角色newrole對“學(xué)生”表的INSERT、UPDATE和DELETE的權(quán)限。
REVOKEINSERT,UPDATE,DELETEON學(xué)生TOnewrole【例10-24】廢除用戶yuan對publishers表的pub_id列的修改權(quán)限。
REVOKEUPDATE(pub_id)ONpublishersFROMyuan87(2)廢除對象權(quán)限【例10-23】使用REVOKE語句廢除角(2)廢除對象權(quán)限【例10-25】CASCADE選項的作用。設(shè)管理員使用以下GRANT語句對Liu進(jìn)行授權(quán),使用戶Liu具有對Sales表的SELECT權(quán)限。
GRANTSELECTONSalesTOLiuWITHGRANTOPTION因此,用戶Liu具有了將sales對象的SELECT權(quán)限授予其他用戶的權(quán)限,于是用戶Liu執(zhí)行以下授權(quán):
GRANTSELECTONSalesTOGao88(2)廢除對象權(quán)限【例10-25】CASCADE選項的作用。(2)廢除對象權(quán)限這時,管理員執(zhí)行以下語句可廢除用戶Liu的WITHGRANTOPTION權(quán)限,以及用戶Gao所獲得的對Sales表的SELECT權(quán)限,但Liu仍具有對Sales表的SELECT權(quán)限。
REVOKEGRANTOPTIONFORSELECTONsalesFROMLiuCASCADE89(2)廢除對象權(quán)限這時,管理員執(zhí)行以下語句可廢除用戶Liu的(2)廢除對象權(quán)限【例10-26】設(shè)用戶Tom執(zhí)行以下語句對角色Role1進(jìn)行了授權(quán):GRANTSELECTONTable1TORole1WITHGRANTOPTION用戶Jerry是角色Role1中的成員,于是Jerry作為角色Role1的成員執(zhí)行以下授權(quán):
GRANTSELECTONTable1TOJackASrole1現(xiàn)在,用戶Jerry要廢除用戶Jack所獲得的對Table1表的SELECT權(quán)限,可以使用以下語句:REVOKESELECTONTable1FROMJackASRole190(2)廢除對象權(quán)限【例10-26】設(shè)用戶Tom執(zhí)行以下語句對第10章SQLServer安全管理安全管理概述10.1登錄10.2數(shù)據(jù)庫用戶10.3角色10.4權(quán)限管理10.591第10章SQLServer安全管理安全管理概述10.對于網(wǎng)絡(luò)環(huán)境下的多用戶數(shù)據(jù)庫而言,安全問題是至關(guān)重要的。必須對不同的用戶賦予不同的訪問權(quán)限,才能保證數(shù)據(jù)庫中的數(shù)據(jù)不被泄露或破壞。本章將介紹SQLServer2000實現(xiàn)安全管理的方法。92對于網(wǎng)絡(luò)環(huán)境下的多用戶數(shù)據(jù)庫而言,安全問題是至關(guān)重要本章要點安全管理概述登錄數(shù)據(jù)庫用戶角色權(quán)限管理93本章要點安全管理概述310.1安全管理概述SQLServer2000的安全管理模型中包括SQLServer登錄、數(shù)據(jù)庫用戶、權(quán)限和角色4個主要方面,具體如下。SQLServer登錄:要想連接到SQLServer服務(wù)器實例,必須擁有相應(yīng)的登錄賬戶和密碼。SQLServer的身份認(rèn)證系統(tǒng)驗證用戶是否擁有有效的登錄賬戶和密碼,從而決定是否允許該用戶連接到指定的SQLServer服務(wù)器實例。9410.1安全管理概述SQLServer20010.1安全管理概述數(shù)據(jù)庫用戶:通過身份認(rèn)證后,用戶可以連接到SQLServer服務(wù)器實例。但是,這并不意味著該用戶可以訪問到指定服務(wù)器上的所有數(shù)據(jù)庫。在每個SQLServer數(shù)據(jù)庫中,都存在一組SQLServer用戶賬戶。登錄賬戶要訪問指定數(shù)據(jù)庫,就要將自身映射到數(shù)據(jù)庫的一個用戶賬戶上,從而獲得訪問數(shù)據(jù)庫的權(quán)限。一個登錄賬戶可以對應(yīng)多個用戶賬戶。9510.1安全管理概述數(shù)據(jù)庫用戶:通過身份認(rèn)證后,用戶可以10.1安全管理概述權(quán)限:權(quán)限規(guī)定了用戶在指定數(shù)據(jù)庫中所能進(jìn)行的操作。角色:類似于Windows的用戶組,角色可以對用戶進(jìn)行分組管理??梢詫巧x予數(shù)據(jù)庫訪問權(quán)限,此權(quán)限將應(yīng)用于角色中的每一個用戶。9610.1安全管理概述權(quán)限:權(quán)限規(guī)定了用戶在指定數(shù)據(jù)庫中所10.2登錄登錄指用戶連接到指定SQLServer數(shù)據(jù)庫實例的過程。在此期間,系統(tǒng)要對該用戶進(jìn)行身份驗證。只有擁有正確的登錄賬戶和密碼,才能連接到指定的數(shù)據(jù)庫實例。9710.2登錄登錄指用戶連接到指定SQLServer數(shù)據(jù)10.2.1身份驗證模式登錄到SQLServer實例必須經(jīng)過兩個過程。首先要從系統(tǒng)中獲得此權(quán)限,即得到授權(quán);然后就是要通過系統(tǒng)的身份驗證。SQLServer提供以下兩種身份驗證模式。Windows身份驗證模式混合模式(Windows身份驗證和SQLServer身份驗證)9810.2.1身份驗證模式登錄到SQLServ1.Windows身份驗證模式SQLServer數(shù)據(jù)庫系統(tǒng)通常運行在WindowsNT服務(wù)器平臺上,而NT作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄、驗證用戶合法性的能力,Windows身份驗證模式正是利用了這一用戶安全性和賬戶管理的機制,允許SQLServer也可以使用Windows的用戶名和密碼。在這種模式下,用戶只需要通過Windows的身份驗證,就可以連接到SQLServer,而SQLServer本身也就不需要管理一套登錄數(shù)據(jù)。當(dāng)用戶通過WindowsNT4.0、Windows2000或Windows2003用戶賬戶進(jìn)行連接時,SQLServer通過回叫Windows系統(tǒng)以獲得信息,重新驗證賬戶名和密碼。991.Windows身份驗證模式SQLServer數(shù)據(jù)庫系2.混合模式SQLServer可以設(shè)置其自己的SQLServer登錄賬戶。用戶登錄時,SQLServer將對用戶的賬戶進(jìn)行驗證。如果SQLServer未設(shè)置該登錄賬戶,或該賬戶的用戶名、密碼不正確,則身份驗證將失敗,而且用戶將收到錯誤信息?;旌夏J皆试S用戶使用WindowsNT安全性或SQLServer安全性連接到SQLServer,這就意味著用戶可以使用他的Windows賬戶,或使用他的SQLServer賬戶登錄到SQLServer系統(tǒng)。1002.混合模式SQLServer可以設(shè)置其自己的SQLSe身份驗證模式的選擇對于WindowsNT的用戶,既可以使用Windows身份驗證模式,也可以使用SQLServer的身份驗證模式。而對于Windows9.x的用戶只能使用SQLServer的身份驗證模式。應(yīng)用程序開發(fā)人員和數(shù)據(jù)庫用戶也許更喜歡“SQLServer身份驗證”模式,因為他們可以通過對登錄賬戶和密碼的管理實現(xiàn)權(quán)限控制。101身份驗證模式的選擇對于WindowsNT的用戶,既可以使用SQLServer2000的身份驗證過程Windows身份驗證模式
混合模式
用戶連接請求
身份驗證模式?
使用SQLServer賬戶連接嗎?
是有效賬戶嗎?
SQLServer拒絕連接
有效的NT帳戶嗎
SQLServer接受用戶連接
是
是
是
否
否
否
102SQLServer2000的身份驗證過程Windows身設(shè)置SQLServer的身份認(rèn)證模式103設(shè)置SQLServer的身份認(rèn)證模式1310.2.2新建登錄賬戶SQLServer有以下兩個默認(rèn)的登錄賬戶:sa:即系統(tǒng)管理員(systemadministrator)賬戶,該賬戶在SQLServer系統(tǒng)和所有數(shù)據(jù)庫中擁有所有的權(quán)限。BUILTIN\Administrators:該賬戶為WindowsNT系統(tǒng)管理員賬戶,具有與sa有相同的權(quán)限??梢允褂靡韵聝煞N方式新建登錄帳戶:在企業(yè)管理器中創(chuàng)建登錄賬戶使用命令創(chuàng)建登錄賬戶10410.2.2新建登錄賬戶SQLServer有以下兩個默1.在企業(yè)管理器中創(chuàng)建登錄賬戶展開指定服務(wù)器實例下的“安全性”文件夾,用鼠標(biāo)右擊“登錄”項,在彈出菜單中選擇“新建登錄”命令,打開餅設(shè)置“新建登錄”對話框:1051.在企業(yè)管理器中創(chuàng)建登錄賬戶展開指定服務(wù)器實例下的“安全性2.使用命令創(chuàng)建登錄賬戶使用系統(tǒng)存儲過程創(chuàng)建Windows身份驗證模式登錄賬戶;使用系統(tǒng)存儲過程創(chuàng)建SQLServer身份驗證模式的登錄賬戶1062.使用命令創(chuàng)建登錄賬戶使用系統(tǒng)存儲過程創(chuàng)建Windows身使用系統(tǒng)存儲過程創(chuàng)建Windows身份驗證模式登錄賬戶使用sp_grantlogin存儲過程可以創(chuàng)建新的Windows身份驗證模式登錄賬戶,語法如下:
sp_grantlogin'登錄名稱'登錄名稱指要添加的Windows用戶或組的名稱。Windows組和用戶必須用Windows域名限定,格式為“域名\用戶名”,例如“London\Joeb”。只有sysadmin或securityadmin固定服務(wù)器角色的成員可以執(zhí)行sp_grantlogin。107使用系統(tǒng)存儲過程創(chuàng)建Windows身份驗證模式登錄賬戶使用s例10-1使用sp_grantlogin存儲過程將用戶LEE\public映射到SQLServer登錄賬戶。
sp_grantlogin'LEE\public'執(zhí)行結(jié)果為:
已向'LEE\public'授予登錄訪問權(quán)。108例10-1使用sp_grantlogin存儲過程將用戶LEE使用sp_addlogin存儲過程可以創(chuàng)建新的登錄賬戶,語法如下:
sp_addlogin'登錄名稱'[,'登錄密碼'][,'默認(rèn)數(shù)據(jù)庫'][,'默認(rèn)語言']SQLServer登錄名稱和密碼不能含有反斜線(\);不能是保留的登錄名稱,例如sa或public,或者已經(jīng)存在的登錄名稱;不能為NULL;不能為空字符串('')。使用系統(tǒng)存儲過程創(chuàng)建SQLServer身份驗證模式的登錄賬戶109使用sp_addlogin存儲過程可以創(chuàng)建新的登錄賬戶,語法使用sp_addlogin存儲過程創(chuàng)建SQLServer登錄賬戶lee,密碼為111111,默認(rèn)數(shù)據(jù)庫為“學(xué)生管理”。
sp_addlogin'lee','111111','學(xué)生管理'執(zhí)行結(jié)果為:
已創(chuàng)建新登錄。例10-2110使用sp_addlogin存儲過程創(chuàng)建SQLServer登使用企業(yè)管理器修改賬戶使用企業(yè)管理器刪除賬戶使用存儲過程修改和刪除賬戶10.2.3修改和刪除登錄賬戶111使用企業(yè)管理器修改賬戶10.2.3修改和刪除登錄賬戶2展開指定服務(wù)器實例下的“安全性”文件夾,用鼠標(biāo)單擊“登錄”項,可以在右側(cè)窗格中查看到已經(jīng)存在的SQLServer登錄賬戶。用鼠標(biāo)右鍵單擊登錄賬戶名,在彈出的快捷菜單中選擇“屬性”命令,打開“登錄屬性”對話框,在該對話框中可以對賬戶信息進(jìn)行修改。1.使用企業(yè)管理器修改賬戶112展開指定服務(wù)器實例下的“安全性”文件夾,用鼠標(biāo)單擊“登錄”項修改Windows身份驗證模式賬戶1.使用企業(yè)管理器修改賬戶113修改Windows身份驗證模式賬戶1.使用企業(yè)管理器修改賬戶修改SQLServer身份驗證模式賬戶1.使用企業(yè)管理器修改賬戶114修改SQLServer身份驗證模式賬戶1.使用企業(yè)管理器修在企業(yè)管理器中,用鼠標(biāo)右鍵單擊SQLServer賬戶,在彈出的快捷菜單中選擇“刪除”命令,在彈出的確認(rèn)對話框中單擊“是”按鈕,可以刪除該賬戶。2.使用企業(yè)管理器刪除賬戶115在企業(yè)管理器中,用鼠標(biāo)右鍵單擊SQLServer賬戶,在彈sp_denylogin存儲過程sp_revokelogin存儲過程sp_password存儲過程sp_droplogin存儲過程3.使用系統(tǒng)存儲過程修改和刪除賬戶116sp_denylogin存儲過程3.使用系統(tǒng)存儲過程修改和用于阻止Windows用戶或用戶組連接到SQLServer實例,基本語法:
sp_denylogin'用戶或用戶組名'sp_denylogin只能和Windows賬戶一起使用,“用戶或用戶組名”格式為“域名\用戶名”。sp_denylogin無法用于通過sp_addlogin添加的SQLServer登錄。sp_denylogin和sp_grantlogin是對應(yīng)的兩個存儲過程,它們可以互相反轉(zhuǎn)對方的效果,允許和拒絕用戶訪問SQLServer。sp_denylogin存儲過程117用于阻止Windows用戶或用戶組連接到SQLServer使用sp_denylogin存儲過程拒絕用戶LEE\public訪問SQLServer實例。
sp_denylogin'LEE\public'執(zhí)行結(jié)果為:
已拒絕對'LEE\public'的登錄訪問權(quán)。例10-3118使用sp_denylogin存儲過程拒絕用戶LEE\publ用于刪除SQLServer中使用sp_denylogin或sp_grantlogin創(chuàng)建的Windows身份認(rèn)證模式登錄賬戶,基本語法如下:
sp_revokelogin'用戶或用戶組名'【例10-4】使用sp_revokelogin存儲過程刪除用戶LEE\public對應(yīng)的SQLServer登錄賬戶。
sp_revokelogin'LEE\public'執(zhí)行結(jié)果為:已廢除'LEE\public'的登錄訪問權(quán)。從登錄列表中可以看到,LEE\public已經(jīng)被刪除。sp_revokelogin存儲過程119用于刪除SQLServer中使用sp_denylogin或用于修改SQLServer登錄的密碼,基本語法如下:
sp_password'舊密碼','新密碼','登錄賬戶名'【例10-5】使用sp_password存儲過程將登錄賬戶lee的密碼修改為222222。
sp_password'111111','222222','lee'執(zhí)行結(jié)果為:
密碼已更改。sp_password存儲過程120用于修改SQLServer登錄的密碼,基本語法如下:sp_用于刪除SQLServer登錄賬戶,以阻止使用該登錄賬戶訪問SQLServer,基本語法如下:
sp_droplogin'登錄名稱'【例10-6】使用sp_droplogin存儲過程刪除登錄賬戶lee。
sp_droplogin'lee'執(zhí)行結(jié)果為:
登錄已除去。sp_droplogin存儲過程121用于刪除SQLServer登錄賬戶,以阻止使用該登錄賬戶訪本節(jié)介紹:數(shù)據(jù)庫用戶概述新建數(shù)據(jù)庫用戶修改和刪除數(shù)據(jù)庫用戶10.3數(shù)據(jù)庫用戶擁有登錄賬戶的用戶才能通過SQLServer身份驗證,從而獲得對SQLServer實例的訪問權(quán)限。但通過SQLServer的身份驗證并不代表用戶就能夠訪問SQLServer中的數(shù)據(jù),要訪問某個具體的數(shù)據(jù)庫,還必須使登錄賬戶成為某數(shù)據(jù)庫的用戶。122本節(jié)介紹:10.3數(shù)據(jù)庫用戶擁有登錄賬戶的用戶才能通過兩個特殊的數(shù)據(jù)庫用戶:Dbo:數(shù)據(jù)庫所有者,是具有在數(shù)據(jù)庫中執(zhí)行所有活動的權(quán)限的用戶,它與登錄賬戶sa相對應(yīng)。Guest:允許沒有用戶賬戶的登錄訪問數(shù)據(jù)庫。當(dāng)滿足下列所有條件時,登錄采用guest用戶的標(biāo)識。登錄有訪問SQLServer實例的權(quán)限,但沒有通過自己的用戶賬戶訪問數(shù)據(jù)庫的權(quán)限。數(shù)據(jù)庫中含有g(shù)uest用戶賬戶。10.3.1數(shù)據(jù)庫用戶概述123兩個特殊的數(shù)據(jù)庫用戶:10.3.1數(shù)據(jù)庫用戶概述33可以將權(quán)限應(yīng)用到guest用戶,就如同它是任何其他用戶賬戶一樣??梢栽诔齧aster和tempdb外(在這兩個數(shù)據(jù)庫中g(shù)uest用戶必須始終存在)的所有數(shù)據(jù)庫中添加或刪除guest用戶。默認(rèn)情況下,新建的數(shù)據(jù)庫中沒有g(shù)uest用戶賬戶。創(chuàng)建數(shù)據(jù)庫對象的用戶稱為數(shù)據(jù)庫對象所有者。創(chuàng)建數(shù)據(jù)庫對象的權(quán)限必須由數(shù)據(jù)庫所有者或系統(tǒng)管理員授予。但是,在授予數(shù)據(jù)庫對象這些權(quán)限后,數(shù)據(jù)庫對象所有者就可以創(chuàng)建對象并授予其他用戶使用該對象的權(quán)限。數(shù)據(jù)庫對象所有者沒有特殊的登錄ID或密碼。對象創(chuàng)建者被隱性授予數(shù)據(jù)庫的所有權(quán)限,但其他用戶必須被顯式授予權(quán)限后才能訪問該對象。用戶授權(quán)124可以將權(quán)限應(yīng)用到guest用戶,就如同它是任何其他用戶賬戶使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶sp_grantdbaccess存儲過程創(chuàng)建數(shù)據(jù)庫用戶10.3.2新建數(shù)據(jù)庫用戶125使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶10.3.2新建數(shù)據(jù)庫用戶展開指定的數(shù)據(jù)庫,選擇“用戶”項,可以查看該數(shù)據(jù)庫中用戶的信息,如下圖。默認(rèn)情況下,用戶創(chuàng)建的數(shù)據(jù)庫中只有一個用戶,即dbo。(1)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶126展開指定的數(shù)據(jù)庫,選擇“用戶”項,可以查看該數(shù)據(jù)庫中用戶的信用鼠標(biāo)右擊“用戶”項,從快捷菜單中選擇“新建數(shù)據(jù)庫用戶”命令,打開“新建用戶”對話框,如下圖。(1)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫用戶127用鼠標(biāo)右擊“用戶”項,從快捷菜單中選擇“新建數(shù)據(jù)庫用戶”命令使用sp_grantdbaccess存儲過程可以將SQLServer登錄和Windows用戶(用戶組)指定為當(dāng)前數(shù)據(jù)庫用戶,并使其能夠被授予在數(shù)據(jù)庫中執(zhí)行活動的權(quán)限。基本語法如下:
sp_grantdbaccess'登錄名'[,'數(shù)據(jù)庫用戶名']數(shù)據(jù)庫用戶名:可以包含1~128個字符,包括字母、符號和數(shù)字,但不能包含反斜線符號(\)、不能為NULL或空字符串。如果沒有指定數(shù)據(jù)庫用戶名,則默認(rèn)為與“登錄名”相同(2)使用sp_grantdbaccess存儲過程創(chuàng)建數(shù)據(jù)庫用戶128使用sp_grantdbaccess存儲過程可以將SQLS使用sp_grantdbaccess存儲過程為登錄賬戶lee創(chuàng)建數(shù)據(jù)庫用戶。
sp_grantdbaccess'lee'執(zhí)行結(jié)果為:
已向'lee'授予數(shù)據(jù)庫訪問權(quán)。例10-7129使用sp_grantdbaccess存儲過程為登錄賬戶lee使用企業(yè)管理器修改數(shù)據(jù)庫用戶:右擊數(shù)據(jù)庫用戶名,從彈出菜單中選擇“屬性”命令,打開“用戶屬性”對話框。(與“新建用戶”對話框類似,但其“權(quán)限”按鈕變?yōu)橛行В┛梢栽诖藢υ捒蛑行薷挠脩粜畔ⅰJ褂闷髽I(yè)管理器刪除數(shù)據(jù)庫用戶:右擊數(shù)據(jù)庫用戶名,從彈出菜單中選擇“刪除”命令。使用sp_revokedbaccess存儲過程刪除數(shù)據(jù)庫用戶,基本語法如下:
sp_revokedbaccess'數(shù)據(jù)庫用戶名'10.3.3修改和刪除數(shù)據(jù)庫用戶130使用企業(yè)管理器修改數(shù)據(jù)庫用戶:右擊數(shù)據(jù)庫用戶名,從彈出菜單中使用sp_revokedbaccess存儲過程刪除數(shù)據(jù)庫用戶lee。
sp_revokedbaccess'lee'執(zhí)行結(jié)果為:
用戶已從當(dāng)前數(shù)據(jù)庫中除去。例10-8131使用sp_revokedbaccess存儲過程刪除數(shù)據(jù)庫用戶角色是一個強大的工具。利用角色,SQLServer管理者可以將某些用戶設(shè)置為某一角色,對一個角色授予、拒絕或廢除的權(quán)限也適用于該角色的任何成員,這樣只需對角色進(jìn)行權(quán)限設(shè)置便可以實現(xiàn)對所有用戶權(quán)限的設(shè)置,大大減少了管理員的工作量。10.4角色132角色是一個強大的工具。利用角色,SQLServer10.4.1角色管理角色固定服務(wù)器角色數(shù)據(jù)庫角色固定的數(shù)據(jù)庫角色用戶自定義的數(shù)據(jù)庫角色13310.4.1角色管理角色固定服務(wù)器角色數(shù)據(jù)庫角色固定的數(shù)1.固定服務(wù)器角色根據(jù)SQLServer的管理任務(wù),以及這些任務(wù)的相對重要性等級,把具有SQLServer管理職能的用戶劃分為不同的用戶組,每一組定義為一種固定服務(wù)器角色。每一組所具有的管理SQLServer的權(quán)限都是SQLServer內(nèi)置的,即不能對其權(quán)限進(jìn)行添加、修改和刪除,可以在這些角色中添加用戶以獲得相關(guān)的管理權(quán)限。1341.固定服務(wù)器角色根據(jù)SQLServer的管理任務(wù)SQLServer中的固定服務(wù)器角色Sysadmin:可以在SQLServer中執(zhí)行任何活動Serveradmin:可以設(shè)置服務(wù)器范圍的配置選項,關(guān)閉服務(wù)器Setupadmin:可以管理鏈接服務(wù)器和啟動過程Securityadmin:可以管理登錄和CREATEDATABASE權(quán)限,還可以讀取錯誤日志和更改密碼Processadmin:可以管理在SQLServer中運行的進(jìn)程Dbcreator:可以創(chuàng)建、更改和除去數(shù)據(jù)庫Diskadmin:可以管理磁盤文件Bulkadmin:可以執(zhí)行BULKINSERT(大容量數(shù)據(jù)插入)語句135SQLServer中的固定服務(wù)器角色Sysadmin:可以2.固定數(shù)據(jù)庫角色每個數(shù)據(jù)庫還有一系列的固定數(shù)據(jù)庫角色。在添加用戶時,可以指定該用戶屬于哪一個數(shù)據(jù)庫角色。雖然不同的數(shù)據(jù)庫中可以存在名稱相同的角色,但各個角色的作用域只是在特定的數(shù)據(jù)庫內(nèi)。例如,如果Database1和Database2中都有叫UserX的用戶,將Database1中的UserX添加到Database1的db_owner固定數(shù)據(jù)庫角色中,對Database2中的UserX是否是Database2的db_owner角色成員沒有任何影響1362.固定數(shù)據(jù)庫角色每個數(shù)據(jù)庫還有一系列的固定數(shù)據(jù)庫SQLServer中的固定數(shù)據(jù)庫角色Public:每個數(shù)據(jù)庫用戶都屬于public角色db_owner:在數(shù)據(jù)庫中有全部權(quán)限db_accessadmin:可以增加或者刪除數(shù)據(jù)庫用戶、用戶組和角色db_securityadmin:管理數(shù)據(jù)庫角色的角色和成員,并管理數(shù)據(jù)庫中的語句和對象權(quán)限db_ddladmin:可以添加、修改或除去數(shù)據(jù)庫中的對象(運行所有DDL)db_backupoperator:可以備份和恢復(fù)數(shù)據(jù)庫db_datareader:可以選擇數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)137SQLServer中的固定數(shù)據(jù)庫角色Public:每個數(shù)據(jù)SQLServer中的固定數(shù)據(jù)庫角色db_datawriter:可以更改數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)db_denydatareader:不能選擇數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)db_denydatawriter:不能更改數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)138SQLServer中的固定數(shù)據(jù)庫角色db_datawrit3.用戶自定義的數(shù)據(jù)庫角色用戶還可以自定義數(shù)據(jù)庫角色??梢裕菏褂闷髽I(yè)管理器管理自定義數(shù)據(jù)庫角色使用存儲過程管理自定義數(shù)據(jù)庫角色。1393.用戶自定義的數(shù)據(jù)庫角色用戶還可以自定義數(shù)據(jù)庫角色??梢裕海?)在企業(yè)管理器中新建角色展開指定的數(shù)據(jù)庫,選擇數(shù)據(jù)庫中的“角色”項,可以查看到指定數(shù)據(jù)庫的所有角色。右擊“角色”項,在彈出菜單中選擇“新建數(shù)據(jù)庫角色”,打開新建數(shù)據(jù)庫角色對話框140(1)在企業(yè)管理器中新建角色展開指定的數(shù)據(jù)庫,選擇數(shù)據(jù)庫中的(2)在企業(yè)管理器中修改角色在角色列表中,用鼠標(biāo)右擊角色名,在彈出菜單中選擇“屬性”命令,打開數(shù)據(jù)庫角色屬性對話框。用戶可以在角色屬性對話框中修改角色的屬性。如修改角色權(quán)限,添加用戶或刪除角色中的用戶等。141(2)在企業(yè)管理器中修改角色在角色列表中,用鼠標(biāo)右擊角色名,(3)在企業(yè)管理器中刪除角色用鼠標(biāo)右擊角色名稱,在彈出的快捷菜單中選擇“刪除”命令,可以刪除數(shù)據(jù)庫角色。但是無法刪除固定的數(shù)據(jù)庫角色。142(3)在企業(yè)管理器中刪除角色用鼠標(biāo)右擊角色名稱,在彈出的快捷(4)使用sp_addrole存儲過程創(chuàng)建自定義角色sp_addrole存儲過程的功能是創(chuàng)建SQLServer角色,基本語法如下:sp_addrole'數(shù)據(jù)庫角色名'【例10-9】使用sp_addrole存儲過程創(chuàng)建數(shù)據(jù)庫角色newrole。
sp_addrole'newrole'執(zhí)行結(jié)果為:
新角色已添加。143(4)使用sp_addrole存儲過程創(chuàng)建自定義角色sp_a(5)使用sp_droprole存儲過程刪除自定義角色sp_droprole存儲過程的功能是刪除SQLServer角色,基本語法如下:
sp_droprole'數(shù)據(jù)庫角色名'【例10-10】使用sp_droprole存儲過程刪除數(shù)據(jù)庫角色newrole。
sp_droprole'newrole'執(zhí)行結(jié)果為:
角色已除去。144(5)使用sp_droprole存儲過程刪除自定義角色sp_10.4.2管理角色中的用戶角色只有包含了用戶后才有存在的意義。向角色中添加用戶后,用戶就擁有了角色的所有權(quán)限;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 41305.6-2026環(huán)境條件電子設(shè)備振動和沖擊第6部分:利用螺旋槳式飛機運輸
- 流程工業(yè)智能制造技術(shù)理論及應(yīng)用 課件 第六章-流程工業(yè)數(shù)字孿生
- 內(nèi)務(wù)培訓(xùn)課件
- 濰坊沙龍-活動策劃方案(3篇)
- 社會體育指導(dǎo)中心管理制度(3篇)
- 管理制度格式及范文圖片(3篇)
- 車間安全風(fēng)險防范管理制度(3篇)
- 長治燒烤活動策劃方案(3篇)
- 2026年及未來5年市場數(shù)據(jù)中國倉儲式超市行業(yè)發(fā)展運行現(xiàn)狀及發(fā)展趨勢預(yù)測報告
- 紗線培訓(xùn)教學(xué)課件
- 渠道管理制度規(guī)范
- 2026陜西省森林資源管理局局屬企業(yè)招聘(55人)備考題庫附答案
- 2025年企業(yè)安全生產(chǎn)培訓(xùn)講義
- 食品添加劑生產(chǎn)質(zhì)量管理手冊(標(biāo)準(zhǔn)版)
- 《內(nèi)科護(hù)理》課件-學(xué)前先知:腺垂體功能減退癥病人的護(hù)理課件
- 2025-2026學(xué)年北京西城區(qū)初三(上期)期末物理試卷(含答案)
- 【初中 歷史】2025-2026學(xué)年統(tǒng)編版八年級歷史上冊期末材料分析題練習(xí)
- 2026年2026年健康飲食防失眠培訓(xùn)課件
- 廣西華盛集團(tuán)廖平糖業(yè)有限責(zé)任公司招聘筆試題庫2026
- 房地產(chǎn)登記技術(shù)規(guī)程
- GB/T 714-2025橋梁用結(jié)構(gòu)鋼
評論
0/150
提交評論