版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
教學單元1.9第11章數(shù)據(jù)庫的安全性管理SQLServer2012數(shù)據(jù)庫技術及應用案例1-11教務管理數(shù)據(jù)庫的安全性管理數(shù)據(jù)庫的安全性管理學習導航2數(shù)據(jù)庫的安全性管理知識框架3單元1.9數(shù)據(jù)庫的安全性管理能力目標能夠根據(jù)數(shù)據(jù)庫的安全性需求設置登錄身份驗證模式能夠根據(jù)數(shù)據(jù)庫的安全性需求創(chuàng)建登錄名能夠根據(jù)數(shù)據(jù)庫的安全性需求創(chuàng)建數(shù)據(jù)庫用戶能夠根據(jù)數(shù)據(jù)庫的安全性需求進行架構(gòu)管理能夠根據(jù)數(shù)據(jù)庫的安全性需求進行權(quán)限管理能夠根據(jù)數(shù)據(jù)庫的安全性需求進行角色管理能夠處理好維護數(shù)據(jù)庫安全和為用戶服務之間的關系能夠閱讀并理解數(shù)據(jù)庫安全有關的英文4單元1.9數(shù)據(jù)庫的安全性管理知識目標數(shù)據(jù)庫的安全性管理概述身份驗證與模式配置方法登錄名管理的方法數(shù)據(jù)庫用戶管理的方法架構(gòu)管理的方法權(quán)限管理的方法角色管理的方法數(shù)據(jù)庫安全有關的英文素質(zhì)目標培養(yǎng)數(shù)據(jù)庫管理員的責任心和管理潛力培養(yǎng)與用戶的良好協(xié)調(diào)與溝通的能力5單元1.9數(shù)據(jù)庫的安全性管理案例1-11教務管理數(shù)據(jù)庫的安全性管理根據(jù)教務管理系統(tǒng)的安全性需求,進行服務器登錄名、數(shù)據(jù)庫用戶、架構(gòu)、權(quán)限以及角色的管理。設置身份驗證模式使用SSMS或T-SQL創(chuàng)建Windows登錄名使用SSMS或T-SQL創(chuàng)建SQLServer登錄名使用SSMS或T-SQL創(chuàng)建數(shù)據(jù)庫用戶使用SSMS或T-SQL創(chuàng)建并管理架構(gòu)、權(quán)限和角色工作任務67數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8單元1.9數(shù)據(jù)庫的安全性管理與建設方案保持一致安全特性延續(xù)策略改進增強安全機制操作系統(tǒng)級(Windows)網(wǎng)絡傳輸級服務器級(SQLServer)數(shù)據(jù)庫級數(shù)據(jù)庫對象級SQLServer20128一、數(shù)據(jù)庫的安全性管理概述一、數(shù)據(jù)庫的安全性管理概述Windows級的安全性建立在操作系統(tǒng)安全系統(tǒng)控制的基礎上。用戶使用客戶機通過網(wǎng)絡實現(xiàn)SQLServer服務器的訪問時,首先要獲得計算機操作系統(tǒng)的使用權(quán)。操作系統(tǒng)管理員或者網(wǎng)絡管理員負責管理。1.
Windows級的安全機制9一、數(shù)據(jù)庫的安全性管理概述網(wǎng)絡傳輸級的安全性主要建立在防御黑客惡意入侵以及數(shù)據(jù)加密技術的基礎上。不允許SQLServer通過Internet直接訪問提供防火墻或者入侵檢測系統(tǒng)(IDS)SQLServer2012對關鍵數(shù)據(jù)進行了加密,使用AES-256加密算法來保護服務主密鑰(SMK)和數(shù)據(jù)庫主密鑰(DMK),這是一種比早期版本中使用的3DES更新的加密算法。2.網(wǎng)絡傳輸級的安全機制10一、數(shù)據(jù)庫的安全性管理概述SQLServer服務器級的安全性建立在控制服務器登錄名和密碼的基礎上。采用集成Windows登錄和標準SQLServer登錄兩種方式。用戶在登錄SQLServer服務器時,要提供正確的登錄名和密碼才能獲得SQLServer的訪問權(quán)限。數(shù)據(jù)庫管理員負責管理與設計合理的登錄方式。3.
SQLServer服務器級的安全機制11一、數(shù)據(jù)庫的安全性管理概述SQLServer數(shù)據(jù)庫級的安全性建立在控制合法數(shù)據(jù)庫用戶的基礎上。要獲得訪問服務器上各數(shù)據(jù)庫的權(quán)利,必須創(chuàng)建映射到登錄名的數(shù)據(jù)庫用戶。4.
數(shù)據(jù)庫級的安全機制12一、數(shù)據(jù)庫的安全性管理概述SQLServer數(shù)據(jù)庫對象級的安全性建立在授權(quán)與檢查用戶對數(shù)據(jù)庫對象訪問的權(quán)限的基礎上。用戶操作數(shù)據(jù)庫對象時,必須檢查該用戶是否具有操作該對象的權(quán)限,SQLServer將自動把該數(shù)據(jù)庫對象的擁有權(quán)賦予創(chuàng)建該對象的擁有者。對象的擁有者可以實現(xiàn)該對象的安全控制。5.
數(shù)據(jù)庫對象級的安全機制13一、數(shù)據(jù)庫的安全性管理概述第一步:當用戶連接服務器時,驗證用戶是否具有關聯(lián)的登錄名。第二步:當用戶訪問數(shù)據(jù)庫時,驗證用戶是否映射了相應的數(shù)據(jù)庫用戶。第三步:當用戶訪問數(shù)據(jù)庫的對象時,驗證用戶是否具相應的權(quán)限。三個驗證過程14單元1.9
數(shù)據(jù)庫的安全性管理15數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8二、身份驗證與模式配置Windows用戶來自于Windows的用戶或組。SQLServer用戶SQLServer內(nèi)部創(chuàng)建的SQLServer登錄名。兩種類型的用戶16二、身份驗證與模式配置Windows身份驗證模式啟用Windows身份驗證并禁用SQLServer身份驗證?;旌仙矸蒡炞C模式同時啟用Windows身份驗證和SQLServer身份驗證。兩種驗證模式17二、身份驗證與模式配置Windows身份驗證運行的是操作系統(tǒng)的安全機制以Windows用戶身份連接到服務器時,由操作系統(tǒng)驗證用戶的賬戶名和密碼,SQLServer僅關聯(lián)其相應的登錄名。用戶一旦通過操作系統(tǒng)的驗證,SQLServer就不再需要其他的身份驗證了。使用此模式與服務器建立的連接稱為信任連接。系統(tǒng)默認Windows身份驗證模式它利用Kerberos安全協(xié)議,通過強密碼的復雜性驗證提供密碼策略強制,提供賬戶鎖定支持,并且支持密碼過期,比混合模式更為安全。1.
Windows身份驗證18二、身份驗證與模式配置SQLServer身份驗證運行的是數(shù)據(jù)庫服務器安全機制。以SQLServer用戶身份連接到服務器時,必須提供SQLServer內(nèi)部創(chuàng)建的登錄名和密碼,SQLServer將其與存儲在系統(tǒng)表中的登錄名和密碼進行比較來進行身份驗證。SQLServer登錄名和密碼的連接稱為非信任連接。提供SQLServer身份驗證只是為了向后兼容。如果必須使用SQLServer登錄名以適應早期應用程序,則必須為所有SQLServer用戶設置強密碼。2.
SQLServer身份驗證19二、身份驗證與模式配置啟動SSMS并連接到數(shù)據(jù)庫引擎服務器在【對象資源管理器】窗口中,右鍵單擊數(shù)據(jù)庫引擎服務器節(jié)點,在快捷菜單中選擇“屬性”命令3.配置身份驗證模式20二、身份驗證與模式配置選擇【服務器屬性】窗口—【安全性】頁在“服務器身份驗證”選項區(qū)域中選擇需要的驗證模式設置登錄審核3.設置身份驗證模式21單元1.9
數(shù)據(jù)庫的安全性管理22數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8三、登錄名管理登錄名是創(chuàng)建在數(shù)據(jù)庫引擎服務器中可由安全系統(tǒng)進行身份驗證的安全主體,用戶需要使用登錄名連接到SQLServer服務器。任何一個Windows用戶或者SQLServer用戶要連接到數(shù)據(jù)庫引擎,都必須關聯(lián)一個合法的登錄名。什么是登錄名?23三、登錄名管理內(nèi)置登錄名1創(chuàng)建Windows登錄名23創(chuàng)建SQLServer登錄名24修改和刪除登錄名4(一)內(nèi)置登錄名內(nèi)置Windows和SQLServer登錄名25(一)內(nèi)置登錄名SQLServer2012安裝過程中指定的SQLServer管理員例如:計算機“ZH”上的Windows用戶“Hui”被指定為SQLServer管理員SQLServer2012的安裝過程中,數(shù)據(jù)庫引擎配置頁,指定當前用戶為SQLServer管理員。1.
SQLServer管理員的登錄名名26(一)內(nèi)置登錄名27(一)內(nèi)置登錄名SQLServer2012安裝過程中指定的SQLServer管理員SQLServer自動為其創(chuàng)建登錄名固定服務器角色“sysadmin”的成員可以在服務器中執(zhí)行任何活動1.
SQLServer管理員的登錄名名28(一)內(nèi)置登錄名SQLServer2012安裝過程中指定的SQLServer管理員SQLServer自動為其創(chuàng)建登錄名固定服務器角色“sysadmin”的成員(見11.7角色管理)可以在服務器中執(zhí)行任何活動1.
SQLServer管理員的登錄名名29(一)內(nèi)置登錄名SQLServer2012安裝過程中指定的SQLServer管理員SQLServer自動為其創(chuàng)建登錄名固定服務器角色“sysadmin”的成員可以在服務器中執(zhí)行任何活動展開“安全性”→“登錄名”節(jié)點,右鍵單擊“ZH\Hui”節(jié)點,從快捷菜單中選擇“屬性”命令,在【登錄屬性-ZH\Hui】窗口—【服務器角色】頁中,也可以看到該登錄名被設置為固定服務器角色“sysadmin”。1.
SQLServer管理員的登錄名名30(一)內(nèi)置登錄名31(一)內(nèi)置登錄名sa(superadministrator)是內(nèi)置的SQLServer系統(tǒng)管理員SQLServer身份驗證進行連接始終作為數(shù)據(jù)庫引擎中的登錄名存在對SQLServer有完全的管理權(quán)限安裝時默認為禁用可在【登錄屬性-sa】的【狀態(tài)】頁
中選擇登錄為“啟用”2.
sa賬戶的登錄名名32(一)內(nèi)置登錄名【登錄屬性-sa】窗口—【狀態(tài)】頁【狀態(tài)】頁
中選擇登錄為“啟用”2.
sa賬戶的登錄名33(一)內(nèi)置登錄名【常規(guī)】頁中為登錄名“sa”設置強密碼并可靠記憶2.
sa賬戶的登錄名34(一)內(nèi)置登錄名為了能讓SQLServer服務在Windows系統(tǒng)中正常的啟動和運行,需要配置相應的服務賬戶并獲取需要訪問操作系統(tǒng)文件的權(quán)限。SQLServer安裝之后系統(tǒng)自動創(chuàng)建相應服務賬戶的登錄名,并添加為相應固定服務器角色的成員。不可刪除3.服務賬戶的登錄名名35(一)內(nèi)置登錄名名稱由“##”括起來的登錄名是基于證書的SQLServer登錄名,僅供內(nèi)部系統(tǒng)使用,不應刪除。例如:##MS_PolicyEventProcessingLogin####MS_PolicyTsqlExecutionLogin##4.基于證書的SQLServer登錄名名36三、登錄名管理內(nèi)置登錄名1創(chuàng)建Windows登錄名23創(chuàng)建SQLServer登錄名37修改和刪除登錄名4(二)創(chuàng)建Windows登錄名Windows登錄名是Windows級的安全主體。如果用戶使用Windows身份連接服務器,將由操作系統(tǒng)驗證該Windows(本地或域)用戶的賬戶名和密碼,而在數(shù)據(jù)庫引擎服務器上僅需要為該用戶關聯(lián)一個登錄名案例:在本地機“ZH”中創(chuàng)建了一些Windows用戶和Windows組,讀者可以在Windows操作系統(tǒng)的【計算機管理】窗口中創(chuàng)建。安全主體——Windows登錄名名38(二)創(chuàng)建Windows登錄名在【計算機管理】窗口中建立新用戶39(二)創(chuàng)建Windows登錄名在【計算機管理】窗口中建立組40(二)創(chuàng)建Windows登錄名在【新建組】對話框中建立組并添加成員41(二)創(chuàng)建Windows登錄名ZH本地機Windows用戶用戶密碼ZH本地機Windows組Windows登錄名默認數(shù)據(jù)庫數(shù)據(jù)庫用戶Zhangmin******ZH\ZhangminEDUC*ZhangminShijun******ZH\ShijunEDUC*ShijunZhlian******TeachersZH\TeachersEDUCZH\TeachersZpeng******Zweishi******Hui(本地管理員)******AdministratorsZH\Hui(指定的SQLServer管理員)masterdbo(內(nèi)置)42(二)創(chuàng)建Windows登錄名例1:使用SSMS創(chuàng)建與服務器“ZH”的Windows用戶“Zhangmin”關聯(lián)的登錄名“ZH\Zhangmin”。以指定SQLServer管理員用戶登錄計算機,啟動SSMS并連接到數(shù)據(jù)庫引擎服務器在【對象資源管理器】窗口中展開“安全性”節(jié)點,用右鍵單擊“登錄名”節(jié)點在彈出的快捷菜單中選擇“新建登錄名”命令1.使用SSMS創(chuàng)建Windows登錄名43(二)創(chuàng)建Windows登錄名【登錄名-新建】窗口-【常規(guī)】頁,選擇“Windows身份驗證”“登錄名”輸入服務器名稱和Windows用戶名稱“ZH\Zhangmin”等1.使用SSMS創(chuàng)建Windows登錄名44(二)創(chuàng)建Windows登錄名在【對象資源管理器】窗口中展開“安全性”→“登錄名”節(jié)點,可以看到新建的登錄名“ZH\Zhangmin”1.使用SSMS創(chuàng)建Windows登錄名45(二)創(chuàng)建Windows登錄名切換用戶,再次以Windows用戶“Zhangmin”的身份啟動計算機,使用SSMS連接SQLServer數(shù)據(jù)庫引擎服務器,仍然會彈出【連接到服務器】失敗的錯誤提示對話框。因為該登錄名“ZH\Zhangmin”尚不是默認數(shù)據(jù)庫“EDUC”的合法用戶1.使用SSMS創(chuàng)建Windows登錄名46(二)創(chuàng)建Windows登錄名例2:創(chuàng)建與Windows組“Teachers”關聯(lián)的登錄名以指定SQLServer管理員用戶登錄計算機,啟動SSMS并連接到數(shù)據(jù)庫引擎服務器在【對象資源管理器】窗口中展開“安全性”節(jié)點,用右鍵單擊“登錄名”節(jié)點在彈出的快捷菜單中選擇“新建登錄名”命令1.使用SSMS創(chuàng)建Windows(組)登錄名47(二)創(chuàng)建Windows登錄名【登錄名-新建】窗口,選擇“Windows身份驗證”“登錄名”輸入服務器和Windows用戶名稱“ZH\Zhangmin”注意:可借助檢索1.使用SSMS創(chuàng)建Windows(組)登錄名48(二)創(chuàng)建Windows登錄名【登錄名-新建】窗口—【用戶映射】頁選擇數(shù)據(jù)庫注意:可以在此創(chuàng)建與登錄名同名的數(shù)據(jù)庫用戶1.使用SSMS創(chuàng)建Windows(組)登錄名49(二)創(chuàng)建Windows登錄名在【對象資源管理器】窗口中展開“安全性”→“登錄名”節(jié)點,可以看到新建的登錄名“ZH\Teachers”1.使用SSMS創(chuàng)建Windows(組)登錄名50(二)創(chuàng)建Windows登錄名“數(shù)據(jù)庫”→EDUC→“安全性”→“用戶”可見新建數(shù)據(jù)庫用戶注意:此數(shù)據(jù)庫用戶尚無任何權(quán)限1.使用SSMS創(chuàng)建Windows(組)登錄名51(二)創(chuàng)建Windows登錄名切換用戶,分別以Windows組“Teachers”的成員“Zhlian”“Zpeng”和“Zweishi”的身份啟動計算機,使用SSMS連接SQLServer數(shù)據(jù)庫引擎服務器,即可實現(xiàn)使用Windows身份驗證連接到SQLServer實例。1.使用SSMS創(chuàng)建Windows(組)登錄名52(二)創(chuàng)建Windows登錄名連接成功之后,在【對象資源管理器】窗口中展開“數(shù)據(jù)庫”→“EDUC”→“表”節(jié)點,發(fā)現(xiàn)只能看到“系統(tǒng)表”和“FileTables”而不能看到用戶表。1.使用SSMS創(chuàng)建Windows(組)登錄名53(二)創(chuàng)建Windows登錄名右鍵單擊“表”節(jié)點,從快捷菜單中選擇“新建表”命令,也會彈出錯誤提示對話框,提示該用戶沒有CREATETABLE(新建表)的權(quán)限,1.使用SSMS創(chuàng)建Windows(組)登錄名54(二)創(chuàng)建Windows登錄名語法CREATELOGIN域名\登錄名FROMWINDOWSWITHDEFAULT_DATABASE=默認數(shù)據(jù)庫名,DEFAULT_LANGUAGE=[簡體中文]|……2.使用T-SQL創(chuàng)建Windows登錄名55(二)創(chuàng)建Windows登錄名例3:創(chuàng)建與Windows用戶“Shijun”關聯(lián)的登錄名“ZH\Shijun”,默認數(shù)據(jù)庫為“EDUC”,默認數(shù)據(jù)庫語言為“簡體中文”。代碼:CREATELOGIN[ZH\Shijun]
--方括號界定不規(guī)則標識符“\”FROMWINDOWSWITHDEFAULT_DATABASE=EDUC,--默認數(shù)據(jù)庫DEFAULT_LANGUAGE=[簡體中文]--默認語言2.使用T-SQL創(chuàng)建Windows登錄名56(二)創(chuàng)建Windows登錄名執(zhí)行以上語句即可創(chuàng)建登錄名“ZH\Shijun”2.使用T-SQL創(chuàng)建Windows登錄名57三、登錄名管理內(nèi)置登錄名1創(chuàng)建Windows登錄名23創(chuàng)建SQLServer登錄名58修改和刪除登錄名4(三)創(chuàng)建SQLServer登錄名SQLServer登錄名密
碼默認數(shù)據(jù)庫數(shù)據(jù)庫用戶Cuili(教師)******EDUCCuili(Reader、Writer)Zhaochg(學生)******EDUC*ZhaochgChengp(學生)******EDUCWuqj(學生)*******Wuqjsa(內(nèi)置SQLServer管理員)******masterdbo(內(nèi)置,無限制訪問數(shù)據(jù)庫)59(三)創(chuàng)建SQLServer登錄名例4:為方便某系管理人員查看和管理本系學生的學習情況,創(chuàng)建一個使用SQLServer身份驗證的登錄名“Cuili”,密碼為“******”,默認數(shù)據(jù)庫為“EDUC”。為登錄名“CuiLi”映射數(shù)據(jù)庫用戶“Cuili”,并賦予對數(shù)據(jù)庫的讀寫權(quán)限,以使其能夠?qū)?shù)據(jù)庫“EDUC”進行讀寫訪問。1.使用SSMS創(chuàng)建SQLServer登錄名60(三)創(chuàng)建SQLServer登錄名操作步驟:以指定SQLServer管理員用戶登錄計算機,啟動SSMS并連接到數(shù)據(jù)庫引擎服務器在【對象資源管理器】窗口中展開“安全性”節(jié)點,用右鍵單擊“登錄名”節(jié)點在彈出的快捷菜單中選擇“新建登錄名”命令1.使用SSMS創(chuàng)建SQLServer登錄名61(三)創(chuàng)建SQLServer登錄名【登錄名-新建】窗口—[常規(guī)]頁62(三)創(chuàng)建SQLServer登錄名【登錄名-新建】窗口——[服務器角色]頁63(三)創(chuàng)建SQLServer登錄名【登錄名-新建】窗口—[用戶映射]頁64(三)創(chuàng)建SQLServer登錄名查看映射了數(shù)據(jù)庫用戶“Cuili”的登錄名“Cuili”對數(shù)據(jù)庫對象的讀寫權(quán)限:單擊【對象資源管理器】窗口的“連接”按鈕,選擇“數(shù)據(jù)庫引擎”,在【連接到服務器】對話框中選擇SQLServer身份驗證,輸入登錄名“Cuili”和密碼,單擊“連接”按鈕,即可連接到數(shù)據(jù)庫引擎服務器。嘗試訪問數(shù)據(jù)庫“EDUC”中的表,體會作為數(shù)據(jù)庫角色“db_datareader”和“db_datawriter”成員的權(quán)限。1.使用SSMS創(chuàng)建SQLServer登錄名65(三)創(chuàng)建SQLServer登錄名語法:CREATELOGIN登錄名 --創(chuàng)建登錄名WITHPASSWORD=密碼
--設置密碼[,DEFAULT_DATABASE=默認數(shù)據(jù)庫名][,DEFAULT_LANGUAGE=默認語言]...2.使用T-SQL創(chuàng)建SQLServer登錄名66(三)創(chuàng)建SQLServer登錄名例5:為使學生能夠查看數(shù)據(jù)庫“EDUC”中的學習信息,分別創(chuàng)建三個SQLServer用戶的登錄名:登錄名“Zhaochg”(密碼“216001”)登錄名“Chengp”(密碼“216119”)登錄名“Wuqj”(密碼“216111”)為前兩個登錄名設置默認數(shù)據(jù)庫“EDUC”2.使用T-SQL創(chuàng)建SQLServer登錄名67(三)創(chuàng)建SQLServer登錄名代碼:CREATELOGINZhaochg --創(chuàng)建登錄名WITHPASSWORD=‘216001’,--設置密碼DEFAULT_DATABASE=EDUC --設置默認數(shù)據(jù)庫GOCREATELOGINChengp --創(chuàng)建登錄名WITHPASSWORD=‘216119’ --設置密碼DEFAULT_DATABASE=EDUC --設置默認數(shù)據(jù)庫GO2.使用T-SQL創(chuàng)建SQLServer登錄名68(三)創(chuàng)建SQLServer登錄名代碼:CREATELOGINWuqj --創(chuàng)建登錄名WITHPASSWORD=‘216111’ --設置密碼執(zhí)行結(jié)果:2.使用T-SQL創(chuàng)建SQLServer登錄名69(三)創(chuàng)建SQLServer登錄名嘗試連接在【連接到服務器】對話框中選擇SQLServer身份驗證,輸入登錄名“Wuqj”和密碼“216111”,單擊“連接”按鈕2.使用T-SQL創(chuàng)建SQLServer登錄名70三、登錄名管理內(nèi)置登錄名1創(chuàng)建Windows登錄名23創(chuàng)建SQLServer登錄名71修改和刪除登錄名4(四)修改和刪除登錄名在【對象資源管理器】窗口中,右鍵單擊“登錄名”,從彈出的快捷菜單中選擇“屬性”命令,在打開的【登錄屬性】窗口中即可修改登錄密碼、默認數(shù)據(jù)庫,并可以為登錄名設置服務器角色、創(chuàng)建映射到此登錄名的數(shù)據(jù)庫用戶等。右鍵單擊“登錄名”,從彈出的快捷菜單中選擇“刪除”命令,即可刪除此登錄名。在執(zhí)行此操作前應該刪除所映射的數(shù)據(jù)庫用戶。1.使用SSMS修改和刪除登錄名72(四)修改和刪除登錄名修改登錄名語法:ALTERLOGIN登錄名WITHPASSWORD='密碼'[OLD_PASSWORD='舊密碼']|DEFAULT_DATABASE=默認數(shù)據(jù)庫名|DEFAULT_LANGUAGE=默認語言|NAME=登錄名...2.使用T-SQL修改和刪除登錄名73(四)修改和刪除登錄名刪除登錄名語法:DROPLOGIN登錄名舉例:DROPLOGINChengp2.使用T-SQL修改和刪除登錄名74單元1.9
數(shù)據(jù)庫的安全性管理75數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8四、數(shù)據(jù)庫用戶管理數(shù)據(jù)庫用戶是數(shù)據(jù)庫級的安全主體,是數(shù)據(jù)庫級的安全策略登錄名→連接→SQLServer服務器通行證→進入→大樓數(shù)據(jù)庫用戶→訪問→數(shù)據(jù)庫1、數(shù)據(jù)庫2……鑰匙→打開→房間1、房間2……用戶的權(quán)限→操作→表、視圖、存儲過程…權(quán)限→使用→資源1、資源2……什么是數(shù)據(jù)庫用戶76四、數(shù)據(jù)庫用戶管理內(nèi)置數(shù)據(jù)庫用戶1創(chuàng)建數(shù)據(jù)庫用戶277修改和刪除數(shù)據(jù)庫用戶3(一)內(nèi)置數(shù)據(jù)庫用戶dbo(DatabaseOwner):數(shù)據(jù)庫的擁有者,是數(shù)據(jù)庫的管理員guest:數(shù)據(jù)庫的“客人”,所有非此數(shù)據(jù)庫的用戶INFORMATION_SCHEMA:實體,不能修改或刪除
sys:實體,不能修改或刪除內(nèi)置數(shù)據(jù)庫用戶78(一)內(nèi)置數(shù)據(jù)庫用戶dbo(DatabaseOwner):數(shù)據(jù)庫的擁有者,是數(shù)據(jù)庫的管理員自動映射到創(chuàng)建該數(shù)據(jù)庫的登錄名所擁有和默認的架構(gòu)為“dbo”展開“數(shù)據(jù)庫”→“EDUC”→“安全性”→“用戶”節(jié)點,右鍵“dbo”,在快捷菜單中選擇“屬性”命令內(nèi)置數(shù)據(jù)庫用戶dbo79(一)內(nèi)置數(shù)據(jù)庫用戶dbo(DatabaseOwner):固定數(shù)據(jù)庫角色“db_owner”的成員對數(shù)據(jù)庫具有全部管理權(quán)限【數(shù)據(jù)庫用戶-dbo】屬性窗口—【成員身份】頁內(nèi)置數(shù)據(jù)庫用戶dbo80(一)內(nèi)置數(shù)據(jù)庫用戶guest:數(shù)據(jù)庫的“客人”,所有非此數(shù)據(jù)庫的登錄名都將以“guest”的身份訪問數(shù)據(jù)庫并擁有“guest”所擁有的權(quán)限。對“guest”授予權(quán)限一定要慎重展開“數(shù)據(jù)庫”→“EDUC”→“安全性”→“用戶”節(jié)點,右鍵“guest”,在快捷菜單中選擇“屬性”命令注意到在【數(shù)據(jù)庫用戶-guest】屬性窗口—【常規(guī)】頁上,登錄名用戶類型不可選內(nèi)置數(shù)據(jù)庫用戶guest81(一)內(nèi)置數(shù)據(jù)庫用戶【數(shù)據(jù)庫用戶-guest】屬性窗口—【成員身份】頁上,“guest”默認不是任何固定數(shù)據(jù)庫角色的成員內(nèi)置數(shù)據(jù)庫用戶guest82四、數(shù)據(jù)庫用戶管理內(nèi)置數(shù)據(jù)庫用戶1創(chuàng)建數(shù)據(jù)庫用戶283修改和刪除數(shù)據(jù)庫用戶3(二)創(chuàng)建數(shù)據(jù)庫用戶已創(chuàng)建的登錄名已創(chuàng)建的數(shù)據(jù)庫用戶1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶84(二)創(chuàng)建數(shù)據(jù)庫用戶例6:為登錄名“ZH\Zhangmin”創(chuàng)建數(shù)據(jù)庫“EDUC”的用戶“Zhangmin”操作步驟:啟動SSMS并連接到數(shù)據(jù)庫引擎服務器在【對象資源管理器】窗口中,展開數(shù)據(jù)庫節(jié)點,再展開數(shù)據(jù)庫“EDUC”→“安全性”節(jié)點右鍵單“用戶”節(jié)點,從快捷菜單中選擇“新建用戶”命令1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶85(二)創(chuàng)建數(shù)據(jù)庫用戶【數(shù)據(jù)庫用戶—新建】—【常規(guī)】頁輸入用戶名1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶86(二)創(chuàng)建數(shù)據(jù)庫用戶【數(shù)據(jù)庫用戶—新建】—【常規(guī)】頁輸入登錄名(搜索)1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶87(二)創(chuàng)建數(shù)據(jù)庫用戶【數(shù)據(jù)庫用戶—新建】—【常規(guī)】頁輸入登錄名(搜索)1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶88(二)創(chuàng)建數(shù)據(jù)庫用戶【數(shù)據(jù)庫用戶—新建】—【常規(guī)】頁輸入登錄名(搜索)1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶89(二)創(chuàng)建數(shù)據(jù)庫用戶【數(shù)據(jù)庫用戶—新建】—【安全對象】頁(權(quán)限設置)1.使用SSMS創(chuàng)建數(shù)據(jù)庫用戶90(二)創(chuàng)建數(shù)據(jù)庫用戶語法:CREATEUSER用戶名{FOR|FROM}LOGIN登錄名[WITHDEFAULT_SCHEMA=[架構(gòu)名]]--設置默認架構(gòu)...例7:為登錄名“ZH\Shijun”、“Zhaochg”、“Wuqj”創(chuàng)建數(shù)據(jù)庫“EDUC”的用戶。2.使用T-SQL創(chuàng)建數(shù)據(jù)庫用戶91(二)創(chuàng)建數(shù)據(jù)庫用戶代碼:USEEDUCGOCREATEUSERShijunFORLOGIN[ZH\Shijun]--為Windows用戶的登錄名映射數(shù)據(jù)庫用戶GOCREATEUSERZhaochgFORLOGINZhaochg--為SQLServer用戶的登錄名映射數(shù)據(jù)庫用戶GOCREATEUSERWuqjFORLOGINWuqj--為SQLServer用戶的登錄名映射數(shù)據(jù)庫用戶2.使用T-SQL創(chuàng)建數(shù)據(jù)庫用戶92四、數(shù)據(jù)庫用戶管理內(nèi)置數(shù)據(jù)庫用戶1創(chuàng)建數(shù)據(jù)庫用戶293修改和刪除數(shù)據(jù)庫用戶3(三)修改和刪除數(shù)據(jù)庫用戶在【對象資源管理器】窗口中,右鍵單擊數(shù)據(jù)庫用戶,從彈出的快捷菜單中選擇“屬性”命令,在打開的【數(shù)據(jù)庫用戶】窗口中即可修改該數(shù)據(jù)庫用戶的安全對象等屬性。右鍵單擊數(shù)據(jù)庫用戶,從彈出的快捷菜單中選擇“刪除”命令,即可刪除該數(shù)據(jù)庫用戶。1.使用SSMS修改和刪除數(shù)據(jù)庫用戶94(三)修改和刪除數(shù)據(jù)庫用戶修改數(shù)據(jù)庫用戶語法:ALTERUSER用戶名WITHNAME=新用戶名 --重命名數(shù)據(jù)庫用戶|DEFAULT_SCHEMA=架構(gòu)名 --重新設置默認架構(gòu)...2.使用T-SQL修改和刪除數(shù)據(jù)庫用戶95(三)修改和刪除數(shù)據(jù)庫用戶刪除登錄名語法:DROPUSER用戶名2.使用T-SQL修改和刪除數(shù)據(jù)庫用戶96單元1.9
數(shù)據(jù)庫的安全性管理97數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8五、架構(gòu)管理架構(gòu)(Schema)是一組數(shù)據(jù)庫對象的非重復命名空間,被數(shù)據(jù)庫級別的主體(數(shù)據(jù)庫用戶或數(shù)據(jù)庫角色)所擁有??梢詫⒓軜?gòu)視為對象的容器,每個數(shù)據(jù)庫對象都屬于一個架構(gòu)??稍跀?shù)據(jù)庫中創(chuàng)建架構(gòu)、更改架構(gòu)以及授予數(shù)據(jù)庫用戶訪問架構(gòu)的權(quán)限。數(shù)據(jù)庫對象引用的完整限定名為:
服務器.數(shù)據(jù)庫.架構(gòu).對象什么是架構(gòu)98五、架構(gòu)管理內(nèi)置架構(gòu)和默認架構(gòu)1創(chuàng)建架構(gòu)23修改和刪除架構(gòu)99(一)內(nèi)置架構(gòu)和默認架構(gòu)展開“數(shù)據(jù)庫”→“EDUC”→“安全性”→“架構(gòu)”節(jié)點,可以看到內(nèi)置架構(gòu)。內(nèi)置數(shù)據(jù)庫用戶所擁有的架構(gòu)。固定數(shù)據(jù)庫角色所擁有的同名架構(gòu)。例如:內(nèi)置數(shù)據(jù)庫用戶“dbo”,所擁有的內(nèi)置架構(gòu)“dbo”1.內(nèi)置架構(gòu)100(一)內(nèi)置架構(gòu)和默認架構(gòu)用于確定沒有使用完全限定名的數(shù)據(jù)庫對象的命名。指定服務器確定對象的名稱時所查找的第一個架構(gòu)??梢杂谩癈REATEUSER”和“ALTERUSER”語句中的“WITHDEFAULT_SCHEMA=[架構(gòu)名]”選項進行設置與修改如果選擇缺省默認架構(gòu),所創(chuàng)建的數(shù)據(jù)庫用戶將用“dbo”作為它的默認架構(gòu)。2.默認架構(gòu)101(一)內(nèi)置架構(gòu)和默認架構(gòu)例如:在創(chuàng)建表“student”時沒有指定默認架構(gòu),那么系統(tǒng)默認該表的架構(gòu)是“dbo”,在其表名前自動加上“dbo”(注意不要與內(nèi)置數(shù)據(jù)庫用戶“dbo”混淆),標識為“dbo.student”。2.默認架構(gòu)102(一)內(nèi)置架構(gòu)和默認架構(gòu)案例1-11:服務器“ZH”上的Windows用戶“Hui”為SQLServer管理員,自動關聯(lián)的登錄名為“ZH\Hui”以登錄名“ZH\Hui”的身份創(chuàng)建了數(shù)據(jù)庫“EDUC”,自動映射了內(nèi)置數(shù)據(jù)庫用戶“dbo”擁有默認的內(nèi)置架構(gòu)“dbo”在數(shù)據(jù)庫“EDUC”中所創(chuàng)建的數(shù)據(jù)庫對象表“Student完整限定名為:ZH.EDUC.dbo.Student。在連接到該服務器“ZH”后,選擇當前數(shù)據(jù)庫為“EDUC”(USEEDUC),設置默認架構(gòu)為“dbo”時,限定名稱可以省略為:Student。數(shù)據(jù)庫對象標識符103五、架構(gòu)管理內(nèi)置架構(gòu)和默認架構(gòu)1創(chuàng)建架構(gòu)23修改和刪除架構(gòu)104(二)創(chuàng)建架構(gòu)例8:
為數(shù)據(jù)庫“EDUC”的用戶“Zhangmin”創(chuàng)建所擁有的架構(gòu)“Zhang”數(shù)據(jù)庫“EDUC”→“安全性”→“架構(gòu)”節(jié)點,右鍵單擊“架構(gòu)”節(jié)點,從快捷菜單中選擇“新建架構(gòu)”命令1.使用SSMS創(chuàng)建架構(gòu)105(二)創(chuàng)建架構(gòu)例8:為數(shù)據(jù)庫“EDUC”的用戶“Zhangmin”創(chuàng)建所擁有的架構(gòu)“Zhang”【架構(gòu)-新建】窗口中,單擊“搜索”按鈕,在【查找對象】對話框中選擇架構(gòu)所有者(數(shù)據(jù)庫用戶“Zhangmin”)1.使用SSMS創(chuàng)建架構(gòu)106(二)創(chuàng)建架構(gòu)例8:為數(shù)據(jù)庫“EDUC”的用戶“Zhangmin”創(chuàng)建所擁有的架構(gòu)“Zhang”【架構(gòu)-新建】窗口,輸入架構(gòu)名稱“Zhang”1.使用SSMS創(chuàng)建架構(gòu)107(二)創(chuàng)建架構(gòu)例8:
為數(shù)據(jù)庫“EDUC”的用戶“Zhangmin”創(chuàng)建所擁有的架構(gòu)“Zhang”展開“EDUC”→“安全性”→“架構(gòu)”節(jié)點,可以看到所建數(shù)據(jù)庫用戶“Zhang”所擁有的架構(gòu)“Zhang”1.使用SSMS創(chuàng)建架構(gòu)108(二)創(chuàng)建架構(gòu)2.使用T-SQL創(chuàng)建架構(gòu)109創(chuàng)建架構(gòu)的基本語法如下:CREATESCHEMA架構(gòu)名AUTHORIZATION擁有者{CREATETABLE|CREATEVIEW|權(quán)限語句}...(二)創(chuàng)建架構(gòu)2.使用T-SQL創(chuàng)建架構(gòu)110例9:在數(shù)據(jù)庫“EDUC”中,創(chuàng)建數(shù)據(jù)庫用戶“Shijun”所擁有的架構(gòu)“Shi”,并在其中創(chuàng)建家庭住址表“Address”。對數(shù)據(jù)庫用戶“Zhaochg”授予對架構(gòu)“Shi”的“SELECT”權(quán)限。代碼如下:--創(chuàng)建數(shù)據(jù)庫用戶“Shijun”所擁有的架構(gòu)“Shi”CREATESCHEMAShiAUTHORIZATIONShijun--在架構(gòu)“Shi”中創(chuàng)建表CREATETABLEAddress(SIDchar(10)PRIMARYKEY,Snamechar(8),Addrvarchar(50)NULL)--授予用戶Zhaochg對架構(gòu)Shi的查詢權(quán)限GRANTSELECTONSCHEMA::ShiTOZhaochg注意:創(chuàng)建架構(gòu)“Shi”、創(chuàng)建表“Address”、權(quán)限設置在一條語句中完成(二)創(chuàng)建架構(gòu)2.使用T-SQL創(chuàng)建架構(gòu)111例9:在數(shù)據(jù)庫“EDUC”中,創(chuàng)建數(shù)據(jù)庫用戶“Shijun”所擁有的架構(gòu)“Shi”,并在其中創(chuàng)建家庭住址表“Address”。對數(shù)據(jù)庫用戶“Zhaochg”授予對架構(gòu)“Shi”的“SELECT”權(quán)限。(二)創(chuàng)建架構(gòu)2.使用T-SQL創(chuàng)建架構(gòu)112例9:在數(shù)據(jù)庫“EDUC”中,創(chuàng)建數(shù)據(jù)庫用戶“Shijun”所擁有的架構(gòu)“Shi”,并在其中創(chuàng)建家庭住址表“Address”。對數(shù)據(jù)庫用戶“Zhaochg”授予對架構(gòu)“Shi”的“SELECT”權(quán)限。(二)創(chuàng)建架構(gòu)2.使用T-SQL創(chuàng)建架構(gòu)113例9:在數(shù)據(jù)庫“EDUC”中,創(chuàng)建數(shù)據(jù)庫用戶“Shijun”所擁有的架構(gòu)“Shi”,并在其中創(chuàng)建家庭住址表“Address”。對數(shù)據(jù)庫用戶“Zhaochg”授予對架構(gòu)“Shi”的“SELECT”權(quán)限。五、架構(gòu)管理內(nèi)置架構(gòu)和默認架構(gòu)1創(chuàng)建架構(gòu)23修改和刪除架構(gòu)114(三)修改和刪除架構(gòu)在架構(gòu)之間傳輸安全對象?;菊Z法:ALTERSCHEMA架構(gòu)名TRANSFERsecurable_name1.修改架構(gòu)115(三)修改和刪除架構(gòu)例10:修改架構(gòu)“Zhang”,將表“Address”從架構(gòu)“Shi”傳輸?shù)郊軜?gòu)“Zhang”。在架構(gòu)之間傳輸安全對象。代碼:USEEDUCGOALTERSCHEMAZhangTRANSFERShi.Address1.修改架構(gòu)116(三)修改和刪除架構(gòu)語法:DROPSCHEMA架構(gòu)名2.刪除架構(gòu)117單元1.9
數(shù)據(jù)庫的安全性管理118數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8六、權(quán)限管理管理權(quán)限:對服務器的管理任務、對數(shù)據(jù)庫以及數(shù)據(jù)庫對象的控制和操作進行相應許可權(quán)限的管理。SQLServer可以為主體(登錄名、數(shù)據(jù)庫用戶、角色)以及架構(gòu)授予對安全對象的操作權(quán)限。僅簡單介紹數(shù)據(jù)庫用戶對數(shù)據(jù)庫對象和對數(shù)據(jù)庫的權(quán)限管理。什么是權(quán)限119六、權(quán)限管理授予權(quán)限:允許數(shù)據(jù)庫用戶或角色具有某種操作權(quán)。撤銷權(quán)限:刪除以前在數(shù)據(jù)庫內(nèi)的用戶或角色上授予或拒絕的權(quán)限。拒絕權(quán)限:拒絕給數(shù)據(jù)庫用戶授予權(quán)限以防止安全用戶通過其組或角色成員繼承權(quán)限。什么是數(shù)據(jù)庫用戶的權(quán)限管理120六、權(quán)限管理對象權(quán)限管理1數(shù)據(jù)庫權(quán)限管理2121(一)對象權(quán)限管理為數(shù)據(jù)庫用戶設置權(quán)限是數(shù)據(jù)庫對象級的安全策略用于控制數(shù)據(jù)庫用戶(或角色)對數(shù)據(jù)庫對象的操作。用戶的權(quán)限→操作→表、視圖、存儲過程…(數(shù)據(jù)庫對象)權(quán)限→使用→資源1、資源2……什么是數(shù)據(jù)庫對象管理權(quán)限122(一)對象權(quán)限管理數(shù)據(jù)庫對象:表、視圖和存儲過程……對象權(quán)限:對于表的INSERT、UPDATE、DELETE和SELECT對于列的SELECT和UPDATE權(quán)限對于外碼的引用REFERENCES權(quán)限對于存儲過程的執(zhí)行EXECUTE權(quán)限
……有哪些數(shù)據(jù)庫對象和權(quán)限123(一)對象權(quán)限管理例11:為登錄名“ZH\Zhangmin”的“EDUC”數(shù)據(jù)庫用戶“Zhangmin”授予表“Student”、“SC”和“Course”的INSERT和SELECT等操作權(quán)限。步驟:在【對象資源管理器】窗口中,展開“數(shù)據(jù)庫”→“EDUC”→“安全性”→“用戶”節(jié)點右鍵“Zhangmin”節(jié)點,從快捷菜單中選擇“屬性”命令1.使用SSMS管理對象權(quán)限124(一)對象權(quán)限管理【數(shù)據(jù)庫用戶—-Zhangmin】窗口—【安全對象】頁選擇安全對象選擇相應權(quán)限1.使用SSMS管理對象權(quán)限125(一)對象權(quán)限管理授予權(quán)限的語法:GRANT對象權(quán)限名[,...n] --③授予對象權(quán)限ON{表名|視圖名|存儲過程名|標量函數(shù)|...}
--②對指定的數(shù)據(jù)庫對象TO{數(shù)據(jù)庫用戶名|數(shù)據(jù)庫角色名}[,...n]
--①為指定的數(shù)據(jù)庫用戶或角色[WITHGRANTOPTION] --④賦予授權(quán)權(quán)限2.使用T-SQL管理對象權(quán)限126(一)對象權(quán)限管理例12:為使前面例子中的學生用戶“Wuqj”和“Zhaochg”能夠查詢“EDUC”數(shù)據(jù)庫中的“Student”、“Course”和“SC”表,并能夠修改“SC”表中的成績列“Scores”,試授予這些用戶SELECT操作權(quán)限和UPDATE(Scores)操作權(quán)限,同時獲得將此權(quán)限轉(zhuǎn)授給別的用戶的權(quán)限。2.使用T-SQL管理對象權(quán)限127(一)對象權(quán)限管理代碼:USEEDUCGRANTSELECTONStudentTOWuqj,Zhaochg--授予用戶對表Student的SELECT查詢權(quán)限GRANTSELECTONCourseTOWuqj,Zhaochg
--授予用戶對表Course的SELECT查詢權(quán)限/****授予用戶對表SC的SELECT查詢權(quán)限和UPDATE更新列Scores的權(quán)限****/GRANTSELECT,UPDATE(Scores)ONSCTOWuqj,ZhaochgWITHGRANTOPTION2.使用T-SQL管理對象權(quán)限128(一)對象權(quán)限管理以登錄名“Wuqj”連接到服務器2.使用T-SQL管理對象權(quán)限129(一)對象權(quán)限管理可以更新“SC”表中的成績列“Scores”2.使用T-SQL管理對象權(quán)限130(一)對象權(quán)限管理撤銷權(quán)限的語法:REVOKE對象權(quán)限名[,...n] --③撤銷授予的對象權(quán)限ON{表名|視圖名|存儲過程名|標量函數(shù)|...}
--②對指定的數(shù)據(jù)庫對象FROM{數(shù)據(jù)庫用戶名|數(shù)據(jù)庫角色名}[,...n] --①從指定的數(shù)據(jù)庫用戶或角色[RESTRICT|CASCADE]2.使用T-SQL管理對象權(quán)限131(一)對象權(quán)限管理例13:從數(shù)據(jù)庫用戶“Zhaochg”那里回收對數(shù)據(jù)庫對象“SC”表的更新UPDATE(Scores)操作權(quán)限。代碼:USEEDUCREVOKEUPDATE(Scores)ONSCFROMZhaochgCASCADE2.使用T-SQL管理對象權(quán)限132(一)對象權(quán)限管理拒絕權(quán)限的語法:DENY對象權(quán)限名[,...n] --③拒絕指定的對象權(quán)限ON{表名|視圖名|存儲過程名|標量函數(shù)|...}
--②對指定的數(shù)據(jù)庫對象TO{數(shù)據(jù)庫用戶名|數(shù)據(jù)庫角色名}[,...n] --①對指定的數(shù)據(jù)庫用戶或角色例14:對數(shù)據(jù)庫對象“Course”表,拒絕數(shù)據(jù)庫用戶“Zhaochg”進行查詢(SELECT)。代碼:USEEDUCDENYSELECTONCourseTOZhaochg2.使用T-SQL管理對象權(quán)限133六、權(quán)限管理對象權(quán)限管理1數(shù)據(jù)庫權(quán)限管理2134(二)數(shù)據(jù)庫權(quán)限管理數(shù)據(jù)庫權(quán)限:CREATE|ALTER|DROP數(shù)據(jù)庫—DATABASE數(shù)據(jù)庫對象—TABLE/VIEW/DEFAULT/SCHEMA/FUNCTION/PROCEDUREBACKUPDATABASE和BACKUPLOG……有哪些數(shù)據(jù)庫權(quán)限135(二)數(shù)據(jù)庫權(quán)限管理例15:為數(shù)據(jù)庫“EDUC”的數(shù)據(jù)庫用戶“ZH\Zhangmin”設置數(shù)據(jù)庫權(quán)限,使之可以在該數(shù)據(jù)庫中創(chuàng)建表(CREATETABLE),對“Student”、“Course”和“SC”表創(chuàng)建視圖(CREATEVIEW)。說明:如果數(shù)據(jù)庫用戶沒有數(shù)據(jù)庫語句權(quán)限,在執(zhí)行某些語句時會彈出錯誤提示有了語句權(quán)限還需要擁有一個創(chuàng)建對象的架構(gòu),否則也會彈出錯誤提示1.使用SSMS管理數(shù)據(jù)庫權(quán)限136(二)數(shù)據(jù)庫權(quán)限管理步驟:設置默認架構(gòu)在【對象資源管理器】窗口中,展開數(shù)據(jù)庫“EDUC”→“安全性”→“架構(gòu)”節(jié)點,用右鍵單擊“架構(gòu)”節(jié)點,從彈出的快捷菜單中選擇“新建架構(gòu)”命令在【架構(gòu)-新建】窗口,創(chuàng)建架構(gòu)“Zhang”在【架構(gòu)-新建】窗口中,單擊“搜索”按鈕,在【查找對象】對話框中選擇架構(gòu)所有者(數(shù)據(jù)庫用戶“Zhangnin”)1.使用SSMS管理數(shù)據(jù)庫權(quán)限137(二)數(shù)據(jù)庫權(quán)限管理展開“EDUC”→“安全性”→“用戶”節(jié)點,右鍵“用戶”節(jié)點,從快捷菜單中選擇“屬性”命令在【數(shù)據(jù)庫用戶-Zhangmin】窗口中,設置數(shù)據(jù)庫用戶“Zhangmin”默認架構(gòu)“Zhang”1.使用SSMS管理數(shù)據(jù)庫權(quán)限138(二)數(shù)據(jù)庫權(quán)限管理在【數(shù)據(jù)庫屬性-EDUC】窗口中的【權(quán)限】頁中設置數(shù)據(jù)庫權(quán)限1.使用SSMS管理數(shù)據(jù)庫權(quán)限139(二)數(shù)據(jù)庫權(quán)限管理在【數(shù)據(jù)庫屬性-EDUC】窗口中的【權(quán)限】頁中設置權(quán)限1.使用SSMS管理數(shù)據(jù)庫權(quán)限140(二)數(shù)據(jù)庫權(quán)限管理以Windows用戶“Zhangmin”的身份連接到數(shù)據(jù)庫引擎服務器,在查詢編輯器中輸入T-SQL代碼如下:USEEDUCGOCREATETABLETeacher--CREATETABLE權(quán)限
(EIDchar(10)NOTNULLPRIMARYKEY,Enamechar(8)NULL,Sex nchar(1)NULL,Birthdatedate,Titlechar(8))GOCREATEVIEWSoftScores--CREATEVIEW權(quán)限ASSELECT*FROMStudentWHERE(Specialty='軟件技術')--SELECT對象權(quán)限1.使用SSMS管理數(shù)據(jù)庫權(quán)限141(二)數(shù)據(jù)庫權(quán)限管理服務器“ZH”的Windows用戶“Zhangmin”關聯(lián)了登錄名“ZH\Zhangmin”,使其可以連接到服務器;該登錄名被映射了數(shù)據(jù)庫用戶“Zhangmin”,使其可以訪問數(shù)據(jù)庫“EDUC”;數(shù)據(jù)庫用戶“Zhangmin”擁有架構(gòu)“Zhang”,同時又被授予對表“Student”的對象權(quán)限“SELECT”數(shù)據(jù)庫用戶“Zhangmin”被授予數(shù)據(jù)庫權(quán)限“CREATETABLE”和“CREATEVIEW”,使其可以在所擁有的架構(gòu)中創(chuàng)建表和視圖。安全性控制關系歸納142(二)數(shù)據(jù)庫權(quán)限管理授予權(quán)限的語法:GRANT數(shù)據(jù)庫權(quán)限名[,...n] --②授予數(shù)據(jù)庫權(quán)限TO{數(shù)據(jù)庫用戶名|數(shù)據(jù)庫角色名}[,...n] --①為指定的數(shù)據(jù)庫用戶或角色例16:授予“EDUC”數(shù)據(jù)庫用戶“Shijun”創(chuàng)建表的權(quán)限。代碼:USEEDUCGRANTCREATETABLETOShijun2.使用T-SQL管理數(shù)據(jù)庫權(quán)限143(二)數(shù)據(jù)庫權(quán)限管理撤銷權(quán)限的語法:REVOKE數(shù)據(jù)庫權(quán)限名[,...n]--②撤銷授予的數(shù)據(jù)庫權(quán)限FROM{數(shù)據(jù)庫用戶名|數(shù)據(jù)庫角色名}[,...n] --①從指定的數(shù)據(jù)庫用戶或角色例17:撤銷數(shù)據(jù)庫用戶“Shijun”創(chuàng)建表的權(quán)限。代碼:USEEDUCREVOKECREATETABLEFROMShijun2.使用T-SQL管理數(shù)據(jù)庫權(quán)限144(二)數(shù)據(jù)庫權(quán)限管理拒絕為數(shù)據(jù)庫用戶或角色授予數(shù)據(jù)庫權(quán)限的語法:DENY數(shù)據(jù)庫權(quán)限名[,...n] --②拒絕指定的數(shù)據(jù)庫權(quán)限TO{數(shù)據(jù)庫用戶名|數(shù)據(jù)庫角色名}[,...n] --①對指定的數(shù)據(jù)庫用戶或角色例18:對數(shù)據(jù)庫用戶“Shijun”拒絕創(chuàng)建表的權(quán)限。代碼:USEEDUCDENYCREATETABLETOShijun2.使用T-SQL管理數(shù)據(jù)庫權(quán)限145單元1.9
數(shù)據(jù)庫的安全性管理146數(shù)據(jù)庫的安全性管理概述一身份驗證與模式配置二登錄名管理三數(shù)據(jù)庫用戶管理四架構(gòu)管理五權(quán)限管理六角色管理七8七、角色管理角色(Role):角色是登錄名和數(shù)據(jù)庫用戶的集合,是服務器級和數(shù)據(jù)庫級的二級主體。角色的作用:將一組具有相同權(quán)限的一組登錄名或數(shù)據(jù)庫用戶組織在一起,添加為某一角色(Role)的成員,使其具有與該角色相同的身份和權(quán)限,而不必分別為他們授予這些權(quán)限,使得將多種權(quán)限授予給各個登錄名或數(shù)據(jù)庫用戶這一復雜任務得到簡化。什么是角色147七、角色管理SQLServer提供以下兩個級別的角色:服務器級:固定服務器角色、服務器角色。數(shù)據(jù)庫級:固定數(shù)據(jù)庫角色、數(shù)據(jù)庫角色和應用程序角色。什么是角色148(一)服務器角色管理固定服務器角色:SQLServer服務器級的二級主體,其成員可以是登錄服務器的登錄名。作用:每個角色對應著相應的服務器管理權(quán)限。這些固定服務器角色一般用于授權(quán)給DBA(數(shù)據(jù)庫管理員)擁有某個或某些角色的DBA就會獲得與相應角色對應的服務器管理權(quán)限。1.固定服務器角色149(一)服務器角色管理1.固定服務器角色150固定服務器角色管理權(quán)限說明sysadmin可以在服務器中執(zhí)行任何活動。serveradmin可以更改服務器范圍內(nèi)的配置選項和關閉服務器。securityadmin可以管理登錄名及其屬性,管理服務器級和數(shù)據(jù)庫級的訪問權(quán)限,與sysadmin等效。processadmin可以終止在SQLServer實例中運行的進程。setupadmin可以使用T-SQL語句添加和刪除鏈接服務器。bulkadmin可以運行BULKINSERT語句,從文本文件中將數(shù)據(jù)導入SQLServer。diskadmin可以管理磁盤文件,指派文件組、附加和分離數(shù)據(jù)庫等等。dbcreator可以創(chuàng)建、更改、刪除和還原任何數(shù)據(jù)庫。public初始時狀態(tài)時僅有VIEWANYDATABASE(查看任意數(shù)據(jù)庫)權(quán)限。每個SQLServer登錄名都屬于public服務器角色,如果未向某個服務器主體授予或拒絕對某個安全對象的特定權(quán)限,該登錄名將繼承授予該對象的public權(quán)限。(一)服務器角色管理例如:固定服務器角色“sysadmin”的成員1.固定服務器角色151(一)服務器角色管理例如:登錄名“ZH\Hui”為服務器角色“sysadmin”1.固定服務器角色152(一)服務器角色管理例如:服務器角色“public”屬性1.固定服務器角色153(一)服務器角色管理例如:登錄名“ZH\Zhangmin”的屬性1.固定服務器角色154(一)服務器角色管理例19:將SQLServer登錄名“ZH\Shijun”添加為固定服務器角色“dbcreator”的成員,使其協(xié)助數(shù)據(jù)庫管理員完成在服務器中創(chuàng)建和修改數(shù)據(jù)庫的任務。方法一:在固定服務器角色屬性窗口中,將登錄名添加為固定服務器角色的成員。2.使用SSMS為登錄名分配固定服務器角色155(一)服務器角色管理例19:將SQLServer登錄名“ZH\Shijun”添加為固定服務器角色“dbcreator”的成員,使其協(xié)助數(shù)據(jù)庫管理員完成在服務器中創(chuàng)建和修改數(shù)據(jù)庫的任務。2.使用SSMS為登錄名分配固定服務器角色156(一)服務器角色管理例19:將SQLServer登錄名“ZH\Shijun”添加為固定服務器角色“dbcreator”的成員,使其協(xié)助數(shù)據(jù)庫管理員完成在服務器中創(chuàng)建和修改數(shù)據(jù)庫的任務。方法二:在登錄名屬性窗口中,為登錄名分配固定服務器角色。2.使用SSMS為登錄名分配固定服務器角色157(一)服務器角色管理例19:將SQLServer登錄名“ZH\Shijun”添加為固定服務器角色“dbcreator”的成員,使其協(xié)助數(shù)據(jù)庫管理員完成在服務器中創(chuàng)建和修改數(shù)據(jù)庫的任務。方法二:在登錄名屬性窗口中,為登錄名分配固定服務
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 百鎮(zhèn)千村示范衛(wèi)生機構(gòu)創(chuàng)建課件
- DB6103T 77-2025釀酒高粱寬窄行栽培技術規(guī)范
- 船運安全的防范措施與管理建議分析
- 三人合資餐飲企業(yè)合同模板
- 專利許可使用與轉(zhuǎn)讓協(xié)議合同
- 上海住宅租賃合同范本
- 人事代理人員勞動合同書
- 個人壽險代理合同書樣本
- 臨時兼職教師勞動合同范文
- 臨時性勞動合同模板
- 無違法犯罪記錄證明申請表(個人)
- 電捕焦油器火災爆炸事故分析
- 質(zhì)量問題分析及措施報告
- 汽修廠安全風險分級管控清單
- 現(xiàn)代通信原理與技術(第五版)PPT全套完整教學課件
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護技術要求
- DB31T 685-2019 養(yǎng)老機構(gòu)設施與服務要求
- 燕子山風電場項目安全預評價報告
- 高一英語課本必修1各單元重點短語
- 完整版金屬學與熱處理課件
評論
0/150
提交評論