




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第10章章 sql server 2005的安全管理的安全管理第第10章章 sql server 2005的安全管理的安全管理sql server 2005的安全性機(jī)制主要包括以下的安全性機(jī)制主要包括以下5個(gè)方面的內(nèi)容:個(gè)方面的內(nèi)容:nsql server 2005客戶機(jī)的安全機(jī)制??蛻魴C(jī)的安全機(jī)制。n網(wǎng)絡(luò)傳輸?shù)陌踩珯C(jī)制。網(wǎng)絡(luò)傳輸?shù)陌踩珯C(jī)制。nsql server 2005服務(wù)器的安全機(jī)制。服務(wù)器的安全機(jī)制。n數(shù)據(jù)庫(kù)的的安全機(jī)制。數(shù)據(jù)庫(kù)的的安全機(jī)制。n數(shù)據(jù)對(duì)象的安全機(jī)制。數(shù)據(jù)對(duì)象的安全機(jī)制。10.1.1基本概念基本概念若要在若要在sql server 2005的安全機(jī)制下,首先需的安全機(jī)制下
2、,首先需要了解下面常用的基本概念或術(shù)語(yǔ)。要了解下面常用的基本概念或術(shù)語(yǔ)。(1)主體()主體(principal)。主體是可以請(qǐng)求對(duì))。主體是可以請(qǐng)求對(duì)sql server資源的訪問(wèn)權(quán)限的用戶、組和進(jìn)資源的訪問(wèn)權(quán)限的用戶、組和進(jìn)程。主體有幾個(gè)共同的特征。每個(gè)主體都有程。主體有幾個(gè)共同的特征。每個(gè)主體都有自己的安全標(biāo)識(shí)號(hào)(自己的安全標(biāo)識(shí)號(hào)(sid)。主體可以是主)。主體可以是主體的集合(比如數(shù)據(jù)庫(kù)角色或體的集合(比如數(shù)據(jù)庫(kù)角色或windows組)組)或不可分割的主體(比如本地登錄或域登或不可分割的主體(比如本地登錄或域登錄)。每個(gè)主體有一個(gè)作用域,作用域基于錄)。每個(gè)主體有一個(gè)作用域,作用域基于定
3、義主體的級(jí)別。定義主體的級(jí)別。主體范圍主體范圍主體主體windows級(jí)別的級(jí)別的主體主體windows域登錄、域登錄、windows本本地登錄地登錄 sql server級(jí)別級(jí)別的主體的主體sql server登錄、登錄、sql server角色角色數(shù)據(jù)庫(kù)級(jí)別的主數(shù)據(jù)庫(kù)級(jí)別的主體體數(shù)據(jù)庫(kù)用戶、數(shù)據(jù)庫(kù)角色、應(yīng)數(shù)據(jù)庫(kù)用戶、數(shù)據(jù)庫(kù)角色、應(yīng)用程序角色用程序角色10.1.1基本概念基本概念(2)安全對(duì)象。安全對(duì)象是)安全對(duì)象。安全對(duì)象是 sql server 2005數(shù)據(jù)庫(kù)引擎授權(quán)系統(tǒng)控?cái)?shù)據(jù)庫(kù)引擎授權(quán)系統(tǒng)控制對(duì)其進(jìn)行訪問(wèn)的資源。通過(guò)創(chuàng)建制對(duì)其進(jìn)行訪問(wèn)的資源。通過(guò)創(chuàng)建可以為自己設(shè)置安全性的名為可以為自己設(shè)
4、置安全性的名為“范范圍圍”的嵌套層次結(jié)構(gòu),可以將某些的嵌套層次結(jié)構(gòu),可以將某些安全對(duì)象包含在其他安全對(duì)象中。安全對(duì)象包含在其他安全對(duì)象中。安全對(duì)象范圍包括服務(wù)器、數(shù)據(jù)庫(kù)、安全對(duì)象范圍包括服務(wù)器、數(shù)據(jù)庫(kù)、架構(gòu)和對(duì)象。架構(gòu)和對(duì)象。安全對(duì)象范圍安全對(duì)象范圍安全對(duì)象列表安全對(duì)象列表服務(wù)器服務(wù)器端點(diǎn)、登錄用戶、數(shù)據(jù)庫(kù)端點(diǎn)、登錄用戶、數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)用戶、角色、應(yīng)用程序角色、程序集、用戶、角色、應(yīng)用程序角色、程序集、消息類(lèi)型、路由、服務(wù)、遠(yuǎn)程服務(wù)綁定、消息類(lèi)型、路由、服務(wù)、遠(yuǎn)程服務(wù)綁定、 全文目錄、證書(shū)、非對(duì)稱密鑰、對(duì)稱密全文目錄、證書(shū)、非對(duì)稱密鑰、對(duì)稱密鑰、約定、架構(gòu)鑰、約定、架構(gòu)架構(gòu)架構(gòu)類(lèi)型、類(lèi)型、
5、xml 架構(gòu)集合、對(duì)象架構(gòu)集合、對(duì)象 對(duì)象對(duì)象聚合、約束、函數(shù)、過(guò)程、隊(duì)列、統(tǒng)計(jì)信息、聚合、約束、函數(shù)、過(guò)程、隊(duì)列、統(tǒng)計(jì)信息、同義詞、表、視圖同義詞、表、視圖10.1.1基本概念基本概念(3)用戶、數(shù)據(jù)庫(kù)用戶、賬戶、賬號(hào)、登錄名和用戶、數(shù)據(jù)庫(kù)用戶、賬戶、賬號(hào)、登錄名和密碼。密碼。n用戶用戶是指能夠在是指能夠在sql server 2005安全機(jī)制下,訪問(wèn)數(shù)據(jù)安全機(jī)制下,訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象中的數(shù)據(jù)的操作員或客戶。用戶若要訪問(wèn)數(shù)據(jù)庫(kù)庫(kù)對(duì)象中的數(shù)據(jù)的操作員或客戶。用戶若要訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象,必須獲得管理員分配的對(duì)象,必須獲得管理員分配的賬號(hào)賬號(hào)和和密碼密碼。從從sql server 2005管理系統(tǒng)的角度來(lái)
6、看,用戶就是一組匹配的管理系統(tǒng)的角度來(lái)看,用戶就是一組匹配的賬戶和密碼。賬戶和密碼。n賬戶和賬號(hào)賬戶和賬號(hào)是一個(gè)概念的不同說(shuō)法,在服務(wù)器中的賬戶是一個(gè)概念的不同說(shuō)法,在服務(wù)器中的賬戶又叫又叫登錄名登錄名(login),因此訪問(wèn)服務(wù)器也稱為登錄服),因此訪問(wèn)服務(wù)器也稱為登錄服務(wù)器。服務(wù)器的登錄名可以映射到數(shù)據(jù)庫(kù)中成為務(wù)器。服務(wù)器的登錄名可以映射到數(shù)據(jù)庫(kù)中成為數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)用戶用戶。一個(gè)登錄名可以映射多個(gè)數(shù)據(jù)庫(kù)用戶,而一個(gè)用一個(gè)登錄名可以映射多個(gè)數(shù)據(jù)庫(kù)用戶,而一個(gè)用戶只能映射一個(gè)登錄名。戶只能映射一個(gè)登錄名。10.1.1基本概念基本概念(4)角色)角色(roles)。角色是。角色是sql serve
7、r 2005中管中管理權(quán)限相近的安全賬戶的集合,相當(dāng)于理權(quán)限相近的安全賬戶的集合,相當(dāng)于windows域中的組。域中的組。(5)權(quán)限。)權(quán)限。 權(quán)限是權(quán)限是sql server 2005安全性的最安全性的最后一個(gè)級(jí)別,實(shí)際上是安全機(jī)制的設(shè)計(jì)者分配后一個(gè)級(jí)別,實(shí)際上是安全機(jī)制的設(shè)計(jì)者分配給某一個(gè)用戶(或角色)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),對(duì)數(shù)給某一個(gè)用戶(或角色)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),對(duì)數(shù)據(jù)對(duì)象的可以進(jìn)行的操作集合。要擁有對(duì)據(jù)對(duì)象的可以進(jìn)行的操作集合。要擁有對(duì)sql server 2005上的安全對(duì)象的訪問(wèn)權(quán)限,主體必上的安全對(duì)象的訪問(wèn)權(quán)限,主體必須具有在在數(shù)據(jù)對(duì)象上執(zhí)行操作的權(quán)限。須具有在在數(shù)據(jù)對(duì)象上執(zhí)行操作的權(quán)限。
8、10.1.1基本概念基本概念(6)身份驗(yàn)證與授權(quán)。身份驗(yàn)證)身份驗(yàn)證與授權(quán)。身份驗(yàn)證(authentication)是是sql server 2005系統(tǒng)標(biāo)識(shí)用戶或進(jìn)程的過(guò)程,系統(tǒng)標(biāo)識(shí)用戶或進(jìn)程的過(guò)程,sql server 2005 中有兩種身份驗(yàn)證方式:中有兩種身份驗(yàn)證方式:nwindows身份驗(yàn)證模式和混合身份驗(yàn)證模式。身份驗(yàn)證模式和混合身份驗(yàn)證模式。客戶端自身必須通過(guò)服務(wù)器的身份驗(yàn)證后才客戶端自身必須通過(guò)服務(wù)器的身份驗(yàn)證后才可以請(qǐng)求其他資源??梢哉?qǐng)求其他資源。n授權(quán)授權(quán)(authorization)是授予通過(guò)身份驗(yàn)證的是授予通過(guò)身份驗(yàn)證的用戶或進(jìn)程以訪問(wèn)或修改資源的指定權(quán)限的用戶或進(jìn)程以
9、訪問(wèn)或修改資源的指定權(quán)限的過(guò)程。過(guò)程。10.1.3查詢權(quán)限查詢權(quán)限n用戶可以利用用戶可以利用fn_my_permissions函數(shù)查詢用戶函數(shù)查詢用戶的有效權(quán)限,該函數(shù)一般返回調(diào)用對(duì)方服務(wù)器的有效權(quán)限,該函數(shù)一般返回調(diào)用對(duì)方服務(wù)器的有效權(quán)限列表。的有效權(quán)限列表。nfn_my_permissions函數(shù)語(yǔ)法格式如下:函數(shù)語(yǔ)法格式如下:fn_my_permissions (securable , securable_class) fn_my_permissions 函數(shù)的返回列如表函數(shù)的返回列如表10.1所示所示. 列名列名類(lèi)型類(lèi)型說(shuō)明說(shuō)明entity_namesysname對(duì)其有效授予所列權(quán)限的
10、安全對(duì)其有效授予所列權(quán)限的安全對(duì)象的名稱。對(duì)象的名稱。 subentity_namesysname如果安全對(duì)象具有列,則為列如果安全對(duì)象具有列,則為列名;否則為名;否則為 null。 permission_namenvarchar權(quán)限的名稱。權(quán)限的名稱。10.1.1基本概念基本概念例例10.1 列出對(duì)服務(wù)器的有效權(quán)限。列出對(duì)服務(wù)器的有效權(quán)限。程序代碼如下:程序代碼如下:use master goselect * from fn_my_permissions (null, server); go例例10.2 列出對(duì)數(shù)據(jù)庫(kù)列出對(duì)數(shù)據(jù)庫(kù)test01的有效權(quán)限的有效權(quán)限程序代碼如下:程序代碼如下:us
11、e test01goselect * from fn_my_permissions (null, database);go10.1.1基本概念基本概念例例10.3 列出對(duì)表的有效權(quán)限。列出對(duì)表的有效權(quán)限。分析:以下示例返回調(diào)用方對(duì)分析:以下示例返回調(diào)用方對(duì)teaching數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)庫(kù)內(nèi)dbo架構(gòu)中架構(gòu)中teacher的有效權(quán)限的列表。的有效權(quán)限的列表。程序代碼如下:程序代碼如下:use teaching;goselect * from fn_my_permissions(dbo.teacher, object) order by subentity_name, permission_name
12、 ; 例例10.4列出一個(gè)用戶的有效權(quán)限列出一個(gè)用戶的有效權(quán)限分析:以下示例返回?cái)?shù)據(jù)庫(kù)用戶分析:以下示例返回?cái)?shù)據(jù)庫(kù)用戶dbo對(duì)對(duì) teaching 數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)庫(kù)內(nèi)dbo架構(gòu)中架構(gòu)中score表的有效權(quán)限的列表。調(diào)用方需要對(duì)用戶表的有效權(quán)限的列表。調(diào)用方需要對(duì)用戶dbo具有具有 impersonate 權(quán)限。權(quán)限。程序代碼如下:程序代碼如下:execute as user = dbo;select * from fn_my_permissions(dbo.score, object) order by subentity_name, permission_name ; revert;gon服務(wù)
13、器訪問(wèn)權(quán)限是屬于服務(wù)器訪問(wèn)權(quán)限是屬于sql server的第的第1個(gè)安全層個(gè)安全層次,該權(quán)限決定是否允許客戶端訪問(wèn)服務(wù)器,這個(gè)次,該權(quán)限決定是否允許客戶端訪問(wèn)服務(wù)器,這個(gè)安全級(jí)別總是由安全級(jí)別總是由dba負(fù)責(zé)。負(fù)責(zé)。nsql server 2005支持用支持用windows或或sql server身身份驗(yàn)證模式來(lái)驗(yàn)證客戶端的身份。份驗(yàn)證模式來(lái)驗(yàn)證客戶端的身份。10.2.1 sql server 2005的驗(yàn)證模式的驗(yàn)證模式nsql server 2005的身份驗(yàn)證基于的身份驗(yàn)證基于sql server存儲(chǔ)在主數(shù)存儲(chǔ)在主數(shù)據(jù)庫(kù)中的登錄名和密碼??蛻舳吮仨毺峁┑卿浢兔艽a,據(jù)庫(kù)中的登錄名和密碼???/p>
14、戶端必須提供登錄名和密碼,才能獲得授權(quán)訪問(wèn)服務(wù)器。才能獲得授權(quán)訪問(wèn)服務(wù)器。nsql server的安全性是和的安全性是和windows操作系統(tǒng)集成在一起操作系統(tǒng)集成在一起的,因此的,因此sql server提供了兩種確認(rèn)用戶的驗(yàn)證模式:提供了兩種確認(rèn)用戶的驗(yàn)證模式:windows驗(yàn)證和混合驗(yàn)證模式。驗(yàn)證和混合驗(yàn)證模式。 10.2.1 sql server 2005的驗(yàn)證模式的驗(yàn)證模式1. windows身份驗(yàn)證模式身份驗(yàn)證模式nsql server數(shù)據(jù)庫(kù)系統(tǒng)通常運(yùn)行在數(shù)據(jù)庫(kù)系統(tǒng)通常運(yùn)行在windows服務(wù)器平服務(wù)器平臺(tái)上,其本身就具備管理登錄、驗(yàn)證用戶合法性的能臺(tái)上,其本身就具備管理登錄、驗(yàn)證
15、用戶合法性的能力,因此力,因此windows 驗(yàn)證模式正是利用了這一用戶安驗(yàn)證模式正是利用了這一用戶安全性和賬號(hào)管理的機(jī)制,允許全性和賬號(hào)管理的機(jī)制,允許sql server也可以使用也可以使用windows的用戶賬戶和密碼。的用戶賬戶和密碼。n在這種模式下,用戶只需要通過(guò)在這種模式下,用戶只需要通過(guò)windows的驗(yàn)證,就的驗(yàn)證,就可以連接到可以連接到sql server,而,而sql server本身也就不需本身也就不需要管理一套登錄數(shù)據(jù)。要管理一套登錄數(shù)據(jù)。nwindows身份驗(yàn)證通常被認(rèn)為更安全和更易維護(hù)。身份驗(yàn)證通常被認(rèn)為更安全和更易維護(hù)。windows身份驗(yàn)證對(duì)于用戶和管理員來(lái)說(shuō)都
16、比較容易身份驗(yàn)證對(duì)于用戶和管理員來(lái)說(shuō)都比較容易管理。管理。10.2.1 sql server 2005的驗(yàn)證模式的驗(yàn)證模式2. 混合身份驗(yàn)證模式混合身份驗(yàn)證模式n混合驗(yàn)證模式允許以混合驗(yàn)證模式允許以sql server驗(yàn)證模式或者驗(yàn)證模式或者windows驗(yàn)驗(yàn)證模式來(lái)進(jìn)行驗(yàn)證。證模式來(lái)進(jìn)行驗(yàn)證。n混合驗(yàn)證模式先將客戶機(jī)的賬號(hào)和密碼與混合驗(yàn)證模式先將客戶機(jī)的賬號(hào)和密碼與sql server 2005數(shù)據(jù)庫(kù)中存儲(chǔ)的賬號(hào)和密碼進(jìn)行比較,如果符合就通數(shù)據(jù)庫(kù)中存儲(chǔ)的賬號(hào)和密碼進(jìn)行比較,如果符合就通過(guò)驗(yàn)證;如果不符合,則再和過(guò)驗(yàn)證;如果不符合,則再和windows中存儲(chǔ)的賬號(hào)和密中存儲(chǔ)的賬號(hào)和密碼進(jìn)行比較
17、,如果符合就通過(guò)驗(yàn)證。碼進(jìn)行比較,如果符合就通過(guò)驗(yàn)證。nmicrosoft公司在公司在sql server 2005中對(duì)中對(duì)sql server身份驗(yàn)身份驗(yàn)證作了一些改進(jìn)。例如,證作了一些改進(jìn)。例如,sql server實(shí)例可以設(shè)置為需要實(shí)例可以設(shè)置為需要安全性更強(qiáng)的口令,以及在指定時(shí)間段后要求更新口令。安全性更強(qiáng)的口令,以及在指定時(shí)間段后要求更新口令。10.2.1 sql server 2005的驗(yàn)證模式的驗(yàn)證模式3更新服務(wù)器的身份驗(yàn)證機(jī)制的步驟更新服務(wù)器的身份驗(yàn)證機(jī)制的步驟(1)在)在“對(duì)象資源管理器對(duì)象資源管理器”中,右擊中,右擊sql server 2005數(shù)據(jù)庫(kù)實(shí)例,在彈出的快捷菜單
18、中,選擇數(shù)據(jù)庫(kù)實(shí)例,在彈出的快捷菜單中,選擇“屬屬性性”命令。命令。(2)在)在“服務(wù)器屬性服務(wù)器屬性”對(duì)話框中選擇對(duì)話框中選擇“安全性安全性”選選項(xiàng)卡。項(xiàng)卡。(3)在)在“服務(wù)器身份驗(yàn)證服務(wù)器身份驗(yàn)證”區(qū)域可以設(shè)置服務(wù)器身區(qū)域可以設(shè)置服務(wù)器身份驗(yàn)證模式,然后單擊份驗(yàn)證模式,然后單擊“確定確定”按鈕即可完成設(shè)置。按鈕即可完成設(shè)置。(4)重啟)重啟sql server 2005,即可改變身份驗(yàn)證模式。,即可改變身份驗(yàn)證模式。10.2.2服務(wù)器角色服務(wù)器角色nsql server 2005的安全體系結(jié)構(gòu)中包括含的安全體系結(jié)構(gòu)中包括含有特定隱含權(quán)限的兩類(lèi)預(yù)定義的角色:服有特定隱含權(quán)限的兩類(lèi)預(yù)定義的角
19、色:服務(wù)器角色和固定數(shù)據(jù)庫(kù)角色。務(wù)器角色和固定數(shù)據(jù)庫(kù)角色。n服務(wù)器角色是執(zhí)行服務(wù)器管理操作的具有服務(wù)器角色是執(zhí)行服務(wù)器管理操作的具有相近權(quán)限的用戶集合。根據(jù)相近權(quán)限的用戶集合。根據(jù)sql server的的管理任務(wù)和重要性等級(jí)來(lái)把具有管理任務(wù)和重要性等級(jí)來(lái)把具有sql server管理職能的用戶劃分到不同的服務(wù)管理職能的用戶劃分到不同的服務(wù)器角色,每一個(gè)角色所具有的管理器角色,每一個(gè)角色所具有的管理sql server的權(quán)限都是的權(quán)限都是sql server內(nèi)置的。內(nèi)置的。10.2.2服務(wù)器角色服務(wù)器角色n服務(wù)器角色是服務(wù)器級(jí)別的主體,可以成服務(wù)器角色是服務(wù)器級(jí)別的主體,可以成為服務(wù)器角色的成員
20、以控制服務(wù)器作用域?yàn)榉?wù)器角色的成員以控制服務(wù)器作用域中的可保護(hù)對(duì)象。表中的可保護(hù)對(duì)象。表10.5列出了列出了sql server 2005默認(rèn)創(chuàng)建的服務(wù)器角色及其功默認(rèn)創(chuàng)建的服務(wù)器角色及其功能。能。nsql server 2005的服務(wù)器角色在實(shí)例中的的服務(wù)器角色在實(shí)例中的位置如圖位置如圖10.8所示。所示。服務(wù)器角色服務(wù)器角色權(quán)限權(quán)限sysadmin 擁有擁有sql server所有的權(quán)限所有的權(quán)限serveradmin管理管理sql server服務(wù)器的配置選項(xiàng),關(guān)閉服務(wù)器服務(wù)器的配置選項(xiàng),關(guān)閉服務(wù)器diskadmin管理磁盤(pán)文件管理磁盤(pán)文件processadmin管理管理sql ser
21、ver系統(tǒng)中運(yùn)行的進(jìn)程系統(tǒng)中運(yùn)行的進(jìn)程securityadmin審核審核sql server系統(tǒng)登錄,管理系統(tǒng)登錄,管理create database權(quán)限、讀取錯(cuò)誤日志和修改密碼權(quán)限、讀取錯(cuò)誤日志和修改密碼setupadmin管理鏈接服務(wù)器和啟動(dòng)過(guò)程管理鏈接服務(wù)器和啟動(dòng)過(guò)程dbcreator創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)bulkadmin可以執(zhí)行可以執(zhí)行bulk insert語(yǔ)句,進(jìn)行大容量操作語(yǔ)句,進(jìn)行大容量操作10.2.3管理登錄名管理登錄名登錄名就是可以訪問(wèn)登錄名就是可以訪問(wèn)sql server數(shù)據(jù)庫(kù)系統(tǒng)的賬戶。數(shù)據(jù)庫(kù)系統(tǒng)的賬戶。1利用利用sql server manage
22、ment studio創(chuàng)建登錄名創(chuàng)建登錄名(1)啟動(dòng))啟動(dòng)sql server management studio工具后,工具后,在在“對(duì)象資源管理器對(duì)象資源管理器”下,右擊下,右擊“安全性安全性”下的下的“登錄名登錄名”節(jié)點(diǎn),在彈出的快捷菜單中選擇節(jié)點(diǎn),在彈出的快捷菜單中選擇“新新建登錄名建登錄名”命令。命令。(2)在)在“登錄名登錄名-新建新建”界面上,設(shè)置登錄名界面上,設(shè)置登錄名(te_login)、身份驗(yàn)證模式()、身份驗(yàn)證模式(sql server身份驗(yàn)身份驗(yàn)證)、密碼(證)、密碼(123456)、默認(rèn)數(shù)據(jù)庫(kù)()、默認(rèn)數(shù)據(jù)庫(kù)(teaching)和語(yǔ)言的類(lèi)型等,如圖和語(yǔ)言的類(lèi)型等,如圖
23、10.9所示。所示。10.2.3管理登錄名管理登錄名1利用利用sql server management studio創(chuàng)建登錄名創(chuàng)建登錄名(3)可以選擇)可以選擇“服務(wù)器角色服務(wù)器角色”選項(xiàng)卡,配置登錄的選項(xiàng)卡,配置登錄的服務(wù)器角色,如服務(wù)器角色,如sysadmin。(4)也可以選擇其他選項(xiàng)卡進(jìn)行)也可以選擇其他選項(xiàng)卡進(jìn)行“用戶映射用戶映射”、“安全對(duì)象安全對(duì)象”和和“狀態(tài)狀態(tài)”的配置。的配置。(5)然后單擊)然后單擊“確定確定”按鈕即可完成登錄名的創(chuàng)建。按鈕即可完成登錄名的創(chuàng)建。(6)可以在)可以在“對(duì)象資源管理器對(duì)象資源管理器”下查看新建登錄名下查看新建登錄名如圖如圖10.10所示。所示。
24、10.2.3管理登錄名管理登錄名1利用利用sql server management studio創(chuàng)建登錄名創(chuàng)建登錄名(7)右擊登錄名)右擊登錄名te_login,在彈出的快捷菜單中,在彈出的快捷菜單中,選擇選擇“編寫(xiě)登錄腳本為:編寫(xiě)登錄腳本為:”|“create到到”|“新查新查詢編輯器窗口詢編輯器窗口”命令,系統(tǒng)將創(chuàng)建登錄名的過(guò)程命令,系統(tǒng)將創(chuàng)建登錄名的過(guò)程以腳本形式保存下來(lái)。由此可知利用以腳本形式保存下來(lái)。由此可知利用transact-sql語(yǔ)句創(chuàng)建登錄名的方法。語(yǔ)句創(chuàng)建登錄名的方法。腳本中的主要代碼如下:腳本中的主要代碼如下:create login te_login with pas
25、sword=n123456, default_database=teaching, default_language=簡(jiǎn)體中文簡(jiǎn)體中文, check_expiration=off, check_policy=offgoexec sys.sp_addsrvrolemember loginame = nte_login, rolename = nsysadmingoalter login te_login disable10.2.3管理登錄名管理登錄名2測(cè)試登錄名測(cè)試登錄名下面使用下面使用sql server management studio測(cè)試新登錄測(cè)試新登錄名是否成功連接服務(wù)器。名是否成功連
26、接服務(wù)器。(1)右擊)右擊sql server 中的實(shí)例,在快捷菜單中選擇中的實(shí)例,在快捷菜單中選擇“連接連接”命令。命令。(2)在彈出的)在彈出的“連接服務(wù)器連接服務(wù)器”界面中,選擇界面中,選擇sql serve身份驗(yàn)證,然后輸入登錄名和密碼,如圖身份驗(yàn)證,然后輸入登錄名和密碼,如圖10.11所示。所示。(3)單擊)單擊“連接連接”按鈕可以測(cè)試連接是否成功。如圖按鈕可以測(cè)試連接是否成功。如圖10.12所示。所示。10.2.3管理登錄名管理登錄名3利用系統(tǒng)過(guò)程管理登錄名利用系統(tǒng)過(guò)程管理登錄名利用利用master數(shù)據(jù)庫(kù)下的下列系統(tǒng)存儲(chǔ)過(guò)程數(shù)據(jù)庫(kù)下的下列系統(tǒng)存儲(chǔ)過(guò)程sp_addlogin、sp_d
27、roplogin、 sp_password也可以用于管理也可以用于管理sql server的登錄名。的登錄名。(1)sp_addlogin 。系統(tǒng)過(guò)程。系統(tǒng)過(guò)程sp_addlogin可以用于創(chuàng)可以用于創(chuàng)建建sql server登錄名,用戶可以通過(guò)該登錄訪問(wèn)登錄名,用戶可以通過(guò)該登錄訪問(wèn)sql server系統(tǒng),其語(yǔ)法過(guò)程如下:系統(tǒng),其語(yǔ)法過(guò)程如下:sp_addlogin login_name ,passwd,database ,language 例例10.5 利用系統(tǒng)過(guò)程利用系統(tǒng)過(guò)程sp_addlogin向向“職員管理職員管理”數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建3個(gè)新登錄。個(gè)新登錄。sp_addlogin
28、rose, aabbcc, teachinggosp_addlogin hanry, aabbcc, teaching gosp_addlogin pool, aabbcc, teaching go10.2.3管理登錄名管理登錄名3利用系統(tǒng)過(guò)程管理登錄名利用系統(tǒng)過(guò)程管理登錄名(2)sp_droplogin。利用系統(tǒng)存儲(chǔ)過(guò)程。利用系統(tǒng)存儲(chǔ)過(guò)程sp_droplogin可以刪除一個(gè)現(xiàn)有的可以刪除一個(gè)現(xiàn)有的sql server登錄名,登錄名,sp_droplogin系統(tǒng)過(guò)程可以通過(guò)系統(tǒng)表系統(tǒng)過(guò)程可以通過(guò)系統(tǒng)表syslogins中刪中刪除相應(yīng)的行來(lái)達(dá)到刪除登錄名的目的。除相應(yīng)的行來(lái)達(dá)到刪除登錄名的目的。
29、需要注意的是需要注意的是,正在訪問(wèn)的正在訪問(wèn)的sql server 2005系統(tǒng)中的任系統(tǒng)中的任何一個(gè)數(shù)據(jù)庫(kù)的何一個(gè)數(shù)據(jù)庫(kù)的sql server登錄名是不能被刪除的。登錄名是不能被刪除的。若要?jiǎng)h除某登錄名,必須先利用系統(tǒng)過(guò)程若要?jiǎng)h除某登錄名,必須先利用系統(tǒng)過(guò)程sp_revokedbaccess刪除相應(yīng)的數(shù)據(jù)庫(kù)用戶。刪除相應(yīng)的數(shù)據(jù)庫(kù)用戶。10.2.3管理登錄名管理登錄名3利用系統(tǒng)過(guò)程管理登錄名利用系統(tǒng)過(guò)程管理登錄名(3)sp_password。系統(tǒng)存儲(chǔ)過(guò)程。系統(tǒng)存儲(chǔ)過(guò)程sp_password為為sql server登錄創(chuàng)建密碼,或替換現(xiàn)有的口令密碼。登錄創(chuàng)建密碼,或替換現(xiàn)有的口令密碼。 利用該過(guò)
30、程用戶可以隨時(shí)修改自己的口令密碼,系利用該過(guò)程用戶可以隨時(shí)修改自己的口令密碼,系統(tǒng)管理員通過(guò)統(tǒng)管理員通過(guò)sp_password可以更改任何口令密碼??梢愿娜魏慰诹蠲艽a。 例如:例如: sp_password aabbcc, 112233, hanry 10.2.3管理登錄名管理登錄名4.密碼的復(fù)雜性策略密碼的復(fù)雜性策略sql server 2005的密碼復(fù)雜性策略是指一系列限制密碼復(fù)雜性的密碼復(fù)雜性策略是指一系列限制密碼復(fù)雜性的規(guī)則。密碼復(fù)雜性策略通過(guò)增加可能密碼的數(shù)量來(lái)阻止強(qiáng)的規(guī)則。密碼復(fù)雜性策略通過(guò)增加可能密碼的數(shù)量來(lái)阻止強(qiáng)力攻擊。實(shí)施密碼復(fù)雜性策略時(shí),新密碼必須符合以下原則:力攻擊。實(shí)
31、施密碼復(fù)雜性策略時(shí),新密碼必須符合以下原則:n長(zhǎng)度至少有長(zhǎng)度至少有6個(gè)字符,最多可包含個(gè)字符,最多可包含 128 個(gè)字符。個(gè)字符。n密碼包含以下密碼包含以下4類(lèi)字符中的類(lèi)字符中的3類(lèi):類(lèi): 英文大寫(xiě)字母英文大寫(xiě)字母 (a - z) 、英文小寫(xiě)字母英文小寫(xiě)字母 (a - z) 、10個(gè)基本數(shù)字個(gè)基本數(shù)字 (0 - 9) 、非字母數(shù)字、非字母數(shù)字(例如:(例如:!、$、# 或或 %)n字典中查不到,且不是命令名、人名或用戶名,不得包含字典中查不到,且不是命令名、人名或用戶名,不得包含全部或部分用戶名。全部或部分用戶名。n定期更改且與以前的密碼明顯不同的密碼。定期更改且與以前的密碼明顯不同的密碼。1
32、0.2.4管理憑據(jù)管理憑據(jù) 憑據(jù)是包含連接到憑據(jù)是包含連接到 sql server 之外的資源所需的身之外的資源所需的身份驗(yàn)證信息的記錄。份驗(yàn)證信息的記錄。 1憑據(jù)的構(gòu)成憑據(jù)的構(gòu)成n大多數(shù)憑據(jù)包含一個(gè)大多數(shù)憑據(jù)包含一個(gè) windows 登錄名和密碼。通過(guò)憑據(jù),登錄名和密碼。通過(guò)憑據(jù),使用使用 sql server身份驗(yàn)證連接到身份驗(yàn)證連接到 sql server 的用戶可以的用戶可以連接到連接到 windows 或其他或其他 sql server 以外的資源。以外的資源。n 在創(chuàng)建憑據(jù)之后,可以將憑據(jù)映射到登錄名。單個(gè)憑據(jù)在創(chuàng)建憑據(jù)之后,可以將憑據(jù)映射到登錄名。單個(gè)憑據(jù)可映射到多個(gè)可映射到多個(gè)
33、sql server 登錄名,但是一個(gè)登錄名,但是一個(gè)sql server 登錄名只能映射到一個(gè)憑據(jù)。登錄名只能映射到一個(gè)憑據(jù)。n系統(tǒng)憑據(jù)是自動(dòng)創(chuàng)建的,并與特定端點(diǎn)關(guān)聯(lián),其名稱以系統(tǒng)憑據(jù)是自動(dòng)創(chuàng)建的,并與特定端點(diǎn)關(guān)聯(lián),其名稱以 # 開(kāi)頭。開(kāi)頭。10.2.4管理憑據(jù)管理憑據(jù) 2. 創(chuàng)建憑據(jù)的過(guò)程創(chuàng)建憑據(jù)的過(guò)程下面介紹創(chuàng)建憑據(jù)平局下面介紹創(chuàng)建憑據(jù)平局pingju的一般步驟。的一般步驟。(1)在)在“對(duì)象資源管理器對(duì)象資源管理器”下,右擊下,右擊“安全性安全性”下的下的“憑據(jù)憑據(jù)”節(jié)點(diǎn),在彈出的快捷菜單中選擇節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建憑新建憑據(jù)據(jù)”命令命令。(2)在彈出的)在彈出的“新建憑據(jù)
34、新建憑據(jù)”對(duì)話框中,輸入憑據(jù)名稱對(duì)話框中,輸入憑據(jù)名稱(pingju)、標(biāo)識(shí)()、標(biāo)識(shí)(jiang-n9vjwxj11 administrator)和密碼,如圖)和密碼,如圖10.13所示,即可完成所示,即可完成創(chuàng)建憑據(jù)的操作。創(chuàng)建憑據(jù)的操作。10.2.4管理憑據(jù)管理憑據(jù) 2. 創(chuàng)建憑據(jù)的過(guò)程創(chuàng)建憑據(jù)的過(guò)程例例10.6 在在 sys.credentials 目錄視圖中查看憑據(jù)的有關(guān)目錄視圖中查看憑據(jù)的有關(guān)信息。信息。分析:用戶可以利用分析:用戶可以利用select語(yǔ)句在語(yǔ)句在sys.credentials目目錄視圖中查看憑據(jù)的相關(guān)信息。錄視圖中查看憑據(jù)的相關(guān)信息。程序代碼如下:程序代碼如下:s
35、elect * from sys.credentials例例10.7 創(chuàng)建映射到憑據(jù)的登錄名創(chuàng)建映射到憑據(jù)的登錄名分析:創(chuàng)建一個(gè)登錄名分析:創(chuàng)建一個(gè)登錄名user1,然后將其,然后將其映射到憑據(jù)映射到憑據(jù)pingju。程序代碼如下:程序代碼如下:create login user1 with password=1a2b3c4d creential=pingjugo 訪問(wèn)一個(gè)服務(wù)器并不意味著用戶自動(dòng)擁有數(shù)訪問(wèn)一個(gè)服務(wù)器并不意味著用戶自動(dòng)擁有數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。據(jù)庫(kù)的訪問(wèn)權(quán)限。dba以下列方式之一指定一個(gè)以下列方式之一指定一個(gè)數(shù)據(jù)庫(kù)登錄用戶:數(shù)據(jù)庫(kù)登錄用戶:n在每個(gè)用戶需要訪問(wèn)的數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)與
36、在每個(gè)用戶需要訪問(wèn)的數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)與用戶登錄名對(duì)應(yīng)的數(shù)據(jù)庫(kù)用戶。用戶登錄名對(duì)應(yīng)的數(shù)據(jù)庫(kù)用戶。n將數(shù)據(jù)庫(kù)配置為把登錄名或數(shù)據(jù)庫(kù)用戶作為數(shù)將數(shù)據(jù)庫(kù)配置為把登錄名或數(shù)據(jù)庫(kù)用戶作為數(shù)據(jù)庫(kù)角色的成員對(duì)待的方式,使得用戶能夠繼據(jù)庫(kù)角色的成員對(duì)待的方式,使得用戶能夠繼承角色中的所有權(quán)限。承角色中的所有權(quán)限。n將登錄名設(shè)置為使用默認(rèn)賬戶之一:將登錄名設(shè)置為使用默認(rèn)賬戶之一:guest或或dbo(數(shù)據(jù)庫(kù)擁有者)。(數(shù)據(jù)庫(kù)擁有者)。一旦授予了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,用戶就可以看到一旦授予了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,用戶就可以看到所有數(shù)據(jù)庫(kù)對(duì)象。所有數(shù)據(jù)庫(kù)對(duì)象。 10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色是在數(shù)據(jù)庫(kù)級(jí)別
37、定義的,并且存在于每數(shù)據(jù)庫(kù)角色是在數(shù)據(jù)庫(kù)級(jí)別定義的,并且存在于每個(gè)數(shù)據(jù)庫(kù)中,是對(duì)數(shù)據(jù)庫(kù)對(duì)象操作權(quán)限的集合。個(gè)數(shù)據(jù)庫(kù)中,是對(duì)數(shù)據(jù)庫(kù)對(duì)象操作權(quán)限的集合。sql server 2005的數(shù)據(jù)庫(kù)角色分為固定數(shù)據(jù)庫(kù)角的數(shù)據(jù)庫(kù)角色分為固定數(shù)據(jù)庫(kù)角色和用戶自定義數(shù)據(jù)庫(kù)角色。后者又分為標(biāo)準(zhǔn)角色和用戶自定義數(shù)據(jù)庫(kù)角色。后者又分為標(biāo)準(zhǔn)角色和應(yīng)用程序角色兩種。色和應(yīng)用程序角色兩種。1固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色n固定數(shù)據(jù)庫(kù)角色是數(shù)據(jù)庫(kù)級(jí)別的主體,可以管理固定數(shù)據(jù)庫(kù)角色是數(shù)據(jù)庫(kù)級(jí)別的主體,可以管理數(shù)據(jù)庫(kù)作用域的可保護(hù)對(duì)象,其中,數(shù)據(jù)庫(kù)作用域的可保護(hù)對(duì)象,其中,public公有公有角色比較特殊。角色比較特殊。n每個(gè)被授
38、予對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限的用戶會(huì)自動(dòng)成每個(gè)被授予對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限的用戶會(huì)自動(dòng)成為公有角色的成員,并繼承授予它的權(quán)限。為公有角色的成員,并繼承授予它的權(quán)限。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色1固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色一般情況下,一般情況下,public角色允許用戶做以下操作:角色允許用戶做以下操作:npublic角色為數(shù)據(jù)庫(kù)中所有用戶保持默認(rèn)權(quán)限。當(dāng)角色為數(shù)據(jù)庫(kù)中所有用戶保持默認(rèn)權(quán)限。當(dāng)尚未對(duì)某個(gè)用戶授予或拒絕對(duì)安全對(duì)象的特定權(quán)限尚未對(duì)某個(gè)用戶授予或拒絕對(duì)安全對(duì)象的特定權(quán)限時(shí),則該用戶將繼承授予該安全對(duì)象的時(shí),則該用戶將繼承授予該安全對(duì)象的 public 角色角色的權(quán)限。的權(quán)限。n通過(guò)通過(guò)gu
39、est賬戶訪問(wèn)任意數(shù)據(jù)庫(kù)。賬戶訪問(wèn)任意數(shù)據(jù)庫(kù)。n用某些系統(tǒng)存儲(chǔ)過(guò)程顯示用某些系統(tǒng)存儲(chǔ)過(guò)程顯示master數(shù)據(jù)庫(kù)中的信息,數(shù)據(jù)庫(kù)中的信息,查看系統(tǒng)表。查看系統(tǒng)表。n執(zhí)行一些不需要權(quán)限的語(yǔ)句,例如執(zhí)行一些不需要權(quán)限的語(yǔ)句,例如print。表表10.6具體列出了所有數(shù)據(jù)庫(kù)角色的功能。具體列出了所有數(shù)據(jù)庫(kù)角色的功能。固定服務(wù)器角色固定服務(wù)器角色 功能簡(jiǎn)介功能簡(jiǎn)介public維護(hù)全部默認(rèn)權(quán)限維護(hù)全部默認(rèn)權(quán)限db_denydatawriter不能對(duì)數(shù)據(jù)庫(kù)中的任何表執(zhí)行增加、不能對(duì)數(shù)據(jù)庫(kù)中的任何表執(zhí)行增加、修改和刪除數(shù)據(jù)操作修改和刪除數(shù)據(jù)操作db_denydatareader不能讀取數(shù)據(jù)庫(kù)中任何表中的數(shù)據(jù)不
40、能讀取數(shù)據(jù)庫(kù)中任何表中的數(shù)據(jù)db_datawriter 能夠增加、修改和刪除表中的數(shù)據(jù)能夠增加、修改和刪除表中的數(shù)據(jù)db_datareader能且僅能對(duì)數(shù)據(jù)庫(kù)中的任何表執(zhí)行能且僅能對(duì)數(shù)據(jù)庫(kù)中的任何表執(zhí)行select操作,讀取所有表的信息操作,讀取所有表的信息db_backupoperator可以發(fā)出可以發(fā)出dbcc、checkpoint和和backup語(yǔ)句語(yǔ)句db_securityadmin可以管理全部權(quán)限、對(duì)象所有權(quán)、角可以管理全部權(quán)限、對(duì)象所有權(quán)、角色和用戶色和用戶db_addladmin可以發(fā)出可以發(fā)出all ddl但不能使用但不能使用grant、revoke或或deny語(yǔ)句語(yǔ)句db_a
41、ccessadmin可以增加或者刪除用戶標(biāo)識(shí)可以增加或者刪除用戶標(biāo)識(shí)db_owner數(shù)據(jù)庫(kù)的所有者,可以對(duì)所擁有的數(shù)據(jù)庫(kù)的所有者,可以對(duì)所擁有的數(shù)據(jù)庫(kù)執(zhí)行任何操作數(shù)據(jù)庫(kù)執(zhí)行任何操作10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色1固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色對(duì)于某個(gè)數(shù)據(jù)庫(kù)而言,每一個(gè)數(shù)據(jù)庫(kù)角色都有它對(duì)于某個(gè)數(shù)據(jù)庫(kù)而言,每一個(gè)數(shù)據(jù)庫(kù)角色都有它特定的許可??梢杂孟到y(tǒng)過(guò)程特定的許可。可以用系統(tǒng)過(guò)程sp_dbfixdrolepermission來(lái)查看每一個(gè)固定數(shù)據(jù)來(lái)查看每一個(gè)固定數(shù)據(jù)庫(kù)角色的許可。如果不指定庫(kù)角色的許可。如果不指定role的值,所有固定的值,所有固定服務(wù)器角色的許可都會(huì)顯示出來(lái)。服務(wù)器角色的許可都會(huì)
42、顯示出來(lái)。這個(gè)存儲(chǔ)過(guò)程的語(yǔ)法結(jié)構(gòu)為:這個(gè)存儲(chǔ)過(guò)程的語(yǔ)法結(jié)構(gòu)為:sp_dbfixedrolepermission rolename=role例如:例如: exec sp_dbfixedrolepermission db_ddladmin10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色2. 自定義數(shù)據(jù)庫(kù)角色自定義數(shù)據(jù)庫(kù)角色可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)角色,并賦予對(duì)數(shù)據(jù)庫(kù)作用域和架構(gòu)可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)角色,并賦予對(duì)數(shù)據(jù)庫(kù)作用域和架構(gòu)作用域的可保護(hù)對(duì)象的訪問(wèn)權(quán)限。一個(gè)用戶可以是若作用域的可保護(hù)對(duì)象的訪問(wèn)權(quán)限。一個(gè)用戶可以是若干個(gè)數(shù)據(jù)庫(kù)角色的成員。干個(gè)數(shù)據(jù)庫(kù)角色的成員。創(chuàng)建角色的步驟如下創(chuàng)建角色的步驟如下(1)在)在“對(duì)象資源
43、管理器對(duì)象資源管理器”下,展開(kāi)數(shù)據(jù)庫(kù)下,展開(kāi)數(shù)據(jù)庫(kù)teaching,右擊右擊“安全性安全性”|“角色角色”,在彈出的快捷菜單中選擇,在彈出的快捷菜單中選擇“新建新建”|“數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色”命令。命令。(2)在彈出的)在彈出的“數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色-新建新建”窗體中的窗體中的“常規(guī)常規(guī)”選選項(xiàng)卡中,輸入角色名項(xiàng)卡中,輸入角色名jsj09、所有者名、所有者名te_login,并選擇,并選擇架構(gòu),如圖架構(gòu),如圖10.15所示。所示。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色2. 自定義數(shù)據(jù)庫(kù)角色自定義數(shù)據(jù)庫(kù)角色創(chuàng)建角色的步驟如下創(chuàng)建角色的步驟如下(3)在)在“安全對(duì)象安全對(duì)象”選項(xiàng)卡中,單擊選項(xiàng)卡中,單
44、擊“添加添加”按鈕,在彈出的按鈕,在彈出的“添加對(duì)象添加對(duì)象”對(duì)話框中,選擇對(duì)話框中,選擇其中一項(xiàng),如其中一項(xiàng),如“特定對(duì)象。特定對(duì)象。(4)單擊)單擊“確定確定”按鈕,按照示例提示選擇數(shù)按鈕,按照示例提示選擇數(shù)據(jù)對(duì)象。據(jù)對(duì)象。(5)單擊)單擊“確定確定”按鈕,返回如圖按鈕,返回如圖10.18所示的所示的“安全對(duì)象安全對(duì)象”選項(xiàng)卡中為表設(shè)置權(quán)限后。單擊選項(xiàng)卡中為表設(shè)置權(quán)限后。單擊“確定確定”按鈕,數(shù)據(jù)庫(kù)角色按鈕,數(shù)據(jù)庫(kù)角色jsj09創(chuàng)建完畢。創(chuàng)建完畢。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色3. 應(yīng)用程序角色應(yīng)用程序角色應(yīng)用程序角色應(yīng)用程序角色(application role)是在沒(méi)有成員的是在沒(méi)
45、有成員的數(shù)據(jù)庫(kù)級(jí)別上定義的,數(shù)據(jù)庫(kù)級(jí)別上定義的,microsoft創(chuàng)建應(yīng)用程序創(chuàng)建應(yīng)用程序角色目的是防止用戶直接訪問(wèn)底層表數(shù)據(jù)。應(yīng)角色目的是防止用戶直接訪問(wèn)底層表數(shù)據(jù)。應(yīng)用程序角色可以加強(qiáng)對(duì)某一個(gè)特別的應(yīng)用程序用程序角色可以加強(qiáng)對(duì)某一個(gè)特別的應(yīng)用程序的安全性。的安全性。例如,某公司職員只是用某個(gè)特定的應(yīng)用程序來(lái)例如,某公司職員只是用某個(gè)特定的應(yīng)用程序來(lái)修改員工數(shù)據(jù)信息,那么就可以為其建立應(yīng)用修改員工數(shù)據(jù)信息,那么就可以為其建立應(yīng)用程序角色。程序角色。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色3. 應(yīng)用程序角色應(yīng)用程序角色應(yīng)用程序角色和所有其他的角色都有很大不同。應(yīng)用程序角色和所有其他的角色都有很大不同
46、。n應(yīng)用程序角色沒(méi)有成員,因?yàn)樗鼈冎皇菓?yīng)用程序中使應(yīng)用程序角色沒(méi)有成員,因?yàn)樗鼈冎皇菓?yīng)用程序中使用,所以不需要直接對(duì)某些用戶賦予權(quán)限。用,所以不需要直接對(duì)某些用戶賦予權(quán)限。n必須為應(yīng)用程序角色設(shè)計(jì)一個(gè)密碼以激活它。當(dāng)應(yīng)用必須為應(yīng)用程序角色設(shè)計(jì)一個(gè)密碼以激活它。當(dāng)應(yīng)用程序角色被應(yīng)用程序的會(huì)話激活以后,會(huì)話就會(huì)失去程序角色被應(yīng)用程序的會(huì)話激活以后,會(huì)話就會(huì)失去所有屬于登錄、用戶賬號(hào)或角色的權(quán)限,會(huì)話只能通所有屬于登錄、用戶賬號(hào)或角色的權(quán)限,會(huì)話只能通過(guò)過(guò)guest 用戶賬號(hào)的權(quán)限來(lái)訪問(wèn)其他數(shù)據(jù)庫(kù)。用戶賬號(hào)的權(quán)限來(lái)訪問(wèn)其他數(shù)據(jù)庫(kù)。n如果在數(shù)據(jù)庫(kù)中沒(méi)有如果在數(shù)據(jù)庫(kù)中沒(méi)有g(shù)uest 用戶賬號(hào)的話,會(huì)話就
47、不能用戶賬號(hào)的話,會(huì)話就不能獲得訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限。獲得訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色3. 應(yīng)用程序角色應(yīng)用程序角色(1)利用)利用sql server management studio創(chuàng)建應(yīng)創(chuàng)建應(yīng)用程序角色的步驟用程序角色的步驟 在在“對(duì)象資源管理器對(duì)象資源管理器”下,展開(kāi)數(shù)據(jù)庫(kù)下,展開(kāi)數(shù)據(jù)庫(kù)teaching,右擊,右擊“安全性安全性”|“角色角色”,在彈出的,在彈出的快捷菜單中選擇快捷菜單中選擇“新建新建”|“應(yīng)用程序角色應(yīng)用程序角色”命命令。令。 在彈出的在彈出的“應(yīng)用程序角色應(yīng)用程序角色-新建新建”對(duì)話框的對(duì)話框的“常規(guī)常規(guī)”選項(xiàng)卡中,輸入角色名稱、默認(rèn)架構(gòu)選項(xiàng)卡
48、中,輸入角色名稱、默認(rèn)架構(gòu)和密碼,如圖和密碼,如圖10.19所示。所示。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色3. 應(yīng)用程序角色應(yīng)用程序角色(1)利用)利用sql server management studio創(chuàng)建應(yīng)用程序創(chuàng)建應(yīng)用程序角色的步驟角色的步驟 參照創(chuàng)建數(shù)據(jù)庫(kù)角色時(shí)的步驟設(shè)置參照創(chuàng)建數(shù)據(jù)庫(kù)角色時(shí)的步驟設(shè)置“安全對(duì)象安全對(duì)象”選項(xiàng)選項(xiàng)卡后,單擊卡后,單擊“確定確定”按鈕,應(yīng)用程序角色建成。按鈕,應(yīng)用程序角色建成。 查看創(chuàng)建應(yīng)用程序角色的腳本,應(yīng)用程序角色查看創(chuàng)建應(yīng)用程序角色的腳本,應(yīng)用程序角色jsj10的的腳本如下:腳本如下:use teachinggocreate applicatio
49、n role jsj10 with default_schema = dbo, password = naaaaaa10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色3. 應(yīng)用程序角色應(yīng)用程序角色(2)使用系統(tǒng)過(guò)程)使用系統(tǒng)過(guò)程sp_addapprole來(lái)創(chuàng)建應(yīng)用程序角色,來(lái)創(chuàng)建應(yīng)用程序角色,并且賦予它們權(quán)限,這個(gè)過(guò)程的語(yǔ)法結(jié)構(gòu)為:并且賦予它們權(quán)限,這個(gè)過(guò)程的語(yǔ)法結(jié)構(gòu)為: sp_addapprolerolenamerolepasswd_name=password(3)激活應(yīng)用程序角色)激活應(yīng)用程序角色:當(dāng)一個(gè)連接啟動(dòng)以后,必須執(zhí)行當(dāng)一個(gè)連接啟動(dòng)以后,必須執(zhí)行系統(tǒng)過(guò)程系統(tǒng)過(guò)程sp_setapprole來(lái)激活應(yīng)用
50、程序角色所擁有的權(quán)來(lái)激活應(yīng)用程序角色所擁有的權(quán)限。這個(gè)過(guò)程的語(yǔ)法結(jié)構(gòu)為:限。這個(gè)過(guò)程的語(yǔ)法結(jié)構(gòu)為:sp_setapprole rolenamerolepasswd=password ,encrypt=encrypt_style例如,激活應(yīng)用程序角色例如,激活應(yīng)用程序角色jsj10的命令如下:的命令如下:exec sp_setapprole jsj10, aaaaaa當(dāng)用系統(tǒng)存儲(chǔ)過(guò)程當(dāng)用系統(tǒng)存儲(chǔ)過(guò)程sp_setapprole激活應(yīng)用程序角激活應(yīng)用程序角色的時(shí)候,可以了解到應(yīng)用程序角色總是和數(shù)據(jù)庫(kù)色的時(shí)候,可以了解到應(yīng)用程序角色總是和數(shù)據(jù)庫(kù)綁定的,即應(yīng)用的范圍是當(dāng)前數(shù)據(jù)庫(kù),如果在會(huì)話綁定的,即應(yīng)用
51、的范圍是當(dāng)前數(shù)據(jù)庫(kù),如果在會(huì)話中改變了當(dāng)前數(shù)據(jù)庫(kù),那么你就只能做那個(gè)數(shù)據(jù)庫(kù)中改變了當(dāng)前數(shù)據(jù)庫(kù),那么你就只能做那個(gè)數(shù)據(jù)庫(kù)中允許的操作。中允許的操作。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色4管理數(shù)據(jù)庫(kù)架構(gòu)管理數(shù)據(jù)庫(kù)架構(gòu)架構(gòu)架構(gòu)(schema)是管理數(shù)據(jù)對(duì)象的邏輯單位,是形是管理數(shù)據(jù)對(duì)象的邏輯單位,是形成單個(gè)命名空間的數(shù)據(jù)庫(kù)對(duì)象的集合。成單個(gè)命名空間的數(shù)據(jù)庫(kù)對(duì)象的集合。多個(gè)用戶可以共享一個(gè)默認(rèn)架構(gòu)以進(jìn)行統(tǒng)一名稱多個(gè)用戶可以共享一個(gè)默認(rèn)架構(gòu)以進(jìn)行統(tǒng)一名稱解析。開(kāi)發(fā)人員通過(guò)共享默認(rèn)架構(gòu)可以將共享解析。開(kāi)發(fā)人員通過(guò)共享默認(rèn)架構(gòu)可以將共享對(duì)象存儲(chǔ)在為特定應(yīng)用程序?qū)iT(mén)創(chuàng)建的架構(gòu)中,對(duì)象存儲(chǔ)在為特定應(yīng)用程序?qū)iT(mén)創(chuàng)建
52、的架構(gòu)中,而不是而不是 dbo 架構(gòu)中。架構(gòu)中。sql server 2005在引入架構(gòu)后,訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象在引入架構(gòu)后,訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象的完全限定模式為:的完全限定模式為:sever.database.schema.object10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色4管理數(shù)據(jù)庫(kù)架構(gòu)管理數(shù)據(jù)庫(kù)架構(gòu)下面介紹創(chuàng)建數(shù)據(jù)庫(kù)架構(gòu)的步驟。下面介紹創(chuàng)建數(shù)據(jù)庫(kù)架構(gòu)的步驟。(1)在)在“對(duì)象資源管理器對(duì)象資源管理器”下,展開(kāi)數(shù)據(jù)庫(kù)下,展開(kāi)數(shù)據(jù)庫(kù)teaching,右擊,右擊“安全性安全性”|“架構(gòu)架構(gòu)”,在快捷菜單中選擇,在快捷菜單中選擇“新建架構(gòu)新建架構(gòu)”命令。命令。(2)在彈出的)在彈出的“架構(gòu)架構(gòu)-新建新建”窗體中
53、的窗體中的“常規(guī)常規(guī)”選項(xiàng)卡中,輸選項(xiàng)卡中,輸入架構(gòu)名入架構(gòu)名schema1、架構(gòu)所有者名、架構(gòu)所有者名public。(3)在)在“權(quán)限權(quán)限”選項(xiàng)卡中,單擊選項(xiàng)卡中,單擊“添加添加”按鈕,在彈出的按鈕,在彈出的“選擇用戶和角色選擇用戶和角色”對(duì)話框中,選擇對(duì)象類(lèi)型和對(duì)象。對(duì)話框中,選擇對(duì)象類(lèi)型和對(duì)象。(4)單擊)單擊“確定確定”按鈕,在如圖按鈕,在如圖10.22所示的所示的“權(quán)限權(quán)限”選項(xiàng)卡選項(xiàng)卡中為用戶和角色設(shè)置權(quán)限后。單擊中為用戶和角色設(shè)置權(quán)限后。單擊“確定確定”按鈕,數(shù)據(jù)庫(kù)架按鈕,數(shù)據(jù)庫(kù)架構(gòu)構(gòu)schema1創(chuàng)建完畢。創(chuàng)建完畢。10.3.1 數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)角色4管理數(shù)據(jù)庫(kù)架構(gòu)管理數(shù)據(jù)庫(kù)架
54、構(gòu)下面介紹創(chuàng)建數(shù)據(jù)庫(kù)架構(gòu)的步驟。下面介紹創(chuàng)建數(shù)據(jù)庫(kù)架構(gòu)的步驟。(5)對(duì))對(duì)“架構(gòu)架構(gòu)”項(xiàng)進(jìn)行刷新,即可觀察到新建的架構(gòu)項(xiàng)進(jìn)行刷新,即可觀察到新建的架構(gòu)schema1。還可以通過(guò)執(zhí)行創(chuàng)建腳本的操作查看創(chuàng)建架構(gòu)的代碼。還可以通過(guò)執(zhí)行創(chuàng)建腳本的操作查看創(chuàng)建架構(gòu)的代碼。同樣同樣:n也可以通過(guò)也可以通過(guò)sql server management studio圖形工具和圖形工具和transact-sql命令對(duì)架構(gòu)進(jìn)行修改和刪除。命令對(duì)架構(gòu)進(jìn)行修改和刪除。n在在sql server 2005中,多個(gè)用戶可以通過(guò)角色和成員身份擁中,多個(gè)用戶可以通過(guò)角色和成員身份擁有一個(gè)架構(gòu),可以對(duì)該架構(gòu)進(jìn)行安全權(quán)限的設(shè)置。有
55、一個(gè)架構(gòu),可以對(duì)該架構(gòu)進(jìn)行安全權(quán)限的設(shè)置。n多個(gè)用戶可以共享一個(gè)默認(rèn)架構(gòu),進(jìn)行統(tǒng)一的名稱解析。刪多個(gè)用戶可以共享一個(gè)默認(rèn)架構(gòu),進(jìn)行統(tǒng)一的名稱解析。刪除數(shù)據(jù)庫(kù)用戶不必再修改和測(cè)試顯示引用這些對(duì)象的應(yīng)用程除數(shù)據(jù)庫(kù)用戶不必再修改和測(cè)試顯示引用這些對(duì)象的應(yīng)用程序。序。10.3.2 管理數(shù)據(jù)庫(kù)用戶管理數(shù)據(jù)庫(kù)用戶數(shù)據(jù)庫(kù)用戶是訪問(wèn)某個(gè)特定數(shù)據(jù)庫(kù)的主體。數(shù)據(jù)庫(kù)用戶是訪問(wèn)某個(gè)特定數(shù)據(jù)庫(kù)的主體。1利用利用sql server management studio創(chuàng)建創(chuàng)建數(shù)據(jù)庫(kù)用戶數(shù)據(jù)庫(kù)用戶(1)在)在“對(duì)象資源管理器對(duì)象資源管理器”下,展開(kāi)數(shù)據(jù)庫(kù)下,展開(kāi)數(shù)據(jù)庫(kù)teaching,右擊,右擊“安全性安全性”|“用戶用戶
56、”,在彈,在彈出的快捷菜單中選擇出的快捷菜單中選擇“新建新建”|“用戶用戶”命令。命令。(2)在彈出的)在彈出的“數(shù)據(jù)庫(kù)用戶數(shù)據(jù)庫(kù)用戶-新建新建”窗體中的窗體中的“常規(guī)常規(guī)”選項(xiàng)卡中,輸入用戶名選項(xiàng)卡中,輸入用戶名hans、選擇、選擇登錄名登錄名te_login,并選擇架構(gòu),如圖,并選擇架構(gòu),如圖10.23所所示。也可以指定示。也可以指定“默認(rèn)架構(gòu)默認(rèn)架構(gòu)”項(xiàng)。項(xiàng)。 10.3.2 管理數(shù)據(jù)庫(kù)用戶管理數(shù)據(jù)庫(kù)用戶數(shù)據(jù)庫(kù)用戶是訪問(wèn)某個(gè)特定數(shù)據(jù)庫(kù)的主體。數(shù)據(jù)庫(kù)用戶是訪問(wèn)某個(gè)特定數(shù)據(jù)庫(kù)的主體。1利用利用sql server management studio創(chuàng)建創(chuàng)建數(shù)據(jù)庫(kù)用戶數(shù)據(jù)庫(kù)用戶(3)在)在“安全
57、對(duì)象安全對(duì)象”選項(xiàng)卡中,添加用戶的安全對(duì)選項(xiàng)卡中,添加用戶的安全對(duì)象。象。(4)單擊)單擊“腳本腳本”按鈕,可以生成如下腳本代碼:按鈕,可以生成如下腳本代碼:(5)單擊)單擊“確定確定”按鈕,數(shù)據(jù)庫(kù)用戶按鈕,數(shù)據(jù)庫(kù)用戶hans創(chuàng)建完畢。創(chuàng)建完畢。10.3.2 管理數(shù)據(jù)庫(kù)用戶管理數(shù)據(jù)庫(kù)用戶2利用利用transact-sql命令創(chuàng)建數(shù)據(jù)庫(kù)用戶命令創(chuàng)建數(shù)據(jù)庫(kù)用戶向當(dāng)前數(shù)據(jù)庫(kù)添加用戶的向當(dāng)前數(shù)據(jù)庫(kù)添加用戶的transact-sql 語(yǔ)法如下:語(yǔ)法如下:create user user_name for | from login login_name | certificate cert_name |
58、asymmetric key asym_key_name | without login with default_schema = schema_name 例例10.8 在在teaching數(shù)據(jù)庫(kù)中創(chuàng)建用戶數(shù)據(jù)庫(kù)中創(chuàng)建用戶abolcreate login abol with password = 327shy;use teaching;create user abol;go10.3.3 特殊用戶特殊用戶所有所有 sql server 2005數(shù)據(jù)庫(kù)中均提供的一種數(shù)據(jù)庫(kù)中均提供的一種特殊用戶,不能從任何數(shù)據(jù)庫(kù)中刪除該用戶。特殊用戶,不能從任何數(shù)據(jù)庫(kù)中刪除該用戶。1guest用戶用戶guest(
59、游客)用戶在默認(rèn)情況下存在于所有(游客)用戶在默認(rèn)情況下存在于所有數(shù)據(jù)庫(kù),且是禁用的。授予數(shù)據(jù)庫(kù),且是禁用的。授予guest用戶的權(quán)用戶的權(quán)限由在數(shù)據(jù)庫(kù)中沒(méi)有賬號(hào)的用戶繼承。限由在數(shù)據(jù)庫(kù)中沒(méi)有賬號(hào)的用戶繼承。10.3.3 特殊用戶特殊用戶1guest用戶用戶guest用戶還具有如下特點(diǎn):用戶還具有如下特點(diǎn):(1)guest 用戶不能刪除,但可以通過(guò)在用戶不能刪除,但可以通過(guò)在 master 和和 temp 以外的任何數(shù)據(jù)庫(kù)中執(zhí)行以外的任何數(shù)據(jù)庫(kù)中執(zhí)行 revoke connect from guest來(lái)撤消該用戶的來(lái)撤消該用戶的connect 權(quán)限,從而禁用該用戶。權(quán)限,從而禁用該用戶。(2)
60、guest用戶允許沒(méi)有賬號(hào)的用戶訪問(wèn)數(shù)據(jù)庫(kù)。用戶允許沒(méi)有賬號(hào)的用戶訪問(wèn)數(shù)據(jù)庫(kù)。(3)應(yīng)用程序角色是數(shù)據(jù)庫(kù)級(jí)別的主體,只能通)應(yīng)用程序角色是數(shù)據(jù)庫(kù)級(jí)別的主體,只能通過(guò)其他數(shù)據(jù)庫(kù)中授予過(guò)其他數(shù)據(jù)庫(kù)中授予guest 用戶的權(quán)限來(lái)訪問(wèn)這用戶的權(quán)限來(lái)訪問(wèn)這些數(shù)據(jù)庫(kù)。因此,任何已禁用些數(shù)據(jù)庫(kù)。因此,任何已禁用guest用戶的數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)庫(kù)對(duì)其他數(shù)據(jù)庫(kù)中的應(yīng)用程序角色都是不可訪問(wèn)的。對(duì)其他數(shù)據(jù)庫(kù)中的應(yīng)用程序角色都是不可訪問(wèn)的。10.3.3 特殊用戶特殊用戶2dbo用戶用戶dbo是具有在數(shù)據(jù)庫(kù)中執(zhí)行所有活動(dòng)的暗示性權(quán)限的用戶。是具有在數(shù)據(jù)庫(kù)中執(zhí)行所有活動(dòng)的暗示性權(quán)限的用戶。固定服務(wù)器角色固定服務(wù)器角色sy
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生管理證書(shū)考試的影響因素試題及答案
- 藥物療效評(píng)估標(biāo)準(zhǔn)考試試題及答案
- 心理咨詢師考試中學(xué)員心理疏導(dǎo)策略試題及答案
- 心理咨詢師考試角色扮演演練試題及答案
- 藥物經(jīng)濟(jì)學(xué)方法應(yīng)用試題及答案
- 深入討論衛(wèi)生管理考點(diǎn)試題及答案
- 知識(shí)分享與專(zhuān)利的試題及答案
- 單招大專(zhuān)筆試題及答案
- 衛(wèi)生管理與服務(wù)效率考題
- 藥物信息傳播方式試題及答案
- GA/T 1356-2018國(guó)家標(biāo)準(zhǔn)GB/T 25724-2017符合性測(cè)試規(guī)范
- 杜威《民主主義與教育》課件
- 強(qiáng)夯監(jiān)理實(shí)施細(xì)則
- 2022郵儲(chǔ)銀行綜合柜員(中級(jí))理論考試題庫(kù)大全-上(單選、多選題)
- 《財(cái)務(wù)風(fēng)險(xiǎn)的識(shí)別與評(píng)估管理國(guó)內(nèi)外文獻(xiàn)綜述》
- 《三角形的外角》優(yōu)秀課件
- 如何進(jìn)行社會(huì)調(diào)查研究課件
- 鵪鶉蛋脫殼機(jī)的設(shè)計(jì)
- 項(xiàng)目管理進(jìn)度表模板(全流程)
- 鍋爐專(zhuān)業(yè)術(shù)語(yǔ)解釋及英文翻譯對(duì)照
- 《小石潭記》作業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論