數(shù)據(jù)庫(kù)系統(tǒng)17--用戶和安全性管理



單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,第,17,講,用戶和安全性管理,一、,SQL Server,安全機(jī)制,,,1,安全性概述,,,2,安全機(jī)制,的四個(gè)層次,,二、登錄管理,,,,1,用企業(yè)管理器管理登錄,,,2,用,T-SQL,,命令管理登錄,,三、用戶、角色和權(quán)限管理,,,1,用戶管理,,,2,角色管理,,,3,權(quán)限管理,,一、,SQL Server,安全機(jī)制,,,1,安全性概述,在開發(fā)數(shù)據(jù)庫(kù)的時(shí)候,經(jīng)常會(huì)擔(dān)心數(shù)據(jù)庫(kù)的,,安全性,.,雖然不必要在數(shù)據(jù)庫(kù)設(shè)計(jì)還未定型時(shí)就,,開始應(yīng)用安全性,但是對(duì)于數(shù)據(jù)庫(kù)項(xiàng)目來(lái)說(shuō),早,,一些開發(fā)和實(shí)施安全性計(jì)劃比晚一些要好得多,.,,,與數(shù)據(jù)庫(kù)項(xiàng)目的所有其它方面一樣,必須對(duì),,安全性加以仔細(xì)地設(shè)計(jì)、實(shí)施和測(cè)試,.,安全性會(huì),,影響到一些過(guò)程的執(zhí)行,在開發(fā)項(xiàng)目的代碼時(shí)必,,須對(duì)它加以考慮,.,,對(duì)于較小的組織來(lái)說(shuō),使用具有較少的角色,,,,并將,IT,,用戶作為,sysadmin,,的簡(jiǎn)單安全計(jì)劃就,,足夠了,.,較大的組織,---,軍隊(duì)、銀行或者研究機(jī)構(gòu),,---,將需要更為復(fù)雜的安全性計(jì)劃,設(shè)計(jì)它時(shí)需要,,像設(shè)計(jì)邏輯數(shù)據(jù)庫(kù)模式一樣仔細(xì),.,,SQL Server,的安全性模型是經(jīng)過(guò)精心設(shè)計(jì)的,,,,如果能夠全面地理解它,就會(huì)發(fā)現(xiàn)它既合理又靈,,活,.,其中,保證數(shù)據(jù)庫(kù)安全性的主要手段是創(chuàng)建,,用戶和角色,然后指派權(quán)限;而安全策略的主要,,工作則是確定數(shù)據(jù)訪問(wèn)的權(quán)利和責(zé)任,然后實(shí)施,,安全計(jì)劃,.,,數(shù)據(jù)庫(kù)管理系統(tǒng)盡管在企業(yè)的,IT,,架構(gòu)中,,起著舉足輕重的作用,但仍然還是一個(gè)運(yùn)行在,,某一特定操作系統(tǒng)平臺(tái)下的應(yīng)用軟件,.,這樣,,,,SQL Server,的安全機(jī)制可以分為如下四個(gè)層,,次:,,(,1,)客戶機(jī)操作系統(tǒng)的安全性,,(,2,),SQL Server,的登錄安全性,,(,3,)數(shù)據(jù)庫(kù)的使用安全性,,(,4,)數(shù)據(jù)庫(kù)對(duì)象的使用安全性,,每個(gè)安全層次就好像一道門,如果門沒(méi)有,,上鎖或有開門的鑰匙,用戶就可通過(guò)這道門,.,2,安全機(jī)制,的四個(gè)層次,,,(,1,)客戶機(jī)操作系統(tǒng)的安全性,,,在用戶要使用客戶計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)訪問(wèn),,SQL Server,服務(wù)器時(shí),首先要獲得客戶計(jì)算,,機(jī)操作系統(tǒng)的使用權(quán),.,即,用戶至少要知道客,,戶端計(jì)算機(jī)的用戶名和密碼,以能夠使用它,.,,,一般地,在已有網(wǎng)絡(luò)互聯(lián)的前提下,用戶,,要登錄的是客戶機(jī),然后再通過(guò)客戶機(jī)上安裝,,的,SQL Server,客戶端對(duì)服務(wù)器端進(jìn)行訪問(wèn),.,,,定義操作系統(tǒng)安全性是操作系統(tǒng)管理員和,,網(wǎng)絡(luò)管理員的任務(wù),.,SQL Server,采用了集成,,Windows,系統(tǒng)網(wǎng)絡(luò)安全性的機(jī)制,.,,,(,2,),SQL Server,服務(wù)器的安全性,,,SQL Server,的服務(wù)器級(jí)安全性建立在控制,,服務(wù)器登錄帳號(hào)和口令的基礎(chǔ)上,.,,SQL Server,采用了標(biāo)準(zhǔn),SQL Server,登錄,,和集成,Windows,,系統(tǒng)登錄兩種方式,.,,,一旦服務(wù)器了解和識(shí)別了用戶,就可以通,,過(guò)為他授予固定服務(wù)器角色使其具有特定的服,,務(wù)器管理權(quán)限,.,,,如果用戶屬于,sysadmin,,角色,他就具有,,了全面訪問(wèn)所有服務(wù)器功能、數(shù)據(jù)庫(kù)和服務(wù)器,,上的對(duì)象的權(quán)限,.,,,(,3,) 數(shù)據(jù)庫(kù)的安全性,,,在用戶通過(guò),SQL Server,服務(wù)器的安全性,,檢驗(yàn)以后,將直接面對(duì)不同的數(shù)據(jù)庫(kù)入口,.,這,,是用戶將要接受的第三次安全性檢驗(yàn),.,,,在建立用戶登錄帳號(hào)信息時(shí),,,SQL Server,,會(huì)提示用戶選擇默認(rèn)的數(shù)據(jù)庫(kù),以后每次登錄,,后會(huì)自動(dòng)轉(zhuǎn)到這個(gè)數(shù)據(jù)庫(kù)上,.,系統(tǒng)缺省的默認(rèn),,數(shù)據(jù)庫(kù)是,master,.,最好將默認(rèn)數(shù)據(jù)庫(kù)設(shè)置在,,具有實(shí)際操作意義的數(shù)據(jù)庫(kù)上,.,,在默認(rèn)情況下,只有數(shù)據(jù)庫(kù)的擁有者才可,,以訪問(wèn)該數(shù)據(jù)庫(kù)的對(duì)象,.,數(shù)據(jù)庫(kù)的擁有者可以,,分配訪問(wèn)權(quán)給別的用戶,以便讓別的用戶也擁,,有針對(duì)該數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)利,.,在,SQL Server,,中并不是所有的權(quán)利都可以自由轉(zhuǎn)讓和分配的,.,,,有一個(gè)特殊情況,那就是,Guest,用戶,.,在,,安裝系統(tǒng)時(shí),,,Guest,用戶加入到,master,、,,pubs,、,tempdb,,和,Northwind,,數(shù)據(jù)庫(kù)中,這個(gè),,用戶帳號(hào)主要供那些沒(méi)有當(dāng)前,SQL Server,數(shù),,據(jù)庫(kù)用戶的登錄者使用,使他們能夠以匿名訪,,問(wèn)的方式察看該用戶所擁有的數(shù)據(jù)庫(kù)中的數(shù)據(jù),.,,(,4,)數(shù)據(jù)庫(kù)對(duì)象的安全性,,,數(shù)據(jù)庫(kù)對(duì)象的安全性是核查用戶權(quán)限的最,,后一個(gè)安全等級(jí),.,在創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的時(shí)候,,,SQL Server,將自動(dòng)把對(duì)象的擁有權(quán)賦予該對(duì)象,,的創(chuàng)建者,.,對(duì)象的擁有者可以實(shí)現(xiàn)對(duì)該對(duì)象的,,完全控制,.,,,在默認(rèn)情況下,只有數(shù)據(jù)庫(kù)的擁有者才可,,以在該數(shù)據(jù)庫(kù)下進(jìn)行操作,.,當(dāng)一個(gè)非數(shù)據(jù)庫(kù)的,,擁有者的用戶想訪問(wèn)數(shù)據(jù)庫(kù)里的對(duì)象時(shí),必須,,事先由數(shù)據(jù)庫(kù)的擁有者賦予對(duì)該用戶對(duì)指定對(duì),,象的指定操作,.,,例如,一個(gè)用戶想訪問(wèn),mydb,,數(shù)據(jù)庫(kù)里的,,company,表中的信息,.,則他必須在首先成為數(shù),,據(jù)庫(kù)合法用戶的前提下,獲得由,mydb,,數(shù)據(jù)庫(kù),,擁有者分配的針對(duì),company,表的訪問(wèn)權(quán)限,.,,,一般來(lái)說(shuō),為了減少管理的開銷,在對(duì)象,,級(jí)安全管理上應(yīng)該在大多數(shù)場(chǎng)合賦予數(shù)據(jù)庫(kù)用,,戶以廣泛的權(quán)限,然后再針對(duì)實(shí)際情況在某些,,敏感的數(shù)據(jù)上實(shí)施具體的訪問(wèn)權(quán)限限制,.,,,雖然整個(gè)認(rèn)證過(guò)程十分復(fù)雜,但是,數(shù)據(jù),,庫(kù)管理員管理服務(wù)器時(shí),卻是一件十分輕松的,,事,.,,二、登錄管理,,,1,用企業(yè)管理器管理登錄,使用企業(yè)管理器可以設(shè)置,SQL Server,認(rèn)證,,模式、創(chuàng)建登錄帳號(hào)、修改和刪除登陸帳號(hào),.,,,●,設(shè)置,SQL Server,,認(rèn)證模式,,,(,1,)啟動(dòng)企業(yè)管理器,選擇要設(shè)置的服務(wù)器,;,,,(,2,)單擊右鍵,選擇,〖,屬性,〗,;,,,(,3,)在相應(yīng)的對(duì)話框中,選擇,〖,安全性,〗,;,,,(,4,)進(jìn)行各項(xiàng)設(shè)置,;,,,(,5,)單擊,〖,確定,〗,按鈕,即可完成設(shè)置工作,.,,,演示,,●,創(chuàng)建登錄帳號(hào),,(,1,)啟動(dòng)企業(yè)管理器,單擊登錄服務(wù)器左邊,,的 “,+,”,圖標(biāo),;,,,(,2,)單擊,〖,安全性,〗,左邊的 “,+,”,圖標(biāo),;,,,(,3,)右鍵單擊,〖,登錄,〗,圖標(biāo),,,選擇,〖,新建登,,錄,〗,;,,,(,4,)進(jìn)行各項(xiàng)設(shè)置,;,,,(,5,)單擊,〖,確定,〗,按鈕,即可完成設(shè)置工作,.,,,演示,,,修改和刪除登陸帳號(hào)的操作類似,.,,2,用,T-SQL,,命令管理登錄,對(duì)于一些十分熟悉,SQL Server,的編程人,,員,/,數(shù)據(jù)庫(kù)管理人員來(lái)說(shuō),通過(guò)查詢分析器管理,,SQL Server,更方便和快捷,.,使用查詢分析器的,,前提是必須熟練掌握相關(guān)的,T-SQL,,命令,.,,,管理登錄的主要,T-SQL,命令如下:,,,sp_addlogin,,創(chuàng)建登錄帳號(hào),,,,sp_droplogin,,刪除登錄帳號(hào),,,sp_password,,修改登錄用戶的密碼,,,,sp_defaultdb,,修改默認(rèn)數(shù)據(jù)庫(kù),,用,EXEC,,調(diào)用它們,有的還需要參數(shù),.,,例如,創(chuàng)建帳戶,zhx,,密碼:,wanghan,,,,默認(rèn)數(shù)據(jù)庫(kù)為,mydb1,:,,,EXEC,,sp_addlogin,,‘,zhx,’, ’,wanghan,’,,,‘mydb1’,,,GO,,,完成,SQL Server,安裝后,系統(tǒng)就建立了,,一個(gè)特殊帳戶,sa,.,它擁有服務(wù)器和所有的數(shù)據(jù),,庫(kù),因此有最高的管理權(quán)限,可以執(zhí)行服務(wù)器,,范圍內(nèi)的所有操作,.,,,剛安裝完時(shí),,sa,,帳戶沒(méi)有密碼, 這是非,,常危險(xiǎn)的,.,要做的第一件事,,,就是設(shè),sa,,的密碼,.,,三、用戶、角色和權(quán)限管理,,,1,用戶管理,使用企業(yè)管理器可以創(chuàng)建數(shù)據(jù)庫(kù)用戶、查看,,用戶的權(quán)限設(shè)置、刪除數(shù)據(jù)庫(kù)用戶(略),.,,,●,創(chuàng)建數(shù)據(jù)庫(kù)用戶,,,(,1,)啟動(dòng)企業(yè)管理器,單擊登錄服務(wù)器左邊,,的 “,+,”,圖標(biāo),展開,〖,數(shù)據(jù)庫(kù),〗,選項(xiàng)夾;,,(,2,)單擊要?jiǎng)?chuàng)建用戶帳號(hào)的那個(gè),〖,數(shù)據(jù)庫(kù),〗,,左邊的 “,+,”,圖標(biāo),;,,,(,3,)右鍵單擊,〖,用戶,〗,圖標(biāo),,,選擇,〖,新建數(shù)據(jù),,庫(kù)用戶,〗,;,,,(,4,)進(jìn)行各項(xiàng)設(shè)置,;,,,(,5,)單擊,〖,確定,〗,按鈕,即可完成設(shè)置工作,.,,,,演示,,,●,查看用戶的權(quán)限設(shè)置,,數(shù)據(jù)庫(kù)管理員在日常維護(hù)過(guò)程中,應(yīng)經(jīng)常,,檢查數(shù)據(jù)庫(kù)用戶的信息,防止某些非法用戶通,,過(guò)各種方法解密數(shù)據(jù)庫(kù)服務(wù)器,通過(guò)非法創(chuàng)建,,數(shù)據(jù)庫(kù)用戶的方式越權(quán)訪問(wèn)數(shù)據(jù)庫(kù)的內(nèi)容,.,,,在,SQL Server,中,,,利用企業(yè)管理器可以,,十分直觀、方便地查看某數(shù)據(jù)庫(kù)中所有的數(shù)據(jù),,庫(kù)用戶權(quán)限設(shè)置,使用查詢分析器,可以查看,,出更多數(shù)據(jù)庫(kù)用戶設(shè)置相關(guān)的內(nèi)容,.,,,利用企業(yè)管理器查看用戶權(quán)限的方法與前,,面講的相似,,,不再敘述,.,,2,角色管理,企業(yè)管理器可管理服務(wù)器角色和數(shù)據(jù)庫(kù)角色,.,,,●,管理服務(wù)器角色,,,對(duì)于服務(wù)器角色來(lái)講,數(shù)據(jù)庫(kù)管理員能做的,,操作只有兩個(gè):添加或刪除服務(wù)器角色中的成員,,,,而不能刪除服務(wù)器預(yù)定義的角色(,8,種),.,,,(,1,)啟動(dòng)企業(yè)管理器,登錄到指定的服務(wù)器,;,,,(,2,)展開,〖,安全性,〗,,單擊,〖,服務(wù)器角色,〗,;,,,(,3,)右鍵單擊相應(yīng)的服務(wù)器角色,在彈出的,,菜單中,選擇,〖,屬性,〗,;,,,(,4,)在相應(yīng)的對(duì)話框中,進(jìn)行設(shè)置,.,,,,演示,,數(shù)據(jù)庫(kù)角色有兩種:固定數(shù)據(jù)庫(kù)角色和用戶,,自定義的數(shù)據(jù)庫(kù)角色,.,,,兩種數(shù)據(jù)庫(kù)角色的管理都可以用,企業(yè)管理器,,進(jìn)行,.,,,SQL Server,中有一個(gè)特殊的數(shù)據(jù)庫(kù)角色,就,,是,public,.,所有的數(shù)據(jù)庫(kù)用戶都屬于,public,角色,.,,它的特點(diǎn)是:,,,(1),替數(shù)據(jù)庫(kù)用戶捕獲所有的數(shù)據(jù)庫(kù)默認(rèn)權(quán)限,.,,(2),不能將,public,角色分配,.,,(3),public,角色存在于每一個(gè)數(shù)據(jù)庫(kù)中,.,,(4),不能將,public,角色刪除,.,,在所有數(shù)據(jù)庫(kù)用戶中,特殊用戶,dbo,,具有最,,高的管理權(quán)限,.,作為數(shù)據(jù)庫(kù)的擁有者,它也是所,,有數(shù)據(jù)庫(kù)對(duì)象的擁有者,可以在數(shù)據(jù)庫(kù)范圍內(nèi)執(zhí),,行一切操作,.,,,固定的服務(wù)器角色,sysadmin,,的用戶都對(duì)應(yīng),,數(shù)據(jù)庫(kù)用戶,dbo,,所有由,sysadmin,,成員創(chuàng)建的,,數(shù)據(jù)庫(kù)對(duì)象都自動(dòng)將擁有者設(shè)置為,dbo,.,,3,權(quán)限管理,企業(yè)管理器可以管理權(quán)限,.,,,注意,:,,,權(quán)限只能授予本數(shù)據(jù)庫(kù)的用戶,或者獲準(zhǔn)訪,,問(wèn)本數(shù)據(jù)庫(kù)的別的數(shù)據(jù)庫(kù)的用戶,.,,,如果將權(quán)限授予了,public,角色,則所有的數(shù),,據(jù)庫(kù)里的所有的用戶都將默認(rèn)地獲得了該項(xiàng)權(quán)限,.,,,如果將權(quán)限授予了,guest,用戶,則所有可連,,接上服務(wù)器的用戶都將默認(rèn)地獲得了該項(xiàng)權(quán)限,.,,,教學(xué)調(diào)查,,1《,數(shù)據(jù)庫(kù),》,課程的重要性?,,2,你認(rèn)為本課程如何教學(xué)會(huì)更好?,,3,你認(rèn)為應(yīng)用數(shù)學(xué)專業(yè)課程設(shè)置應(yīng)怎樣改進(jìn)?,,。
