《SQL Server數據庫應用》課件 項目七 維護數據庫安全_第1頁
《SQL Server數據庫應用》課件 項目七 維護數據庫安全_第2頁
《SQL Server數據庫應用》課件 項目七 維護數據庫安全_第3頁
《SQL Server數據庫應用》課件 項目七 維護數據庫安全_第4頁
《SQL Server數據庫應用》課件 項目七 維護數據庫安全_第5頁
已閱讀5頁,還剩62頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目七維護數據庫安全279280任務1配置SQLServer身份驗證模式任務2管理服務器登錄和數據庫用戶任務3管理角色任務4管理權限配置SQLServer身份驗證模式任務12811.?了解兩種不同的身份驗證模式。2.?了解身份驗證模式的工作原理、優勢和限制。3.?能在SQL?Server中更改身份驗證模式,適應特定的身份驗證需求。4.?能更改身份驗證模式,并了解其對應用程序和數據庫的影響,保證應用程序和數據庫正常運行。282SQLServer安全管理模式是建立在安全身份驗證和訪問許可的基礎上的。SQLServer通過驗證登錄名和口令的方式來保證其安全性,登錄名和口令又稱賬號和密碼。Windows操作系統和SQLServer都是微軟公司的產品,因此,SQLServer的驗證可以由Windows操作系統來完成。283SQLServer身份驗證模式有Windows驗證機制和SQLServer驗證機制兩種。本任務要求把Windows驗證機制修改為SQLServer驗證機制,SQLServer驗證機制如圖所示。284SQL?Server驗證機制一、安全身份驗證安全身份驗證用來確認登錄SQLServer用戶的登錄賬號和密碼的正確性,由此來驗證該用戶是否具有連接SQLServer的權限。任何用戶在使用SQLServer數據庫之前,必須經過系統的安全身份驗證。2851.?Windows身份驗證SQLServer數據庫系統通常運行在Windows服務器上,而Windows作為網絡操作系統,本身就具備管理登錄、驗證用戶合法性的能力,因此Windows驗證模式正是利用了這一用戶安全性和賬號管理機制,允許SQLServer可以使用Windows的用戶名和口令。在這種模式下,只需要通過Windows身份驗證,就可以連接到SQLServer。2862.?SQL?Server身份驗證SQLServer身份驗證模式允許用戶使用SQLServer安全性連接到SQLServer。在該認證模式下,用戶在連接SQLServer時必須提供登錄名和登錄密碼,這些登錄信息存儲在系統表syslogins中,與Windows的登錄賬號無關。SQLServer自身執行認證處理,如果輸入的登錄信息與系統表syslogins中的某條記錄相匹配,那么表明登錄成功。

287二、驗證模式的設置利用SQLServer管理平臺可以進行認證模式的設置,操作步驟如下。1.打開SQLServer管理平臺,右擊要設置認證模式的服務器,在彈出的快捷菜單中,選擇“屬性”選項,彈出“服務器屬性”對話框。2.在“服務器屬性”對話框中選擇“安全性”選擇頁,SQLServer服務器屬性如圖所示。2883.在“數據庫設置”選擇頁,可以更改“數據”“日志”“備份”文件的位置,這樣在每次創建數據庫時,可以省略更改數據庫文件和日志文件的保存位置。289SQL?Server服務器屬性三、訪問許可確認通過了認證并不代表用戶就能訪問SQLServer中的數據,同時必須通過許可確認。用戶只有在具有訪問數據庫的權限之后,才能對服務器上的數據庫進行權限許可下的各種操作,這種用戶訪問數據庫權限的設置是通過用戶賬號來實現的。290管理服務器登錄和數據庫用戶任務22911.?能使用SSMS界面管理SQL?Server登錄,能創建、修改和刪除登錄賬號。2.?能使用T-SQL語言管理SQL?Server登錄,能創建、修改和刪除登錄賬號。3.?能管理登錄賬號和數據庫用戶,能分配適當的權限和角色。292通過命令行新建一個登錄名stuLogin,并設置密碼為1234qwer!。創建成功后,使用stuLogin登錄數據庫服務器,并在此登錄名下添加數據庫用戶stuLoginUser。隨后,檢測并分析stuLoginUser所能訪問的數據庫列表。完成分析后,刪除數據庫用戶stuLoginUser,并最終刪除登錄名stuLogin。293為教師用戶群體創建一個登錄名teaLogin,并設置密碼為258asd!。同時,在該登錄名下創建數據庫用戶teaUser,并指定其默認架構為dbo。在數據庫ssts中,將teaUser用戶添加至db_owner角色,以對其賦予高級數據庫管理權限。最后,執行對數據庫ssts中數據表的查詢操作,以確保權限配置正確無誤。294一、服務器的登錄名在SQLServer中,利用SQLServer管理平臺即SSMS可以創建服務器的登錄名,也可以通過T-SQL語句新建服務器的登錄名。服務器的登錄名用來登錄SQLServer數據庫服務器,一個數據庫服務器上可能有若干個數據庫。295二、管理服務器的登錄名1.?使用SSMS新建服務器登錄名打開SQLServer管理平臺,單擊需要登錄的服務器左側的“+”按鈕,然后展開“安全性”文件夾。如圖所示,右擊“登錄名”文件夾,在彈出的快捷菜單中,選擇“新建登錄名”選項,彈出如圖所示的“登錄名-新建”對話框。

296當前服務器的名稱和登錄名

選擇“新建登錄名”選項297“登錄名-新建”對話框在“登錄名”文本框中輸入登錄名,可以選擇Windows身份驗證和SQLServer身份驗證兩種模式??梢匀コ催x“強制密碼過期”和“用戶在下次登錄時必須更改密碼”及“強制實施密碼策略”三個復選框,這樣密碼會簡單些。選擇“服務器角色”選擇頁,在如圖所示的“服務器角色”列表框中,列出了系統的固定服務器角色。在這些固定服務器角色的左側有相應的復選框,勾選相應的復選框表示該登錄賬號是相應的服務器角色成員。298299“服務器角色”列表框選擇“用戶映射”選擇頁,在如圖所示的“用戶映射”列表框中列出了“映射到此登錄名的用戶”,單擊左側的復選框設定該登錄賬號可以訪問的數據庫及該賬號在各個數據庫中對應的用戶名。下面的列表框列出了相應的“數據庫角色成員身份”清單,從中可以指定該賬號所屬的數據庫角色。300“用戶映射”列表框設置完成后,單擊“確定”按鈕即可完成登錄賬號的創建??梢栽凇暗卿浢蔽募A下找到所創建的登錄名。斷開數據庫的連接,使用新建的登錄名chensir和密碼登錄數據庫服務器。3012.使用T-SQL語句新建服務器的登錄名(1)Windows身份認證Windows身份認證的語法格式如下。302(2)SQLServer身份認證SQLSever身份認證的語法格式如下。3033.修改服務器的登錄名(1)啟用已禁用的登錄名【例】啟用已禁用的登錄名techerLogin。(2)更改登錄密碼【例】更改登錄名techerLogin的登錄密碼。(3)更改登錄名稱【例】將登錄名techerLogin更改為techLogin。3044.刪除登錄名不能刪除正在登錄的登錄名,也不能刪除擁有任何安全對象、服務器級對象或SQLServer代理作業的登錄名?!纠縿h除登錄名techerLogin。305三、數據庫用戶數據庫用戶訪問指定的數據庫。登錄成功后,根據登錄名找到對應的數據庫用戶,再去訪問某個具體用戶數據庫。找到該數據庫用戶對應的權限,操作數據庫。服務器的登錄名與數據庫用戶是一對多的關系,數據庫用戶與數據庫是一對一的關系。306四、管理數據庫用戶在一個數據庫中,數據庫用戶賬號可唯一標識一個用戶,數據庫用戶對數據庫的訪問權限及對數據庫對象的所有關系都是通過用戶賬號進行控制的。1.?使用SSMS新建數據庫用戶利用SQLServer管理平臺可以授予SQLServer登錄訪問數據庫的許可權限。利用SQLServer管理平臺創建一個新數據庫用戶賬號的過程如下。307打開SQLServer管理平臺,展開要登錄的服務器和數據庫文件夾,然后展開要創建用戶的數據庫及“安全性”文件夾,右擊“用戶”圖標,在彈出的快捷菜單中,選擇“新建用戶”選項,彈出如圖所示的“數據庫用戶-新建”對話框。在“用戶類型框”文本框中輸入數據庫用戶名稱,在“登錄名”選擇框內選擇已經創建的登錄名,然后在下面的“默認架構”選擇框中為該用戶選擇數據庫角色,最后單擊“確定”按鈕,即可完成數據庫用戶的創建。308“數據庫用戶-新建”對話框2.?使用SSMS查看或刪除數據庫用戶在SQLServer管理平臺中,可以查看或刪除數據庫用戶。(1)展開某一數據庫,展開“用戶”文件夾,則會顯示當前數據庫的所有用戶。(2)在右側的頁框中,右擊所要刪除的數據庫用戶,在彈出的快捷菜單中,選擇“刪除”選項,如圖所示,即可刪除數據庫用戶。309選擇“刪除”選項3.使用T-SQL語句新建數據庫用戶語法格式如下。如果已省略FORLOGIN,那么新的數據庫用戶將被映射到同名的SQLServer登錄名。3104.使用T-SQL語句修改數據庫用戶語法格式如下。311上述語句中的DEFAULT_SCHEMA即默認架構,它是數據庫中的一個概念,類似于Windows系統中的默認用戶文件夾。在數據庫中,每個用戶或會話都有一個默認架構,用于在沒有明確指定架構時解析對象名。這意味著,如果只輸入表名而不指定架構,數據庫將自動在DEFAULT_SCHEMA中查找該表。簡單來說,DEFAULT_SCHEMA就是數據庫用戶默認的“工作空間”,用于存儲和訪問用戶最常用的數據庫對象。如果不能確定默認架構,就使用dbo架構。其中,principle_id可以通過下面的查詢語句得到:3125.使用T-SQL語句刪除數據庫用戶語法格式如下。不能從數據庫中刪除擁有安全對象的用戶,必須先刪除或轉移安全對象的所有權,才能刪除擁有這些安全對象的數據庫用戶。313管理角色任務33141.?能使用SSMS或T-SQL語句管理固定服務器角色及其成員。2.?能使用SSMS或T-SQL語句管理固定數據庫角色及其成員。3.?能使用SSMS或T-SQL語句管理用戶自定義數據庫角色及其成員。4.?能使用SSMS或T-SQL語句管理應用程序角色。315本任務要求完成以下管理角色的操作。使用SSMS管理固定服務器角色,查看固定服務器角色,增加用戶linkLogin為sysadmin服務器成員,一段時間后,刪除服務器角色成員linkLogin。使用SSMS管理固定數據庫角色,查看固定數據庫角色及其成員和權限,添加登錄名linkLogin,默認登錄數據庫ssts,添加數據庫ssts的用戶zhangyong,其登錄名為linkLogin,設置為db_owner數據庫角色的成員。316使用SSMS管理用戶自定義數據庫角色,在數據庫ssts中,創建用戶角色teacher,并添加用戶zhangyong作為角色成員,為角色teacher授予查詢和插入選課表sc的權限。用戶自定義的數據庫角色teacher的屬性和成員如圖所示。使用SSMS方式管理應用程序角色:創建應用程序角色AppNewRole。為此角色配置擁有的架構db_owner。317用戶自定義的數據庫角色teacher的屬性和成員一、服務器角色服務器角色根據SQLServer的管理任務,及這些任務相對的重要性等級來把具有SQLServer管理職能的用戶劃分為不同的用戶組,每一組所具有的管理權限都是SQLServer內置的。服務器角色也稱為固定服務器角色,它不能被用戶創建,其權限作用域為服務器范圍。318服務器角色可用來管理服務器上的權限。當用戶成功安裝SQLServer后,服務器角色就存在于數據庫服務器中,且已具備了執行指定操作的權限。可以將服務器級主體(SQLServer登錄名、Windows賬戶和Windows組)添加到服務器角色。固定服務器角色的每個成員都可以將其他登錄名添加到該角色,用戶定義的服務器角色的成員無法將其他服務器級主體添加到角色。不是每個用戶都應該分配為服務器角色,只有高級用戶如數據庫管理員,應分配為服務器角色。SQLServer提供了9個固定服務器角色,服務器角色的權限見下表。319320服務器角色的權限1.查看固定服務器角色及其成員在新建查詢窗口輸入以下代碼。執行后,查看固定服務器角色如圖所示。321查看固定服務器角色由上圖可以看出,顯示有8個固定服務器角色,另外還有1個public角色沒有顯示,原因是sp_helpsrvrole無法識別public角色。在服務器上創建的每個登錄名都是public服務器角色的成員,不能將用戶、組或角色指派為public角色的成員。不要為服務器public角色授予服務器權限,可以通過對public設置權限從而為所有數據庫設置相同的權限。3222.增加服務器角色成員將登錄賬號添加到固定服務器角色中,使用系統存儲過程sp_addsrvrolemember,語法格式如下。其中,login是待添加的登錄名,可以是Windows登錄名或SQLServer登錄名;role是固定服務器角色名稱。3233.?刪除服務器角色成員將登錄名從固定服務器角色中刪除,使用系統存儲過程sp_dropsrvrolemember,語法格式如下。324二、數據庫角色數據庫角色是為某一用戶或某一組用戶授予不同級別的管理或訪問數據庫及數據庫對象的權限,這些權限是數據庫專有的,并且還可以使一個用戶具有屬于同一數據庫的多個角色。數據庫角色定義在數據庫級上,保存在各自數據庫的系統表sysusers之中,作用在各自的數據庫之內。數據庫管理員給數據庫用戶指定角色,也就是將該用戶添加到相應的角色組中。通過角色簡化了直接向數據庫用戶分配權限的煩瑣操作,對于用戶數量多、安全策略復雜的數據庫系統,能夠簡化安全管理工作。數據庫角色分為固定數據庫角色和用戶自定義數據庫角色。3251.?固定數據庫角色固定數據庫角色是系統預先定義在數據庫級上的角色。除public角色外,角色的種類和權限都是固定的,不可更改或刪除,只允許為其添加或刪除成員。SQLServer提供了9個固定數據庫角色,固定數據庫角色的權限見下表。326固定數據庫角色的權限327固定數據庫角色的權限(1)查看固定數據庫角色及其成員查看數據庫ssts固定數據庫角色,在新建查詢窗口輸入以下代碼。執行后,查看固定數據庫角色如圖所示。328查看固定數據庫角色(2)添加固定數據庫角色成員與固定服務器角色類似,SQLServer提供的系統存儲過程sp_addrolemember,能夠為數據庫角色添加成員,語法格式如下。其中,role是當前數據庫中數據庫角色的名稱;security_account是添加到該角色的安全賬戶;security_account可以是數據庫用戶、數據庫角色、Windows登錄或Windows組。329(3)刪除固定數據庫角色成員若要刪除數據庫角色的成員,使用的存儲過程為sp_droprolemember,語法格式如下。3302.用戶自定義數據庫角色(1)創建用戶自定義數據庫角色使用CREATEROLE語句可以自定義數據庫角色,語法格式如下。其中,role_name是用戶自定義角色的名稱,AUTHORIZATIONowner_name是將擁有新角色的數據庫用戶或角色,如果未指定用戶,那么執行CREATEROLE的用戶將擁有該角色。(2)添加用戶為角色成員與添加固定服務器角色成員類似,將用戶添加到角色中,使用戶成為角色成員,獲得與角色一樣的權限,將用戶添加到角色中可以使用sp_addrolemember語句完成。331(3)授予角色權限為主體授予安全對象的權限,使用“GRANT<某種權限>ON<某個對象>TO<某個用戶、登錄名或組>”,語法格式如下。如果指定了WITHGRRANTOPTION子句,那么獲得某種權限的用戶還可以把這種權限再授予給其他用戶。如果沒有指定WITHGRRANTOPTION子句,那么獲得某種權限的用戶只能使用該權限,不能傳播該權限。GRANT語句向用戶授予權限,REVOKE語句撤銷已經授予用戶的權限。332(4)刪除用戶自定義數據庫角色刪除用戶自定義數據庫角色時,可以使用DROPROLE命令實現。333三、應用程序角色1.創建應用程序角色使用CREATEAPPLICATIONROLE語句創建應用程序角色,語法格式如下。其中,application_role_name是指定應用程序角色的名稱,此名稱不得已用于引用數據庫中的任何主體;password是指定數據庫用戶將用于激活應用程序角色的密碼;schema_name是指定服務器在解析此角色的對象名稱時將搜索的第一個架構,如果未定義默認架構,那么應用程序角色將使用dbo作為其默認架構。3342.?激活應用程序角色當用戶執行客戶端應用程序并連接到SQLServer服務器時,需要調用系統存儲過程sp_setapprole來激活應用程序角色,語法格式如下。其中,[@rolename=]'role'在當前數據庫中定義應用程序角色的名稱。[@password=]{encryptN'password'}激活應用程序角色所需的密碼。使用encrypt函數時

,必須將N放在第一個引號之前,將密碼轉換為Unicode字符串。使用sp_setapprole激活應用程序角色后,該角色將保持活動狀態,直到用戶與服務器斷開連接或停用該角色。3353.?刪除應用程序角色若從當前數據庫刪除應用程序角色,則需要使用“DROPAPPLICATIONROLE”語句,語法格式如下。4.?使用應用程序角色的過程(1)用戶執行客戶端應用程序,客戶端應用程序以用戶身份連接到SQLServer服務器。(2)應用程序通過指定密碼和應用程序角色執行系統存儲過程sp_setapprole。(3)若應用程序角色生效,此時連接會放棄用戶的原有權限。(4)使用應用程序角色操作數據庫。336管理權限任務43371.?能使用GRANT語句授予對象級權限,授予表、視圖、存儲過程等的訪問權限。2.?能使用GRANT語句授予系統級權限,授予登錄、數據庫訪問、備份恢復等的權限。3.?能使用DENY語句完成拒絕授予權限的操作,阻止用戶或角色對某些對象的訪問或操作。4.?能使用REVOKE語句完成收回權限的操作,撤銷已經授予的權限。338管理員有權限允許用戶創建、修改和刪除數據表。在數據庫ssts

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論