版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》項(xiàng)目9數(shù)據(jù)庫(kù)安全管理主講老師:XXX時(shí)間:XX年XX月了解SQLServer2022的身份驗(yàn)證模式。了解服務(wù)器角色、用戶和數(shù)據(jù)庫(kù)角色、用戶的概念。掌握使用SSMS和T-SQL創(chuàng)建、刪除服務(wù)器登錄賬號(hào)的方法。掌握使用SSMS和T-SQL創(chuàng)建、刪除數(shù)據(jù)庫(kù)用戶的方法。了解權(quán)限的種類、作用。掌握使用SSMS對(duì)角色、用戶、語(yǔ)句和數(shù)據(jù)對(duì)象授權(quán)的方法。掌握使用T-SQL對(duì)語(yǔ)句、數(shù)據(jù)對(duì)象授權(quán)的方法。知識(shí)目標(biāo)能根據(jù)安全性需求設(shè)置登錄身份驗(yàn)證模式。能根據(jù)安全性需求創(chuàng)建登錄名和數(shù)據(jù)庫(kù)用戶。能根據(jù)需求進(jìn)行架構(gòu)、角色和權(quán)限管理。能力目標(biāo)嚴(yán)格遵守網(wǎng)絡(luò)安全法和數(shù)據(jù)安全法,維護(hù)國(guó)家和人民的利益不受侵犯。積累學(xué)識(shí)經(jīng)驗(yàn),培養(yǎng)數(shù)據(jù)庫(kù)管理員的工匠精神。素質(zhì)目標(biāo)目錄CONTENTS9.1數(shù)據(jù)庫(kù)安全管理概述9.2SQLServer服務(wù)器 9.3數(shù)據(jù)庫(kù)的安全管理9.4數(shù)據(jù)對(duì)象的安全管理 數(shù)據(jù)庫(kù)安全管理概述9.1數(shù)據(jù)庫(kù)的安全性管理是指向用戶分配特定的權(quán)限來(lái)決定用戶是否可以登錄到指定的SQLServer數(shù)據(jù)庫(kù),是否可以對(duì)數(shù)據(jù)庫(kù)對(duì)象實(shí)施某種操作等。SQLServer的安全管理主要由“服務(wù)器安全驗(yàn)證、數(shù)據(jù)庫(kù)安全驗(yàn)證、數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)限驗(yàn)證”等三個(gè)層次的驗(yàn)證機(jī)制組成,也就是說(shuō),用戶要想訪問(wèn)數(shù)據(jù)庫(kù)的數(shù)據(jù)必須經(jīng)過(guò)三個(gè)階段的驗(yàn)證,只有當(dāng)三個(gè)階段的驗(yàn)證都獲得通過(guò)時(shí),用戶才能對(duì)數(shù)據(jù)進(jìn)行權(quán)限范圍內(nèi)的操作。1.服務(wù)器安全驗(yàn)證服務(wù)器安全驗(yàn)證是指操作系統(tǒng)或數(shù)據(jù)庫(kù)服務(wù)器對(duì)登錄賬戶進(jìn)行身份的合法性驗(yàn)證。這種驗(yàn)證是驗(yàn)證試圖連接到SQLServer服務(wù)器上的登錄賬號(hào)及其密碼的合法性,也是SQLServer安全驗(yàn)證的第一步,只有通過(guò)服務(wù)器驗(yàn)證后,用戶才可以連接到SQLServer服務(wù)器。9.1數(shù)據(jù)庫(kù)安全管理概述2.?dāng)?shù)據(jù)庫(kù)安全驗(yàn)證登錄賬戶通過(guò)SQLServer服務(wù)器的安全性驗(yàn)證之后,接著進(jìn)行數(shù)據(jù)庫(kù)的安全性驗(yàn)證。數(shù)據(jù)庫(kù)的安全性驗(yàn)證是指對(duì)連接到SQLServer服務(wù)器的登錄賬戶進(jìn)行數(shù)據(jù)庫(kù)用戶映射的合法性驗(yàn)證。登錄賬戶登錄到數(shù)據(jù)庫(kù)服務(wù)器后,還必須擁有與具體的數(shù)據(jù)庫(kù)相對(duì)應(yīng)的用戶映射及其操作權(quán)限,否則,數(shù)據(jù)庫(kù)將繼續(xù)拒絕登錄賬戶對(duì)具體數(shù)據(jù)庫(kù)的訪問(wèn)操作。服務(wù)器的登錄賬戶與數(shù)據(jù)庫(kù)用戶是兩個(gè)完全不同的對(duì)象,登錄賬戶是基于SQLServer實(shí)例的,用于連接服務(wù)器實(shí)例,它擁有操作服務(wù)器的一些權(quán)限;數(shù)據(jù)庫(kù)用戶是基于具體數(shù)據(jù)庫(kù)的,用于登錄數(shù)據(jù)庫(kù),它擁有操作數(shù)據(jù)庫(kù)的某些權(quán)限。一個(gè)登錄賬號(hào)可以對(duì)應(yīng)多個(gè)不同的數(shù)據(jù)庫(kù)用戶。在默認(rèn)情況下,登錄賬號(hào)和數(shù)據(jù)庫(kù)用戶名的名稱相同。3.?dāng)?shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)限驗(yàn)證登錄賬戶通過(guò)數(shù)據(jù)庫(kù)的安全性驗(yàn)證之后,接著進(jìn)行數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限驗(yàn)證。訪問(wèn)權(quán)限驗(yàn)證是指數(shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限的合法性驗(yàn)證。數(shù)據(jù)庫(kù)管理人員通過(guò)對(duì)數(shù)據(jù)庫(kù)用戶的授權(quán)操作,可以將權(quán)限授權(quán)到數(shù)據(jù)的操作語(yǔ)句級(jí)別。9.1數(shù)據(jù)庫(kù)安全管理概述SQLServer服務(wù)器的安全管理9.2登錄標(biāo)識(shí)是SQLServer服務(wù)器接收用戶登錄連接時(shí)識(shí)別用戶的標(biāo)識(shí),用戶必須使用一個(gè)登錄賬號(hào)才能連接到SQLServer中。SQLServer可以識(shí)別兩種類型的登錄驗(yàn)證機(jī)制:Windows驗(yàn)證機(jī)制和SQLServer驗(yàn)證機(jī)制。當(dāng)使用Window驗(yàn)證機(jī)制時(shí),由Windows賬戶或者組控制用戶對(duì)SQLServer系統(tǒng)進(jìn)行訪問(wèn)。這時(shí),用戶不必提供SQLServer的登錄賬號(hào)和密碼就能連接到系統(tǒng)。但是,在用戶連接之前,SQLServer系統(tǒng)管理員必須定義Windows賬戶或組是有效的SQLServer的登錄賬戶。當(dāng)使用SQLServer驗(yàn)證機(jī)制時(shí),SQLServer系統(tǒng)管理員定義SQLServer的登錄賬號(hào)和密碼。當(dāng)用戶連接SQLServer時(shí),必須提供登錄賬號(hào)和密碼。9.2.1身份驗(yàn)證模式1.Windows身份驗(yàn)證模式SQLServer使用Windows身份驗(yàn)證模式時(shí),用戶必須使用Windows賬號(hào)先登錄Windows系統(tǒng),當(dāng)用戶試圖連接SQLServer服務(wù)器時(shí),SQLServer服務(wù)器將請(qǐng)求Windows操作系統(tǒng)對(duì)登錄用戶的賬號(hào)和密碼進(jìn)行驗(yàn)證,以決定該登錄賬號(hào)是否可以連接到SQLServer服務(wù)器成為數(shù)據(jù)庫(kù)用戶。Windows驗(yàn)證模式與SQLServer驗(yàn)證模式相比,其優(yōu)點(diǎn)是,用戶啟動(dòng)Windows進(jìn)入SQLServer不需要兩套登錄賬號(hào)和密碼,簡(jiǎn)化了系統(tǒng)操作。更重要的是,Windows驗(yàn)證模式充分利用了Windows強(qiáng)大的安全性能及用戶賬號(hào)管理能力。Windows安全管理具有眾多特點(diǎn),如安全合法性、口令加密、對(duì)密碼最小長(zhǎng)度進(jìn)行限制、設(shè)置密碼期限以及多次輸入無(wú)效密碼后鎖定賬戶等。因?yàn)樵赪indows中可使用用戶組,所以當(dāng)使用Windows驗(yàn)證模式時(shí),總是把用戶歸入一定的Windows用戶組,以便在SQLServer中設(shè)置Windows用戶組進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)的權(quán)限時(shí),能夠把這種權(quán)限傳遞給每一個(gè)用戶。當(dāng)新增加一個(gè)登錄用戶時(shí),也總把它歸入某一用戶組,這種方法可以使用戶更為方便地進(jìn)入系統(tǒng),并消除逐一為每個(gè)用戶設(shè)置數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限而帶來(lái)的不必要的工作量。9.2.1身份驗(yàn)證模式2.SQLServer驗(yàn)證模式有一些情況需要使用SQLServer賬號(hào)登錄,例如登錄安裝在非Windows環(huán)境的SQLServer。另外,Intemet用戶登錄SQLServer時(shí)只能用SQLServer賬號(hào)。當(dāng)使用SQLServer驗(yàn)證時(shí),系統(tǒng)管理員需創(chuàng)建一個(gè)登錄賬號(hào)和密碼,并將其存儲(chǔ)在SQLServer中;當(dāng)用戶連接SQLServer時(shí),必須提供登錄賬號(hào)和密碼。在該驗(yàn)證模式下,用戶在連接SQLServer時(shí)必須提供登錄賬號(hào)和登錄密碼,SQLServer自己執(zhí)行驗(yàn)證處理。如果輸入的登錄信息與SQLServer系統(tǒng)表中的記錄相匹配,就允許該用戶登錄到SQLServer;否則拒絕該用戶的連接請(qǐng)求。9.2.1身份驗(yàn)證模式2.SQLServer驗(yàn)證模式有一些情況需要使用SQLServer賬號(hào)登錄,例如登錄安裝在非Windows環(huán)境的SQLServer。另外,Intemet用戶登錄SQLServer時(shí)只能用SQLServer賬號(hào)。當(dāng)使用SQLServer驗(yàn)證時(shí),系統(tǒng)管理員需創(chuàng)建一個(gè)登錄賬號(hào)和密碼,并將其存儲(chǔ)在SQLServer中;當(dāng)用戶連接SQLServer時(shí),必須提供登錄賬號(hào)和密碼。在該驗(yàn)證模式下,用戶在連接SQLServer時(shí)必須提供登錄賬號(hào)和登錄密碼,SQLServer自己執(zhí)行驗(yàn)證處理。如果輸入的登錄信息與SQLServer系統(tǒng)表中的記錄相匹配,就允許該用戶登錄到SQLServer;否則拒絕該用戶的連接請(qǐng)求。3.設(shè)置SQLServer服務(wù)器的身份驗(yàn)證模式請(qǐng)參見(jiàn)第2章“2.3.2配置遠(yuǎn)程登錄”一節(jié),在“服務(wù)器屬性”窗口的“安全性”選擇頁(yè)中,在“服務(wù)器身份驗(yàn)證”選項(xiàng)中進(jìn)行選擇。9.2.1身份驗(yàn)證模式在Windows身份驗(yàn)證模式,登錄賬號(hào)必須是Windows操作系統(tǒng)的用戶賬號(hào),但在SQLServer驗(yàn)證模式下則必須提供有效的登錄賬號(hào)和密碼才能連接到服務(wù)器。下面主要介紹創(chuàng)建SQLServer身份驗(yàn)證的登錄賬號(hào)。1.使用SSMS方式創(chuàng)建登錄賬號(hào)【例9-1】使用SSMS方式創(chuàng)建一個(gè)登錄名為“jwgl”,密碼為“jw_180”的數(shù)據(jù)庫(kù)實(shí)例登錄賬號(hào)。操作過(guò)程如下:(1)進(jìn)入新建“登錄名”窗口:展開“安全性”節(jié)點(diǎn)→右擊“登錄名”節(jié)點(diǎn),單擊“新建登錄名”菜單項(xiàng),打開“登錄名-新建”窗口,選擇“常規(guī)”選擇頁(yè)。(2)輸入登錄名(即登錄賬號(hào)名稱):在“登錄名”文本框中輸入“jwgl”。(3)選擇驗(yàn)證模式:在登錄名下面選擇“SQLServer身份驗(yàn)證”單選鈕。如果選擇的是“Widows身份驗(yàn)證”模式,則在“登錄名”文本框中輸入的登錄名必須是Windows系統(tǒng)中已經(jīng)創(chuàng)建的賬號(hào);或單擊“搜索”按鈕,彈出“選擇用戶或組”對(duì)話框,這時(shí)可從對(duì)話框中選擇Windows用戶或用戶組,為此,所選擇的Windows用戶或用戶組中的Windows用戶將成為數(shù)據(jù)庫(kù)服務(wù)器實(shí)例的登錄賬號(hào)。9.2.2登錄賬號(hào)的創(chuàng)建和刪除(4)輸入登錄賬號(hào)的密碼:在“密碼”和“確認(rèn)密碼”文本框中輸入“jw_180”密碼,兩者必須相同。①?gòu)?qiáng)制實(shí)施密碼策略:如果選擇了“強(qiáng)制實(shí)施密碼策略”復(fù)選框,則要按照密碼策略來(lái)檢查密碼的設(shè)置要求以此來(lái)確保密碼的安全性;如果沒(méi)有選擇該項(xiàng),則表示密碼設(shè)置不受限制,甚至可以為空密碼。本例不選擇;②強(qiáng)制密碼過(guò)期:如果選擇了“強(qiáng)制密碼過(guò)期”復(fù)選框,表示將使用密碼過(guò)期策略來(lái)檢查設(shè)置的密碼。本例不選擇;③用戶在下次登錄時(shí)必須更改密碼:如果選擇了“用戶在下次登錄時(shí)必須更改密碼”復(fù)選框,表示每次使用該賬號(hào)登錄時(shí)都必須馬上更改密碼。本例不選擇。(5)默認(rèn)數(shù)據(jù)庫(kù):在“默認(rèn)數(shù)據(jù)庫(kù)”列表框選擇“JWGL”數(shù)據(jù)庫(kù)。其他選項(xiàng)使用默認(rèn)設(shè)置,經(jīng)過(guò)上述操作,常規(guī)選擇頁(yè)的設(shè)置如圖9-1所示。9.2.2登錄賬號(hào)的創(chuàng)建和刪除9.2.2登錄賬號(hào)的創(chuàng)建和刪除圖9-1新建登錄名(6)服務(wù)器角色:在選擇頁(yè)列表中單擊“服務(wù)器角色”選擇項(xiàng),在“服務(wù)器角色”選擇頁(yè)中列出了所有的服務(wù)器角色。如果選擇了某一角色,則表示該登錄賬號(hào)屬于該角色的成員,擁有了該角色所具有的操作權(quán)限。關(guān)于服務(wù)器角色的內(nèi)容在下一小節(jié)介紹。(7)用戶映射:在選擇頁(yè)列表中單擊“用戶映射”選擇項(xiàng),在“用戶映射”選項(xiàng)頁(yè)中設(shè)置“映射到此登錄名的用戶和數(shù)據(jù)庫(kù)角色成員身份”兩項(xiàng)內(nèi)容:①設(shè)置登錄賬號(hào)映射的數(shù)據(jù)庫(kù)用戶名:在“映射到此登錄名的用戶”的列表中選擇“JWGL”數(shù)據(jù)庫(kù)的“映射”列復(fù)選框;在“用戶”列將自動(dòng)顯示“jwgl”用戶名,如果希望登錄賬號(hào)名與數(shù)據(jù)庫(kù)用戶名不一樣,可以在這里修改用戶名;在“默認(rèn)架構(gòu)”列輸入或單擊“…”按鈕選擇架構(gòu)。有關(guān)數(shù)據(jù)庫(kù)“架構(gòu)”的內(nèi)容將在下一節(jié)介紹;②設(shè)置用戶所屬的數(shù)據(jù)庫(kù)角色:在“數(shù)據(jù)庫(kù)角色成員身份”列表框中列出了當(dāng)前數(shù)據(jù)庫(kù)用戶可以選擇的數(shù)據(jù)庫(kù)角色。當(dāng)選擇了某個(gè)角色時(shí),該用戶就擁有了該角色所具有的權(quán)限。數(shù)據(jù)庫(kù)角色是對(duì)數(shù)據(jù)庫(kù)操作的權(quán)限的集合。本例選擇“db_owner,public”兩種數(shù)據(jù)庫(kù)角色,如圖9-2所示。9.2.2登錄賬號(hào)的創(chuàng)建和刪除9.2.2登錄賬號(hào)的創(chuàng)建和刪除圖9-2“用戶映射”選項(xiàng)設(shè)置(8)安全對(duì)象:在選擇頁(yè)列表中單擊“安全對(duì)象”選擇項(xiàng),在“安全對(duì)象”選項(xiàng)頁(yè)中設(shè)置安全對(duì)象的操作權(quán)限。本例使用默認(rèn)設(shè)置。(9)狀態(tài):在選擇頁(yè)列表中單擊“狀態(tài)”選擇項(xiàng),在“狀態(tài)”選項(xiàng)頁(yè)中設(shè)置是否允許賬號(hào)連接到數(shù)據(jù)庫(kù)實(shí)例以及是否啟用賬號(hào)等內(nèi)容。本例選擇“授予、啟用”兩個(gè)選項(xiàng),如圖9-3所示。9.2.2登錄賬號(hào)的創(chuàng)建和刪除圖9-3“狀態(tài)”選項(xiàng)設(shè)置2.使用T-SQL語(yǔ)句方式創(chuàng)建登錄賬號(hào)使用T-SQL語(yǔ)句方式創(chuàng)建登錄賬號(hào)有兩種方法,一是使用“CREATELOGIN”語(yǔ)句,二是調(diào)用“sp_addlogin”存儲(chǔ)過(guò)程。下面主要介紹使用存儲(chǔ)過(guò)程的方法創(chuàng)建登錄賬號(hào)。語(yǔ)法格式:使用說(shuō)明:(1)登錄名:登錄名不能為空,不能是已存在的登錄名。(2)密碼:密碼要滿足密碼策略的要求。(3)默認(rèn)數(shù)據(jù)庫(kù):不指定時(shí),系統(tǒng)數(shù)據(jù)庫(kù)“master”為默認(rèn)數(shù)據(jù)庫(kù)。(4)默認(rèn)語(yǔ)言:指定使用的語(yǔ)言,不指定時(shí)使用系統(tǒng)當(dāng)前使用的默認(rèn)語(yǔ)言。(5)命令中的四個(gè)參數(shù)均為字符串,用單引號(hào)引起來(lái)。使用本命令創(chuàng)建的登錄賬號(hào)還不能馬上使用,還必須進(jìn)一步為其指定數(shù)據(jù)庫(kù)用戶的映射才能使用。9.2.2登錄賬號(hào)的創(chuàng)建和刪除【例9-2】使用SSMS方式創(chuàng)建一個(gè)登錄名為“jwglAdmin”的SQLServer身份驗(yàn)證的登錄賬號(hào),密碼為“j_a_r@9”,默認(rèn)數(shù)據(jù)庫(kù)為“jwgl”數(shù)據(jù)庫(kù),語(yǔ)言為“SimplifiedChinese”簡(jiǎn)體中文。9.2.2登錄賬號(hào)的創(chuàng)建和刪除3.使用SSMS方式刪除登錄賬號(hào)【例9-3】將登錄名為“jwglAdmin”的賬號(hào)刪除。展開“安全性”節(jié)點(diǎn)→展開“登錄名”節(jié)點(diǎn)→右擊“jwglAdmin”登錄名,在快捷菜單中單擊“刪除”菜單項(xiàng),打開“刪除對(duì)象”窗口→單擊“確定”按鈕,如圖9-4所示。9.2.2登錄賬號(hào)的創(chuàng)建和刪除圖9-4刪除用戶“jwglAdmin”4.使用T-SQL語(yǔ)句方式刪除登錄賬號(hào)語(yǔ)法格式:案例操作:【例9-4】將【例9-3】的功能使用T-SQL語(yǔ)句實(shí)現(xiàn)。9.2.2登錄賬號(hào)的創(chuàng)建和刪除1.角色的概念在實(shí)際應(yīng)用中,一個(gè)應(yīng)用系統(tǒng)可能有多種類型的用戶,每種類型的用戶擁有多種相同的權(quán)限,如果對(duì)每個(gè)用戶都逐一地進(jìn)行重復(fù)的授權(quán)操作,顯然授權(quán)效率十分低下,并且權(quán)限也不便于集中管理,為此,可以將同種類型的用戶所擁有的權(quán)限做成一個(gè)角色,然后將該角色賦給同類型中的每一用戶,這樣,授權(quán)過(guò)程就得到了簡(jiǎn)化。從管理的角度上看,角色可以理解為若干操作權(quán)限的集合。當(dāng)一個(gè)用戶被賦予一個(gè)角色時(shí),該用戶就擁有這個(gè)角色所包含的權(quán)限;一個(gè)角色可以賦給多個(gè)用戶,一個(gè)用戶也可以擁有多個(gè)角色:角色包含的權(quán)限變了,相關(guān)用戶所擁有的權(quán)限也跟著發(fā)生改變。9.2.3服務(wù)器角色2.服務(wù)器角色服務(wù)器角色是對(duì)服務(wù)器進(jìn)行操作的若干權(quán)限的集合。服務(wù)器角色是系統(tǒng)預(yù)先定義好的、是系統(tǒng)內(nèi)置的,被稱為固定的服務(wù)器角色。固定的服務(wù)器角色具有特定的權(quán)限,只要在這些角色中添加登錄賬號(hào),使登錄賬號(hào)成為固定服務(wù)器角色的成員,則這些登錄賬號(hào)就能獲得相應(yīng)的數(shù)據(jù)庫(kù)管理權(quán)限。服務(wù)器角色是固有的,用戶不能刪除、修改和添加固定的服務(wù)器角色。表9-1列出了固定的服務(wù)器角色及其權(quán)限。服務(wù)器角色的權(quán)限在服務(wù)器作用域范圍內(nèi)有效。表9-1固定的服務(wù)器角色9.2.3服務(wù)器角色序號(hào)服務(wù)器角色訪問(wèn)權(quán)1sysadmin系統(tǒng)管理員。具有在服務(wù)器中執(zhí)行任何操作的權(quán)限2serveradmin服務(wù)器管理員。具有設(shè)置服務(wù)器范圍的配置選項(xiàng)和關(guān)閉服務(wù)器權(quán)限3setupadmin安裝程序管理員。具有添加、刪除、連接、執(zhí)行某些系統(tǒng)存儲(chǔ)過(guò)程的權(quán)限4securityadmin安全管理員。具有管理登錄名及其屬性的權(quán)限5processadmin進(jìn)程管理員。具有終止SQLServer實(shí)例中運(yùn)行進(jìn)程的權(quán)限6dbcreator數(shù)據(jù)庫(kù)創(chuàng)建者。具有創(chuàng)建、更改、刪除和還原數(shù)據(jù)庫(kù)的權(quán)限7diskadmin磁盤管理員。具有管理磁盤文件的權(quán)限8bulkadmin大容量管理員。具有可運(yùn)行BULKINSERT語(yǔ)句的權(quán)限9public公共的服務(wù)角色。具有瀏覽的權(quán)限。所有登錄賬號(hào)都是本角色的成員3.為登錄賬戶指定服務(wù)器角色登錄賬號(hào)要想獲得相應(yīng)服務(wù)器角色的權(quán)限,必須將其劃歸到某個(gè)服務(wù)器角色。一個(gè)登錄賬號(hào)可以擁有多個(gè)服務(wù)器角色的權(quán)限。為登錄賬戶指定服務(wù)器角色可以從登錄賬號(hào)也可以從固定的服務(wù)角色為操作對(duì)象進(jìn)行配置,下面以登錄賬號(hào)為操作對(duì)象進(jìn)行介紹。1)使用SSMS方式為登錄賬戶指定服務(wù)器角色【例9-5】將“jwgl”登錄賬號(hào)賦予“sysadmin”服務(wù)器角色。操作過(guò)程如下:展開“安全性”節(jié)點(diǎn)→展開“登錄名”節(jié)點(diǎn)→右擊“jwgl”登錄名,在快捷菜單中單擊“屬性”菜單項(xiàng),打開“登錄屬性”窗口→選擇“服務(wù)器角色”選擇頁(yè)→在“服務(wù)器角色”列表中選擇“sysadmin”角色→單擊“確定”按鈕結(jié)束操作,如圖9-5所示。9.2.3服務(wù)器角色9.2.3服務(wù)器角色圖9-5設(shè)置“jwgl”服務(wù)器角色3.為登錄賬戶指定服務(wù)器角色2)用T-SQL語(yǔ)句為登錄賬號(hào)指定服務(wù)器角色語(yǔ)法格式:案例操作:【例9-6】將“jwgl”登錄賬號(hào)賦予“setupadmin”服務(wù)器角色。實(shí)現(xiàn)代碼如下:9.2.3服務(wù)器角色4.取消登錄賬號(hào)的服務(wù)器角色語(yǔ)法格式:案例操作:【例9-7】從“setupadmin”服務(wù)器角色中取消“jwgl”登錄賬號(hào)。實(shí)現(xiàn)代碼如下:值得注意的是,不能從“public”服務(wù)器角色中取消指定的登錄賬戶。9.2.3服務(wù)器角色數(shù)據(jù)庫(kù)的安全管理9.3架構(gòu)是一種對(duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行分組的容器,是表、視圖、存儲(chǔ)過(guò)程等數(shù)據(jù)庫(kù)對(duì)象的集合。架構(gòu)由用戶或角色擁有。在SQLServer中,架構(gòu)分為兩種類型:一種是系統(tǒng)內(nèi)置的架構(gòu),稱為系統(tǒng)架構(gòu);另一種是用戶定義的架構(gòu),稱為用戶自定義架構(gòu)。在創(chuàng)建數(shù)據(jù)庫(kù)用戶時(shí),必須為數(shù)據(jù)庫(kù)用戶指定一個(gè)默認(rèn)架構(gòu),即每個(gè)用戶都有一個(gè)默認(rèn)架構(gòu)。如果不指定,則使用“dbo”系統(tǒng)架構(gòu)作為用戶的默認(rèn)架構(gòu)。1.使用SSMS方式創(chuàng)建架構(gòu)【例9-8】為“JWGL”數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)用戶“jwgl”創(chuàng)建一個(gè)“jwglFramework”架構(gòu),并賦予該架構(gòu)的所有者“jwgl”用戶擁有“插入、修改、更新”等權(quán)限。9.3.1架構(gòu)(1)進(jìn)入創(chuàng)建架構(gòu)窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→右擊“架構(gòu)”節(jié)點(diǎn)→在快捷菜單中單擊“新建架構(gòu)”菜單項(xiàng),打開“架構(gòu)-新建”窗口。選擇“常規(guī)”選擇頁(yè),如圖9-6所示。(2)輸入架構(gòu)名稱:在“架構(gòu)名稱”文本框輸入“jwglFramework”。(3)選擇架構(gòu)的所有者:在“架構(gòu)所有者”的文本框輸入已有的數(shù)據(jù)庫(kù)用戶或數(shù)據(jù)庫(kù)角色,或單擊“搜索”按鈕查找架構(gòu)的所有者。本例可直接輸入數(shù)據(jù)庫(kù)用戶名“jwgl”。9.3.1架構(gòu)圖9-6新建架構(gòu)-常規(guī)選擇頁(yè)(4)為架構(gòu)的所有者添加權(quán)限:?jiǎn)螕簟皺?quán)限”選擇頁(yè),在該頁(yè)面內(nèi)可以設(shè)置架構(gòu)所有者所擁有的操作權(quán)限,如插入、修改、更新等權(quán)限。①選擇數(shù)據(jù)庫(kù)用戶或角色:?jiǎn)螕簟八阉鳌卑粹o,打開“搜索角色和用戶”對(duì)話框架,在對(duì)話框中單擊“瀏覽”按鈕查找架構(gòu)的所有者“jwgl”數(shù)據(jù)庫(kù)用戶。②設(shè)置“jwgl”用戶的權(quán)限:在“jwgl的權(quán)限”列表中,在“插入、更新、刪除”行的“授予”列中選擇復(fù)選框。(5)完成操作:?jiǎn)螕簟按_定”按鈕完成架構(gòu)的創(chuàng)建操作,如圖9-7所示。9.3.1架構(gòu)圖9-7為架構(gòu)用戶授權(quán)2.為數(shù)據(jù)庫(kù)用戶設(shè)置默認(rèn)架構(gòu)【例9-9】將架構(gòu)“jwglFramework”設(shè)置為“JWGL”數(shù)據(jù)庫(kù)的“jwgl”數(shù)據(jù)庫(kù)用戶的默認(rèn)架構(gòu)。操作過(guò)程如下:展開“實(shí)例”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“用戶”節(jié)點(diǎn)→右擊“jwgl”用戶名→在快捷菜單中單擊“屬性”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)用戶-jwgl”窗口→單擊“常規(guī)”選擇頁(yè),在“默認(rèn)”架構(gòu)列表框中輸入“jwglFramework”,或通過(guò)其右邊的“…”按鈕打開“選擇架構(gòu)”對(duì)話框查找“jwglFramework”架構(gòu)名→單擊“確定”完成設(shè)置,如圖9-8所示。9.3.1架構(gòu)圖9-8設(shè)置默認(rèn)架構(gòu)3.使用SSMS方式刪除架構(gòu)展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開某具體數(shù)據(jù)庫(kù)的節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“架構(gòu)”節(jié)點(diǎn)→右擊某架構(gòu)名稱→在快捷菜單中單擊“刪除”菜單項(xiàng),打開“刪除對(duì)象”窗口→單擊“確定”按鈕完成刪除操作。4.使用T-SQL語(yǔ)句方式刪除架構(gòu)語(yǔ)法格式:【例9-10】將架構(gòu)“jwglFramework”刪除。實(shí)現(xiàn)代碼如下:9.3.1架構(gòu)數(shù)據(jù)庫(kù)角色是一組被賦予了特定操作權(quán)限的對(duì)象,數(shù)據(jù)庫(kù)用戶被添加到某種數(shù)據(jù)庫(kù)的角色時(shí),就意味著該用戶擁有了某種操作權(quán)限。數(shù)據(jù)庫(kù)角色分系統(tǒng)數(shù)據(jù)庫(kù)角色(常稱為固定數(shù)據(jù)庫(kù)角色)、用戶自定義角色和應(yīng)用程序角色等三種類型。固定數(shù)據(jù)庫(kù)角色預(yù)定義了數(shù)據(jù)庫(kù)的安全管理權(quán)限和對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限;用戶自定義角色由數(shù)據(jù)庫(kù)管理員創(chuàng)建并且自定義對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限;應(yīng)用程序角色規(guī)定了某個(gè)應(yīng)用程序的安全性,用來(lái)控制通過(guò)某個(gè)應(yīng)用程序?qū)?shù)據(jù)的間接訪問(wèn)。1.固定數(shù)據(jù)庫(kù)角色SQLServer為每個(gè)數(shù)據(jù)庫(kù)預(yù)定義了十個(gè)固定的數(shù)據(jù)庫(kù)角色,它們擁有相應(yīng)的數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)限。用戶不能增加、刪除和修改固定的數(shù)據(jù)庫(kù)角色。表9-2列出了固定的數(shù)據(jù)庫(kù)角色及其簡(jiǎn)要權(quán)限。9.3.2數(shù)據(jù)庫(kù)角色表9-2固定數(shù)據(jù)庫(kù)角色9.3.2數(shù)據(jù)庫(kù)角色序號(hào)數(shù)據(jù)庫(kù)角色訪問(wèn)權(quán)1db_owner具有數(shù)據(jù)庫(kù)操作的全部權(quán)限2db_accessadmin具有在數(shù)據(jù)庫(kù)中增刪Windows用戶、組以及SQLServer用戶的權(quán)限3db_securityadmin具有修改角色成員身份和管理數(shù)據(jù)庫(kù)中的語(yǔ)句和對(duì)象的權(quán)限4db_ddladmin具有全部DDL操作,但不具備GRANT、REVOKE或DENY語(yǔ)句的權(quán)限5db_backupoperator具有備份數(shù)據(jù)庫(kù)的權(quán)限6db_datareader具有SELECT權(quán)限,即具有讀取所有用戶表的所有數(shù)據(jù)的權(quán)限7db_datawriter具有在所有表中插入、修改、刪除數(shù)據(jù)的權(quán)限8db_denydatareader拒絕SELECT權(quán)限,即不能讀取數(shù)據(jù)庫(kù)內(nèi)任何用戶表中的任何數(shù)據(jù)9db_denydatawriter拒絕增、刪、改權(quán)限,即不能更改數(shù)據(jù)庫(kù)表中的任何數(shù)據(jù)10public每個(gè)數(shù)據(jù)庫(kù)用戶都是本角色的成員,它維護(hù)數(shù)據(jù)庫(kù)用戶的默認(rèn)權(quán)限每個(gè)固定的數(shù)據(jù)庫(kù)角色都被賦予了固定的數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)限,因此,常常不能滿足多變的實(shí)際應(yīng)用要求,這時(shí)可以通過(guò)自定義方式生成滿足實(shí)際要求的數(shù)據(jù)庫(kù)角色。【例9-11】創(chuàng)建一個(gè)“JWGL”數(shù)據(jù)庫(kù)的自定義數(shù)據(jù)庫(kù)角色“jwglRole”,角色擁有“db_owner”架構(gòu)。(1)進(jìn)入創(chuàng)建數(shù)據(jù)庫(kù)角色窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“角色”節(jié)點(diǎn)→右擊“數(shù)據(jù)庫(kù)角色”節(jié)點(diǎn),在快捷菜單中單擊“新建數(shù)據(jù)庫(kù)角色”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)角色-新建”窗口。(2)輸入角色名稱:在“角色名稱”文本框輸入“jwglRole”。(3)選擇角色擁有的架構(gòu):在“此角色擁有的架構(gòu)”列表中選擇“db_owner”。其他選項(xiàng)暫時(shí)使用默認(rèn),單擊“確定”按鈕完成操作,如圖9-9所示。9.3.2數(shù)據(jù)庫(kù)角色9.3.2數(shù)據(jù)庫(kù)角色圖9-9新建數(shù)據(jù)庫(kù)角色3.使用SSMS方式刪除數(shù)據(jù)庫(kù)角色展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開某具體數(shù)據(jù)庫(kù)的節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“角色”節(jié)點(diǎn)→展開“數(shù)據(jù)庫(kù)角色”節(jié)點(diǎn)→右擊某自定義角色名稱→在快捷菜單中單擊“刪除”菜單項(xiàng),打開“刪除對(duì)象”窗口→單擊“確定”按鈕完成刪除操作。9.3.2數(shù)據(jù)庫(kù)角色數(shù)據(jù)庫(kù)用戶是一個(gè)擁有數(shù)據(jù)庫(kù)某種操作權(quán)限的對(duì)象。一個(gè)登錄名可以映射到多個(gè)數(shù)據(jù)庫(kù)的某個(gè)用戶,反之,一個(gè)數(shù)據(jù)庫(kù)的多個(gè)用戶不能被映射到同一個(gè)登錄名。1.使用SSMS方式創(chuàng)建數(shù)據(jù)庫(kù)用戶【例9-12】創(chuàng)建一個(gè)“JWGL”數(shù)據(jù)庫(kù)的用戶“jwglUser”,該用戶映射到“jwglAdmin”登錄名,擁有“dbo、db_ddladmin”架構(gòu)和“jwglRole”角色的權(quán)限,默認(rèn)架構(gòu)為“dbo”。操作過(guò)程如下:(1)打開創(chuàng)建數(shù)據(jù)庫(kù)用戶窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→右擊“用戶”節(jié)點(diǎn),在快捷菜單中單擊“新建用戶”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)用戶-新建”窗口,單擊“常規(guī)”選擇頁(yè)。(2)輸入用戶名:在“用戶名”文本框輸入“jwglUser”用戶名。(3)映射登錄名:在“登錄名”文本框輸入“jwgl”登錄賬號(hào)的名稱。也可以通過(guò)其右邊的“…”按鈕查找選擇映射的登錄名。9.3.3數(shù)據(jù)庫(kù)用戶(4)設(shè)置默認(rèn)架構(gòu):在“默認(rèn)架構(gòu)”文本框輸入“dbo”架構(gòu)名稱。也可以通過(guò)其右邊的“…”按鈕查找選擇默認(rèn)的架構(gòu)。(5)設(shè)置用戶擁有的架構(gòu):?jiǎn)螕簟皳碛械募軜?gòu)”選擇頁(yè),在“此用戶擁有的架構(gòu)”列表框中選擇“db_ddladmin”。(6)設(shè)置角色成員身份:?jiǎn)螕簟俺蓡T身份”選擇頁(yè),在“數(shù)據(jù)庫(kù)角色成員身份”列表框中選擇“jwglRole”。(7)完成操作:?jiǎn)螕簟按_定”按鈕完成數(shù)據(jù)庫(kù)用戶的創(chuàng)建操作,如圖9-10所示。圖9-10新建數(shù)據(jù)庫(kù)用戶9.3.3數(shù)據(jù)庫(kù)用戶2.使用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)用戶語(yǔ)法格式:(1)用戶名:指定創(chuàng)建的數(shù)據(jù)庫(kù)用戶名稱。用戶名的最大長(zhǎng)度是128個(gè)字符。(2)LOGIN<登錄名>:指定創(chuàng)建的數(shù)據(jù)庫(kù)用戶映射到SQLServer的登錄名。登錄名必須是服務(wù)器中有效的登錄名。(3)CERTIFICATE<證書名>:指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)用戶的證書。(4)ASYMMETRICKEY<非對(duì)稱密鑰>:指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)用戶的非對(duì)稱密鑰。9.3.3數(shù)據(jù)庫(kù)用戶(5)WITHDEFAULT_SCHEMA=<默認(rèn)架構(gòu)名>:指定服務(wù)器為此數(shù)據(jù)庫(kù)用戶解析對(duì)象名時(shí)將搜索的第一個(gè)架構(gòu),即設(shè)置默認(rèn)架構(gòu)名。(6)WITHOUTLOGIN:指定不將用戶映射到現(xiàn)有登錄名?!纠?-13】先創(chuàng)建一個(gè)“jwglAccount”登錄賬號(hào),登錄密碼為“avy_17d”,然后為“JWGL”數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)“jwglUserBak”數(shù)據(jù)庫(kù)用戶,默認(rèn)架構(gòu)為“db_backupoperato”。9.3.3數(shù)據(jù)庫(kù)用戶3.使用SSMS方式修改數(shù)據(jù)庫(kù)用戶【例9-14】為“JWGL”數(shù)據(jù)庫(kù)的“jwglUserBak”數(shù)據(jù)庫(kù)用戶添加一個(gè)“db_ddladmin”數(shù)據(jù)庫(kù)角色成員身份。操作過(guò)程如下:(1)打開數(shù)據(jù)庫(kù)用戶屬性窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“jwgl”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“用戶”節(jié)點(diǎn)→右擊“jwglUserBak”用戶名,在快捷菜單中單擊“屬性”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)用戶-jwglUserBak”窗口。(2)添加角色成員身份:在“數(shù)據(jù)庫(kù)角色成員身份”列表框中選擇“db_ddladmin”。(3)單擊“確定”按鈕完成修改操作。9.3.3數(shù)據(jù)庫(kù)用戶4.使用T-SQL語(yǔ)句修改數(shù)據(jù)庫(kù)用戶語(yǔ)法格式:其中“選項(xiàng)”的內(nèi)容如下:使用說(shuō)明:(1)用戶名:指定修改的用戶名稱。(2)LOGIN=<登錄名>:將用戶重新映射到指定的登錄名。(3)NAME=<新用戶名>:用戶名重命名。新用戶名不能是當(dāng)前數(shù)據(jù)庫(kù)已存在的用戶名。(4)DEFAULT_SCHEMA=<默認(rèn)架構(gòu)名>:重新指定用戶的默認(rèn)架構(gòu)。從語(yǔ)法上看,修改語(yǔ)句只能修改用戶的名稱、默認(rèn)架構(gòu)和映射的登錄名?!纠?-15】將“JWGL”數(shù)據(jù)庫(kù)的“jwglUserBak”用戶的默認(rèn)架構(gòu)修改為“db_owner”。9.3.3數(shù)據(jù)庫(kù)用戶5.使用SSMS方式刪除數(shù)據(jù)庫(kù)用戶刪除數(shù)據(jù)庫(kù)用戶時(shí),如果用戶擁有架構(gòu),則必須先將擁有的架構(gòu)刪除?!纠?-16】刪除“jwgl”數(shù)據(jù)庫(kù)的“jwglUserBak”用戶。操作過(guò)程如下:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“用戶”節(jié)點(diǎn)→右擊“jwglUserBak”用戶名,在快捷菜單中單擊“刪除”菜單項(xiàng),打開“刪除對(duì)象”窗口→單擊“確定”按鈕。9.3.3數(shù)據(jù)庫(kù)用戶6.使用T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)用戶語(yǔ)法格式:案例操作:【例9-17】將【例9-16】的功能使用T-SQL語(yǔ)句實(shí)現(xiàn)。實(shí)現(xiàn)代碼如下:9.3.3數(shù)據(jù)庫(kù)用戶特殊的數(shù)據(jù)庫(kù)用戶是SQLServer系統(tǒng)預(yù)定義的用戶,它們被賦予了特殊的權(quán)限。1.dbo用戶“sa”登錄賬號(hào)和“sysadmin”角色的成員被映射到所有數(shù)據(jù)庫(kù)內(nèi)部的一個(gè)特殊用戶,即“dbo”用戶賬號(hào)。任何由系統(tǒng)管理員創(chuàng)建的對(duì)象都自動(dòng)屬于“dbo”用戶。2.guest用戶“guest”數(shù)據(jù)庫(kù)用戶主要用于沒(méi)有登錄賬號(hào)的來(lái)賓用戶訪問(wèn)數(shù)據(jù)庫(kù),通常稱為“來(lái)賓賬號(hào)”,具有最低的訪問(wèn)權(quán)限,一般不開啟使用,否則會(huì)降低系統(tǒng)的安全性。9.3.4特殊的數(shù)據(jù)庫(kù)用戶數(shù)據(jù)對(duì)象的安全管理9.4(1)數(shù)據(jù)對(duì)象權(quán)限:數(shù)據(jù)對(duì)象權(quán)限是指數(shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)庫(kù)中的表、視圖、存儲(chǔ)過(guò)程等對(duì)象的操作權(quán)限。這些權(quán)限主要是指數(shù)據(jù)操作語(yǔ)言的語(yǔ)句權(quán)限,即SELECT,UPDATE,DELETE,INSERT,EXECUTE等語(yǔ)句的操作權(quán)限。(2)語(yǔ)句權(quán)限:語(yǔ)句權(quán)限是指用戶是否擁有執(zhí)行某一語(yǔ)句的權(quán)限。這些語(yǔ)句主要包括“CREATEDATABASE、CREATETABLE、CREATEVIEW、CREATERULE、CREATEDEFAULT、CREATEPROCEDURE、BACKUPDATABASE、BACKUPLOG等。(3)隱含權(quán)限:隱含權(quán)限是指SQLServer內(nèi)置的或在創(chuàng)建對(duì)象時(shí)自動(dòng)生成的權(quán)限。它們主要包含在固定的服務(wù)器角色和固定的數(shù)據(jù)庫(kù)角色當(dāng)中。常見(jiàn)的權(quán)限類別及其應(yīng)用對(duì)象如表9-3所示。9.4.1權(quán)限的種類表9-3常見(jiàn)的權(quán)限9.4.1權(quán)限的種類序號(hào)權(quán)限類別權(quán)限描述適用的安全對(duì)象1SELECT允許使用SELECT查詢數(shù)據(jù)表和列、表值函數(shù)和列、視圖2UPDATE允許使用UPDATE修改數(shù)據(jù)表和列、視圖和列3REFERENCES允許在外鍵或檢查約束中引用表、視圖中的列標(biāo)量函數(shù)、聚合函數(shù)、表和列、表值函數(shù)和列、視圖和列4INSERT允許使用INSERT語(yǔ)句插入記錄表和列、視圖和列5DELETE允許使用DELETE語(yǔ)句刪除記錄表和列、視圖和列6VIEWCHANGETRACKING允許使用相關(guān)函數(shù)獲取對(duì)表更改以及與這些更改有關(guān)的信息表和列、視圖和列7VIEWDEFINITION允許查看安全對(duì)象的元數(shù)據(jù)標(biāo)量函數(shù)、聚合函數(shù)、存儲(chǔ)過(guò)程、表、視圖8ALTER允許更改安全對(duì)象的定義同上9TAKEOWNERRSHIP允許獲取安全對(duì)象的所有權(quán)同上10CONTROL允許對(duì)安全對(duì)象具有所有權(quán)限同上
由于隱含權(quán)限是由系統(tǒng)預(yù)定義的,所以不能對(duì)其進(jìn)行修改,因此對(duì)權(quán)限的管理只涉及到對(duì)象權(quán)限與語(yǔ)句權(quán)限的管理。權(quán)限管理以數(shù)據(jù)庫(kù)角色或用戶為操作對(duì)象,也可以通過(guò)對(duì)架構(gòu)進(jìn)行授權(quán)然后再指定架構(gòu)的所有者(角色或用戶)進(jìn)行權(quán)限管理。權(quán)限管理包括如下三方面的內(nèi)容:(1)授予權(quán)限(GRANT):授予權(quán)限是指允許某個(gè)角色或用戶對(duì)某個(gè)數(shù)據(jù)對(duì)象執(zhí)行某種操作。(2)拒絕訪問(wèn)(DENY):拒絕權(quán)限是指拒絕某個(gè)角色或用戶對(duì)某個(gè)數(shù)據(jù)對(duì)象執(zhí)行某種操作,即使該角色或用戶已獲得授權(quán)也不允許操作。(3)取消權(quán)限(REVOKE):取消權(quán)限是指不允許某個(gè)角色或用戶對(duì)某個(gè)數(shù)據(jù)對(duì)象執(zhí)行某種操作。當(dāng)上述三種權(quán)限沖突時(shí),只有拒絕訪問(wèn)權(quán)限起作用。9.4.2權(quán)限的管理1.使用SSMS對(duì)角色授權(quán)【例9-18】為“JWGL”數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)“jwglInsRole”數(shù)據(jù)庫(kù)角色,該角色只擁有對(duì)“class”表的查詢權(quán)限。操作過(guò)程如下:(1)進(jìn)入創(chuàng)建數(shù)據(jù)庫(kù)角色窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“角色”節(jié)點(diǎn)→右擊“數(shù)據(jù)庫(kù)角色”節(jié)點(diǎn),在快捷菜單中單擊“新建數(shù)據(jù)庫(kù)角色”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)角色-新建”窗口。(2)輸入角色名稱:在“角色名稱”文本框輸入“jwglInsRole”。(3)選擇安全對(duì)象:①選擇“安全對(duì)象”選擇頁(yè),單擊“搜索”按鈕,彈出“添加對(duì)象”對(duì)話框;②在“添加對(duì)象”對(duì)話框中,選擇“特定對(duì)象”單選鈕,單擊“確定”按鈕,彈出“選擇對(duì)象”對(duì)話框;③在“選擇對(duì)象”對(duì)話框中,單擊“對(duì)象類型”按鈕,彈出“選擇對(duì)象類型”對(duì)話框;④在“選擇對(duì)象類型”對(duì)話框中,選擇要授權(quán)的對(duì)象類型,本例選擇“表”,單擊“確定”按鈕返回“選擇對(duì)象”對(duì)話框;⑤在“選擇對(duì)象”對(duì)話框中,單擊“瀏覽”按鈕,彈出“查找對(duì)象”對(duì)話框;⑥在“查找對(duì)象”對(duì)話框的匹配對(duì)象列表框中,選擇“[dbo].[class]”表;單擊“確定”按鈕返回“選擇對(duì)象”對(duì)話框;⑦在“選擇對(duì)象”對(duì)話框中單擊“確定”按鈕返回“數(shù)據(jù)庫(kù)角色-新建”窗口。9.4.2權(quán)限的管理(4)給安全對(duì)象授權(quán):在“數(shù)據(jù)庫(kù)角色-新建”窗口的“dbo.class權(quán)限”列表中,在“選擇”和“引用”兩行的“授予”列選擇復(fù)選框。如果還想進(jìn)一步授權(quán)到表中的列字段,可單擊“列權(quán)限”按鈕,彈擊“列權(quán)限”授權(quán)對(duì)話框,在該對(duì)話框中對(duì)字段進(jìn)行授權(quán),即選擇“授予”或“拒絕”等權(quán)限。(5)結(jié)束授權(quán):在“數(shù)據(jù)庫(kù)角色-新建”窗口中,單擊“確定”按鈕完成授權(quán)操作,如圖9-11所示。9.4.2權(quán)限的管理圖9-11對(duì)角色授權(quán)2.使用SSMS對(duì)用戶授權(quán)給單個(gè)數(shù)據(jù)庫(kù)用戶授權(quán)的操作與角色的授權(quán)過(guò)程基本相同,為了進(jìn)一步鞏固對(duì)角色或用戶的授權(quán)管理,下面通過(guò)案例學(xué)習(xí)如何將一個(gè)數(shù)據(jù)庫(kù)的備份權(quán)限授權(quán)給某個(gè)數(shù)據(jù)庫(kù)用戶?!纠?-19】為“JWGL”數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)“SQLServer身份驗(yàn)證”的“jwglUserBak”登錄賬號(hào),密碼為“jbk1908”,映射的數(shù)據(jù)庫(kù)用戶也是“jwglUserBak”,該數(shù)據(jù)庫(kù)用戶只擁有對(duì)“JWGL”數(shù)據(jù)庫(kù)的備份權(quán)限。操作過(guò)程如下:(1)創(chuàng)建登錄賬號(hào):參考“9.2.2”一節(jié)創(chuàng)建“jwglUserBak”登錄賬號(hào),默認(rèn)數(shù)據(jù)庫(kù)為“JWGL”,映射的數(shù)據(jù)庫(kù)用戶名也是“jwglUserBak”。(2)進(jìn)入數(shù)據(jù)庫(kù)用戶屬性窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“安全性”節(jié)點(diǎn)→展開“用戶”節(jié)點(diǎn)→右擊“jwglUserBak”用戶名,單擊“屬性”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)用戶-jwglUserBak”窗口。9.4.2權(quán)限的管理(3)選擇安全對(duì)象:選擇“安全對(duì)象”選擇頁(yè),單擊“搜索”按鈕,彈出“添加對(duì)象”對(duì)話框;①在“添加對(duì)象”對(duì)話框中,選擇“特定對(duì)象”單選鈕,單擊“確定”按鈕,彈出“選擇對(duì)象”對(duì)話框;②在“選擇對(duì)象”對(duì)話框中,單擊“對(duì)象類型”按鈕,彈出“選擇對(duì)象類型”對(duì)話框,在“選擇對(duì)象類型”對(duì)話框中,選擇“數(shù)據(jù)庫(kù)”復(fù)選框,然后單擊“確定”按鈕返回“選擇對(duì)象”對(duì)話框;③在“選擇對(duì)象”對(duì)話框中,單擊“瀏覽”按鈕,彈出“查找對(duì)象”對(duì)話框;④在“查找對(duì)象”對(duì)話框的匹配對(duì)象列表框中,選擇“JWGL”數(shù)據(jù)復(fù)選框,單擊“確定”按鈕返回“選擇對(duì)象”對(duì)話框;⑤在“選擇對(duì)象”對(duì)話框中單擊“確定”按鈕,返回“數(shù)據(jù)庫(kù)用戶-jwglUserBak”窗口,然后進(jìn)行權(quán)限設(shè)置。(4)給對(duì)象授權(quán):在“數(shù)據(jù)庫(kù)用戶-jwglUserBak”窗口的“jwgl權(quán)限”列表中,在“備份日志”和“備份數(shù)據(jù)庫(kù)”兩行的“授予”列選擇復(fù)選框。(5)結(jié)束授權(quán):?jiǎn)螕簟按_定”按鈕完成授權(quán)操作,如圖9-12所示。9.4.2權(quán)限的管理9.4.2權(quán)限的管理圖9-12對(duì)用戶授權(quán)3.使用SSMS對(duì)語(yǔ)句授權(quán)【例9-20】為“JWGL”數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)“SQLServer身份驗(yàn)證”的“jwUserIDU”登錄賬號(hào),密碼為“jw2908”,映射的數(shù)據(jù)庫(kù)用戶名也是“jwUserIDU”,該數(shù)據(jù)庫(kù)用戶只擁有對(duì)“JWGL”數(shù)據(jù)庫(kù)表的插入、更改、刪除等語(yǔ)句的執(zhí)行權(quán)限。操作過(guò)程如下:(1)創(chuàng)建登錄賬號(hào):參考“9.2.2”一節(jié)創(chuàng)建“jwUserIDU”登錄賬號(hào),默認(rèn)數(shù)據(jù)庫(kù)為“jwgl”,映射的數(shù)據(jù)庫(kù)用戶名也是“jwUserIDU”。(2)進(jìn)入數(shù)據(jù)庫(kù)屬性窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→右擊“JWGL”數(shù)據(jù)庫(kù)名,在快捷菜單中單擊“屬性”菜單項(xiàng),打開“數(shù)據(jù)庫(kù)屬性-JWGL”窗口。(3)選擇授權(quán)用戶:在“數(shù)據(jù)庫(kù)屬性-JWGL”窗口中,選擇“權(quán)限”選擇頁(yè),在“用戶或角色”列表框中選擇“jwUserIDU”數(shù)據(jù)庫(kù)用戶名。(4)授權(quán)操作:在“數(shù)據(jù)庫(kù)屬性-JWGL”窗口中,在“jwUserIDU”的權(quán)限列表框中選擇“插入、刪除、選擇和連接”四項(xiàng)的“授予”復(fù)選框。提示:“連接”權(quán)限必須授予,否則該用戶無(wú)法登錄服務(wù)器,這樣授權(quán)就毫無(wú)意義。(5)結(jié)束授權(quán):?jiǎn)螕簟按_定”按鈕完成授權(quán)操作,如圖9-12所示。9.4.2權(quán)限的管理9.4.2權(quán)限的管理圖9-13對(duì)語(yǔ)句授權(quán)4.使用SSMS對(duì)數(shù)據(jù)對(duì)象授權(quán)數(shù)據(jù)對(duì)象主要指數(shù)據(jù)庫(kù)表、索引、存儲(chǔ)過(guò)程、視圖、觸發(fā)器等對(duì)象。對(duì)于數(shù)據(jù)對(duì)象的授權(quán),上述【例9-18】已有對(duì)數(shù)據(jù)庫(kù)表的授權(quán)操作,下面以存儲(chǔ)過(guò)程為例詳細(xì)介紹其授權(quán)過(guò)程?!纠?-21】將“JWGL”數(shù)據(jù)庫(kù)的“pcClass”存儲(chǔ)過(guò)程的執(zhí)行權(quán)授予“jwUserIDU”數(shù)據(jù)庫(kù)用戶。操作過(guò)程如下:(2)進(jìn)入“pcClass”存儲(chǔ)過(guò)程屬性窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“可編程性”節(jié)點(diǎn)→展開“存儲(chǔ)過(guò)程”節(jié)點(diǎn)→右擊“pcClass”存儲(chǔ)過(guò)程名,單擊“屬性”菜單項(xiàng),打開“存儲(chǔ)過(guò)程屬性-pcClass”窗口,單擊“權(quán)限”選擇頁(yè)。9.4.2權(quán)限的管理(2)進(jìn)入“pcClass”存儲(chǔ)過(guò)程屬性窗口:展開“數(shù)據(jù)庫(kù)”節(jié)點(diǎn)→展開“JWGL”數(shù)據(jù)庫(kù)節(jié)點(diǎn)→展開“可編程性”節(jié)點(diǎn)→展開“存儲(chǔ)過(guò)程”節(jié)點(diǎn)→右擊“pcClass”存儲(chǔ)過(guò)程名,單擊“屬性”菜單項(xiàng),打開“存儲(chǔ)過(guò)程屬性-pcClass”窗口,單擊“權(quán)限”選擇頁(yè)。(3)選擇用戶或角色:?jiǎn)螕簟八阉鳌卑粹o,彈出“選擇用戶或角色”對(duì)話框,在該對(duì)話框中單擊“瀏覽”按鈕,彈出“查詢”對(duì)象對(duì)話框,在“查詢對(duì)象”對(duì)話框中選擇“jwUserIDU”用戶名,單擊“確定”按鈕返回“選擇用戶或角色”對(duì)話框,在“選擇用戶或角色”對(duì)話框中單擊“確定”按鈕返回“存儲(chǔ)過(guò)程屬性-pcClass”窗口。(4)對(duì)“jwUserIDU”用戶名授權(quán):在“jwUserIDU”的權(quán)限列表框中選擇“執(zhí)行”行的復(fù)選框。(5)結(jié)束授權(quán):?jiǎn)螕簟按_定”按鈕完成授權(quán)操作。對(duì)數(shù)據(jù)對(duì)象授權(quán)主要是第(2)步,選擇數(shù)據(jù)對(duì)象時(shí)要選準(zhǔn)具體的數(shù)據(jù)對(duì)象,例如,對(duì)表授權(quán)要選擇具體的表,對(duì)存儲(chǔ)過(guò)程授權(quán)要選擇具體的存儲(chǔ)過(guò)程。9.4.2權(quán)限的管理5.使用T-SQL對(duì)語(yǔ)句授權(quán)對(duì)語(yǔ)句授權(quán)主要包括GRANT、REVOKE和DENY等三種操作,它們分別對(duì)語(yǔ)句的權(quán)限進(jìn)行授予、取消授予和拒絕訪問(wèn)等處理。這三條語(yǔ)句的語(yǔ)法比較復(fù)雜,下面僅介紹常用的語(yǔ)法格式。1)授予權(quán)限(GRANT)語(yǔ)法格式:使用說(shuō)明:(1)<語(yǔ)句名稱>:是指對(duì)用戶或角色授予指定操作權(quán)限的語(yǔ)句。語(yǔ)句名稱的關(guān)鍵字如下:對(duì)于數(shù)據(jù)庫(kù)有“BACKUPDATABASE、BACKUPLOG、CREATEDATABASE、CREATEDEFAULT、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATETABLE和CREATEVIEW”;對(duì)于標(biāo)量函數(shù)有“EXECUTE和REFERENCES”;對(duì)于表值函數(shù)有“DELETE、INSERT、REFERENCES、SELECT和UPDATE”;對(duì)于存儲(chǔ)過(guò)程有“EXECUTE”;對(duì)于數(shù)據(jù)庫(kù)表有“DELETE、INSERT、REFERENCES、SELECT和UPDATE”;對(duì)于視圖有“DELETE
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年糖尿病患者的藥物相互作用用藥依從性研究
- 我國(guó)上市公司控制權(quán)轉(zhuǎn)移與公司績(jī)效關(guān)系:基于多維度視角的深度剖析
- 老年社區(qū)慢性病防控的特殊質(zhì)量控制
- 老年抑郁伴焦慮的藥物優(yōu)化方案-1
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)柔性制造(FMI)行業(yè)發(fā)展監(jiān)測(cè)及投資策略研究報(bào)告
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)勞保用品行業(yè)發(fā)展前景預(yù)測(cè)及投資方向研究報(bào)告
- 老年慢性咳嗽病因診斷流程方案
- 老年患者跌倒風(fēng)險(xiǎn)評(píng)估與預(yù)防CDSS方案
- 老年患者跌倒海恩法則預(yù)警方案
- 附:江西省會(huì)計(jì)師事務(wù)所服務(wù)收費(fèi)標(biāo)準(zhǔn)【模板】
- 合歡花苷類對(duì)泌尿系感染的抗菌作用
- 合伙人股權(quán)合同協(xié)議書
- 工程施工監(jiān)理技術(shù)標(biāo)
- 出納常用表格大全
- 年終尾牙會(huì)領(lǐng)導(dǎo)講話稿
- 計(jì)量器具-GRR分析表格
- 向規(guī)范要50分規(guī)范答題主題班會(huì)-課件
- cie1931年標(biāo)準(zhǔn)色度觀測(cè)者的光譜色品坐標(biāo)
- per200軟件petrel2009中文版教程
- SB/T 10595-2011清潔行業(yè)經(jīng)營(yíng)服務(wù)規(guī)范
評(píng)論
0/150
提交評(píng)論