版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第10章系統(tǒng)安全治理10.1SQLServer2023的安全機制10.2建立和治理用戶賬戶10.3角色管理10.4數(shù)據(jù)庫權(quán)限的治理10.5數(shù)據(jù)庫架構(gòu)的定義和使用10.1SQLServer2023的安全機制10.1.1SQLServer身份驗證模式身份驗證模式是指系統(tǒng)確認(rèn)用戶的方式。SQLServer有兩種身份驗證模式:Windows驗證模式和SQLServer驗證模式。這是在安裝SQLServer的過程中由“數(shù)據(jù)庫引擎配置”確定的,如圖10.1所示。10.1.1SQLServer身份驗證模式1.Windows驗證模式用戶登錄Windows時進(jìn)展身份驗證,登錄SQLServer時就不再進(jìn)展身份驗證了。留意:〔1〕必需將Windows賬戶參與到SQLServer中,才能承受Windows賬戶登錄SQLServer?!?〕假設(shè)使用Windows賬戶登錄到另一個網(wǎng)絡(luò)的SQLServer,則必需在Windows中設(shè)置彼此的托管權(quán)限。2.SQLServer驗證模式在SQLServer驗證模式下,SQLServer效勞器要對登錄的用戶進(jìn)展身份驗證。系統(tǒng)治理員必需設(shè)定登錄驗證模式的類型為混合驗證模式。當(dāng)承受混合模式時,SQLServer系統(tǒng)既允許使用Windows登錄名登錄,也允許使用SQLServer登錄名登錄。10.1.2SQLServer安全性機制1.效勞器級別效勞器級別所包含的安全對象主要有登錄名、固定效勞器角色等。其中,登錄名用于登錄數(shù)據(jù)庫效勞器,而固定效勞器角色用于給登錄名賜予相應(yīng)的效勞器權(quán)限。SQLServer中的登錄名主要有兩種:第一種是Windows登錄名,其次種是SQLServer登錄名。Windows登錄名對應(yīng)Windows驗證模式,該驗證模式所涉及的賬戶類型主要有Windows本地用戶賬戶、Windows域用戶賬戶、Windows組。2.?dāng)?shù)據(jù)庫級別數(shù)據(jù)庫級別所包含的安全對象主要有用戶、角色、應(yīng)用程序角色、證書、對稱密鑰、非對稱密鑰、程序集、全文名目、DDL大事、架構(gòu)等。用戶安全對象是用來訪問數(shù)據(jù)庫的。假設(shè)某人只擁有登錄名,而沒有在相應(yīng)的數(shù)據(jù)庫中為其創(chuàng)立登錄名所對應(yīng)的用戶,則該用戶只能登錄數(shù)據(jù)庫效勞器,而不能訪問相應(yīng)的數(shù)據(jù)庫。10.1.2SQLServer安全性機制3.架構(gòu)級別架構(gòu)級別所包含的安全對象有表、視圖、函數(shù)、存儲過程、類型、同義詞、聚合函數(shù)等。在創(chuàng)立這些對象時可設(shè)定架構(gòu),假設(shè)不設(shè)定則系統(tǒng)默認(rèn)架構(gòu)為dbo。數(shù)據(jù)庫用戶只能對屬于自己架構(gòu)中的數(shù)據(jù)庫對象執(zhí)行相應(yīng)的數(shù)據(jù)操作。至于操作的權(quán)限則由數(shù)據(jù)庫角色準(zhǔn)備。例如,假設(shè)某數(shù)據(jù)庫中的表A屬于架構(gòu)S1,表B屬于架構(gòu)S2,而某用戶默認(rèn)的架構(gòu)為S2,假設(shè)沒有授予用戶操作表A的權(quán)限,則該用戶不能對表A執(zhí)行相應(yīng)的數(shù)據(jù)操作。但是,該用戶可以對表B執(zhí)行相應(yīng)的操作。10.1.3SQLServer數(shù)據(jù)庫安全驗證過程一個用戶假設(shè)要對某一數(shù)據(jù)庫進(jìn)展操作,則必需滿足以下三個條件:〔1〕登錄SQLServer效勞器時必需通過身份驗證?!?〕必需是該數(shù)據(jù)庫的用戶,或者是某一數(shù)據(jù)庫角色的成員。〔3〕必需有對數(shù)據(jù)庫對象執(zhí)行該操作的權(quán)限。10.1.3SQLServer數(shù)據(jù)庫安全驗證過程不管使用哪種驗證方式,用戶都必需具備有效的Windows用戶登錄名。SQLServer有兩個常用的默認(rèn)登錄名:sa和計算機名\Windows治理員賬戶名。其中,sa是系統(tǒng)治理員,在SQLServer中擁有系統(tǒng)和數(shù)據(jù)庫的全部權(quán)限,如圖10.2所示。10.2建立和治理用戶賬戶10.2.1以界面方式治理用戶賬戶1.建立Windows驗證模式的登錄名〔1〕創(chuàng)立Windows的用戶。以治理員身份登錄到Windows,翻開把握面板,完成新用戶“l(fā)iu”的創(chuàng)立?!?〕將Windows賬戶參與到SQLServer中。以治理員身份登錄到“SSMS”,在“對象資源治理器”中,在“安全性”下選擇“登錄名”項。右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建登錄名”,翻開“登錄名-新建”窗口??梢酝ㄟ^單擊“常規(guī)”選項頁的“搜尋”按鈕,在“選擇用戶或組”對話框的“輸入要選擇的對象名稱”中輸入“l(fā)iu”,然后單擊“檢查名稱”按鈕,系統(tǒng)生成“PC-202312101514\liu”〔如圖10.3所示〕,單擊“確定”按鈕,回到“登錄名-新建”窗口。10.2.1以界面方式治理用戶賬戶在登錄名中就會顯示完整名稱。選擇默認(rèn)數(shù)據(jù)庫為“pxscj”,如圖10.4所示。10.2.1以界面方式治理用戶賬戶2.建立SQLServer驗證模式的登錄名〔1〕將驗證模式設(shè)為混合模式。以系統(tǒng)治理員身份登錄“SSMS”,在“對象資源治理器”中選擇要登錄的SQLServer效勞器圖標(biāo),右擊鼠標(biāo),在彈出的快捷菜單中選擇“屬性”菜單項,翻開“效勞器屬性”窗口。選擇“安全性”選項頁。選擇效勞器身份驗證為“SQLServer和Windows身份驗證模式”,如圖10.5所示。10.2.1以界面方式治理用戶賬戶〔2〕創(chuàng)立SQLServer驗證模式的登錄名。在“對象資源治理器”中“安全性”下的“登錄名”上按右鍵,選擇“新建登錄名”,系統(tǒng)顯示“登錄名-新建”對話框。選擇“SQLServer身份驗證”,登錄名輸入“SQL_liu”,輸入密碼和確認(rèn)密碼“123”,并將“強制密碼過期”復(fù)選框中的鉤去掉,默認(rèn)數(shù)據(jù)庫為“pxscj”,如圖10.6所示。單擊“確定”按鈕即可。10.2.1以界面方式治理用戶賬戶3.治理數(shù)據(jù)庫用戶〔1〕以登錄名新建數(shù)據(jù)庫用戶。以系統(tǒng)治理員身份連接SQLServer,開放“數(shù)據(jù)庫”→這里可選“pxscj”→“安全性”,選擇“用戶”,右擊鼠標(biāo),選擇“新建用戶”菜單項,進(jìn)入“數(shù)據(jù)庫用戶-新建”窗口。在“登錄名”框中填寫一個能夠登錄SQLServer的登錄名,如“SQL_liu”。在“用戶名”框中填寫一個數(shù)據(jù)庫用戶名“User_SQL_liu”。一個登錄名在本數(shù)據(jù)庫中只能創(chuàng)立一個數(shù)據(jù)庫用戶。這里可選擇默認(rèn)架構(gòu)為dbo,如圖10.7所示。10.2.1以界面方式治理用戶賬戶圖10.7新建數(shù)據(jù)庫用戶〔SQLServer登錄名〕10.2.1以界面方式治理用戶賬戶也可承受上述方法在pxscj數(shù)據(jù)庫下新建Windows登錄名“l(fā)iu”對應(yīng)的用戶“User_liu”,如圖10.8所示。10.2.1以界面方式治理用戶賬戶〔2〕數(shù)據(jù)庫用戶顯示。數(shù)據(jù)庫用戶創(chuàng)立成功后,可以通過選擇“pxscj”→“安全性”,選擇“用戶”欄查看到該用戶。在“用戶”列表中,還可以修改現(xiàn)有數(shù)據(jù)庫用戶的屬性,或者刪除該用戶?!?〕以SQLServer登錄名連接SQLServer。重啟SQLServer,在對話框的“身份驗證”框中選擇“SQLServer身份驗證”,“登錄名”填寫為“SQL_liu”,輸入密碼“123”,單擊“連接”按鈕,即可連接SQLServer,如圖10.9所示。10.2.1以界面方式治理用戶賬戶此時的“對象資源治理器”如圖10.10所示。10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER1.登錄名創(chuàng)立1〕創(chuàng)立登錄名語法格式:CREATELOGIN登錄名{WITHPASSWORD=”密碼”[HASHED][MUST_CHANGE][,<選項列表>[,...]] /*WITH子句用于創(chuàng)立SQLServer登錄名*/|FROM /*FROM子句用于創(chuàng)立其他登錄名*/{WINDOWS[WITH<Windows選項>[,...]]|CERTIFICATE證書名|ASYMMETRICKEY非對稱密鑰名}}10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER其中:<選項列表>::=SID=登錄GUID|DEFAULT_DATABASE=數(shù)據(jù)庫|DEFAULT_LANGUAGE=語言|CHECK_EXPIRATION={ON|OFF}|CHECK_POLICY={ON|OFF}[CREDENTIAL=憑據(jù)名]<Windows選項>::=DEFAULT_DATABASE=數(shù)據(jù)庫|DEFAULT_LANGUAGE=語言10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER〔1〕創(chuàng)立Windows驗證模式登錄名。創(chuàng)立Windows登錄名使用FROM子句,在FROM子句的語法格式中,WINDOWS關(guān)鍵字指定將登錄名映射到Windows登錄名,其中,<Windows選項>為創(chuàng)立Windows登錄名的選項,DEFAULT_DATABASE指定默認(rèn)數(shù)據(jù)庫,DEFAULT_LANGUAGE指定默認(rèn)語言。【例10.1】以命令方式創(chuàng)立Windows登錄名tao〔假設(shè)Windows用戶tao已經(jīng)創(chuàng)立,本地計算機名為“PC-202312101514”〕,默認(rèn)數(shù)據(jù)庫設(shè)為pxscj。USEpxscjGOCREATELOGIN[PC-202312101514\tao]FROMWINDOWSWITHDEFAULT_DATABASE=pxscj命令執(zhí)行成功后,在“登錄名”→“安全性”列表上就可以查看到該登錄名。10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER〔2〕創(chuàng)立SQLServer驗證模式登錄名。創(chuàng)立SQLServer登錄名使用WITH子句,其中,PASSWORD:用于指定正在創(chuàng)立的登錄名的密碼,“”密碼””為密碼字符串。HASHED選項指定在PASSWORD參數(shù)后輸入的密碼已經(jīng)過哈希運算。<選項列表>:用于指定在創(chuàng)立SQLServer登錄名時的如下選項。
SID:指定新SQLServer登錄名的全局唯一標(biāo)識符。假設(shè)未選擇此選項,則自動指派。
DEFAULT_DATABASE:指定默認(rèn)數(shù)據(jù)庫。假設(shè)未指定此選項,則默認(rèn)數(shù)據(jù)庫將設(shè)置為master。
DEFAULT_LANGUAGE:指定默認(rèn)語言。假設(shè)未指定此選項,則默認(rèn)語言將設(shè)置為效勞器的當(dāng)前默認(rèn)語言。
CHECK_EXPIRATION:指定是否對此登錄名強制實施密碼過期策略,默認(rèn)值為OFF。
CHECK_POLICY:指定應(yīng)對此登錄名強制實施運行SQLServer的計算機的Windows密碼策略,默認(rèn)值為ON?!纠?0.2】創(chuàng)立SQLServer登錄名SQL_tao,密碼為123456,默認(rèn)數(shù)據(jù)庫設(shè)為pxscj。CREATELOGINSQL_taoWITHPASSWORD=”123456”,DEFAULT_DATABASE=pxscj10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER2〕刪除登錄名刪除登錄名使用DROPLOGIN命令。語法格式:DROPLOGIN登錄名例如,刪除Windows登錄名tao和SQLServer登錄名SQL_tao。DROPLOGIN[PC-202312101514\tao]DROPLOGINSQL_tao10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER2.?dāng)?shù)據(jù)庫用戶創(chuàng)立1〕創(chuàng)立數(shù)據(jù)庫用戶創(chuàng)立數(shù)據(jù)庫用戶使用CREATEUSER命令。語法格式:CREATEUSER用戶名[{FOR|FROM}{LOGIN登錄名|CERTIFICATE證書名|ASYMMETRICKEY非對稱密鑰名}|WITHOUTLOGIN][WITHDEFAULT_SCHEMA=架構(gòu)名]10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER【例10.3】使用SQLServer登錄名SQL_tao和Windows登錄名[PC-202312101514\tao]在pxscj數(shù)據(jù)庫中創(chuàng)立數(shù)據(jù)庫用戶User_SQL_tao和User_tao,默認(rèn)架構(gòu)名使用dbo。USEpxscjGOCREATEUSERUser_SQL_taoFORLOGINSQL_taoWITHDEFAULT_SCHEMA=dboCREATEUSERUser_taoFORLOGIN[PC-202312101514\tao]WITHDEFAULT_SCHEMA=dbo命令執(zhí)行成功后,可以在數(shù)據(jù)庫pxscj的“安全性”下的“用戶”列表中查看到該數(shù)據(jù)庫用戶。10.2.2以命令方式治理用戶賬戶:CREATELOGIN/USER2〕刪除數(shù)據(jù)庫用戶刪除數(shù)據(jù)庫用戶使用DROPUSER語句。語法格式:DROPUSER用戶名“用戶名”為要刪除的數(shù)據(jù)庫用戶名,在刪除之前要使用USE語句指定數(shù)據(jù)庫。例如,刪除pxscj數(shù)據(jù)庫的數(shù)據(jù)庫用戶User_SQL_tao。USEpxscjGODROPUSERUser_SQL_tao,User_tao10.3角色管理10.3.1固定效勞器角色SQLServer供給了以下固定效勞器角色?!?〕sysadmin:系統(tǒng)治理員,角色成員可對SQLServer效勞器進(jìn)展全部的治理工作,為最高治理角色。〔2〕securityadmin:安全治理員,角色成員可以治理登錄名及其屬性,可以授予、拒絕、撤銷效勞器級和數(shù)據(jù)庫級的權(quán)限,還可以重置SQLServer登錄名的密碼?!?〕serveradmin:效勞器治理員,角色成員具有對效勞器進(jìn)展設(shè)置及關(guān)閉效勞器的權(quán)限。〔4〕setupadmin:設(shè)置治理員,角色成員可以添加和刪除鏈接效勞器,并執(zhí)行某些系統(tǒng)存儲過程。〔5〕processadmin:進(jìn)程治理員,角色成員可以終止SQLServer實例中運行的進(jìn)程?!?〕diskadmin:用于治理磁盤文件?!?〕dbcreator:數(shù)據(jù)庫創(chuàng)立者,角色成員可以創(chuàng)立、更改、刪除或復(fù)原任何數(shù)據(jù)庫?!?〕bulkadmin:可執(zhí)行BULKINSERT語句,但是這些成員對要插入數(shù)據(jù)的表必需有INSERT權(quán)限?!?〕public:其角色成員可以查看任何數(shù)據(jù)庫。10.3.1固定效勞器角色1.界面方式添加效勞器角色成員〔1〕以系統(tǒng)治理員身份登錄到SQLServer效勞器,在“對象資源治理器”中開放“安全性”→“登錄名”,選擇登錄名,例如“PC-202312101514\tao”,雙擊或右擊選擇“屬性”菜單項,翻開“登錄屬性”窗口。〔2〕在翻開的“登錄屬性”窗口中選擇“效勞器角色”選項頁,在“登錄屬性”窗口右邊列出了全部的固定效勞器角色,用戶可以依據(jù)需要,在效勞器角色前的復(fù)選框中打鉤,來為登錄名添加相應(yīng)的效勞器角色。此處默認(rèn)已經(jīng)選擇了“public”效勞器角色。單擊“確定”按鈕完成添加。10.3.1固定效勞器角色2.利用“系統(tǒng)存儲過程”添加固定效勞器角色成員利用系統(tǒng)存儲過程sp_addsrvrolemember可將一登錄名添加到某一固定效勞器角色中,使其成為固定效勞器角色的成員。語法格式:sp_addsrvrolemember[@登錄名=]”login”,
[@角色名=]”role”參數(shù)含義:”login”指定添加到固定效勞器角色”role”的登錄名,”login”可以是SQLServer登錄名或Windows登錄名;對于Windows登錄名,假設(shè)還沒有授予SQLServer訪問權(quán)限,將自動對其授予訪問權(quán)限?!纠?0.4】將SQLServer登錄名“SQL_tao”添加到sysadmin固定效勞器角色中。EXECsp_addsrvrolemember”SQL_tao”,”sysadmin”10.3.1固定效勞器角色3.利用“系統(tǒng)存儲過程”刪除固定效勞器角色成員利用sp_dropsrvrolemember系統(tǒng)存儲過程可從固定效勞器角色中刪除SQLServer登錄名或Windows登錄名。語法格式:sp_dropsrvrolemember[@登錄名=]”login”,[@角色名=]”role”參數(shù)含義:”login”為將要從固定效勞器角色刪除的登錄名。”role”為效勞器角色名,默認(rèn)值為NULL,必需是有效的固定效勞器角色名。例如,從sysadmin固定效勞器角色中刪除SQLServer登錄名SQL_tao。EXECsp_dropsrvrolemember”SQL_tao”,”sysadmin”10.3.2固定數(shù)據(jù)庫角色〔1〕db_owner:數(shù)據(jù)庫全部者,這個數(shù)據(jù)庫角色的成員可執(zhí)行數(shù)據(jù)庫的全部治理操作。〔2〕db_accessadmin:數(shù)據(jù)庫訪問權(quán)限治理者,角色成員具有增加、刪除數(shù)據(jù)庫使用者、數(shù)據(jù)庫角色和組的權(quán)限。〔3〕db_securityadmin:數(shù)據(jù)庫安全治理員,角色成員具有可治理數(shù)據(jù)庫中的權(quán)限,如設(shè)置數(shù)據(jù)庫表的增加、刪除、修改和查詢等存取權(quán)限?!?〕db_ddladmin:數(shù)據(jù)庫DDL治理員,角色成員可增加、修改或刪除數(shù)據(jù)庫中的對象。〔5〕db_backupoperator:數(shù)據(jù)庫備份操作員,角色成員具有執(zhí)行數(shù)據(jù)庫備份的權(quán)限。〔6〕db_datareader:數(shù)據(jù)庫數(shù)據(jù)讀取者,角色成員可以從全部用戶表中讀取數(shù)據(jù)?!?〕db_datawriter:數(shù)據(jù)庫數(shù)據(jù)寫入者,角色成員具有對全部用戶表進(jìn)展增加、刪除、修改的權(quán)限?!?〕db_denydatareader:數(shù)據(jù)庫拒絕數(shù)據(jù)讀取者,角色成員不能讀取數(shù)據(jù)庫中任何表的內(nèi)容?!?〕db_denydatawriter:數(shù)據(jù)庫拒絕數(shù)據(jù)寫入者,角色成員不能對任何表進(jìn)展增加、刪除、修改操作。〔10〕public:一個特殊的數(shù)據(jù)庫角色,每個數(shù)據(jù)庫用戶都是public角色的成員,因此不能將用戶、組或角色指派為public角色的成員,也不能刪除public角色的成員。通常,將一些公共的權(quán)限賦給public角色。10.3.2固定數(shù)據(jù)庫角色1.以界面方式添加固定數(shù)據(jù)庫角色成員〔1〕以系統(tǒng)治理員身份登錄到SQLServer效勞器,在“對象資源治理器”中開放“數(shù)據(jù)庫”→“pxscj”→“安全性”→“用戶”,選擇一個數(shù)據(jù)庫用戶,如“User_tao”,雙擊或單擊右鍵選擇“屬性”菜單項,翻開“數(shù)據(jù)庫用戶”窗口?!?〕在翻開的窗口中,在“常規(guī)”選項頁的“數(shù)據(jù)庫角色成員身份”欄中,用戶可以依據(jù)需要,在數(shù)據(jù)庫角色前的復(fù)選框中打鉤,為數(shù)據(jù)庫用戶添加相應(yīng)的數(shù)據(jù)庫角色,單擊“確定”按鈕完成添加?!?〕查看固定數(shù)據(jù)庫角色的成員。在“對象資源治理器”中,在pxscj數(shù)據(jù)庫下的“安全性”→“角色”→“數(shù)據(jù)庫角色”名目下,選擇“數(shù)據(jù)庫角色”,如“db_owner”,右擊選擇“屬性”菜單項,在“屬性”窗口中的“角色成員”欄下可以看到該數(shù)據(jù)庫角色的成員列表。10.3.2固定數(shù)據(jù)庫角色2.利用系統(tǒng)存儲過程添加固定數(shù)據(jù)庫角色成員利用系統(tǒng)存儲過程sp_addrolemember可以將一個數(shù)據(jù)庫用戶添加到某一固定數(shù)據(jù)庫角色中,使其成為該固定數(shù)據(jù)庫角色的成員。語法格式:sp_addrolemember[@角色名=]”role”,[@成員名=]”security_account”參數(shù)含義:”role”為當(dāng)前數(shù)據(jù)庫中的數(shù)據(jù)庫角色的名稱。”security_account”為添加到該角色的安全賬戶,可以是數(shù)據(jù)庫用戶或當(dāng)前數(shù)據(jù)庫角色?!纠?0.5】將pxscj數(shù)據(jù)庫上的數(shù)據(jù)庫用戶User_sql_tao、User_tao添加為固定數(shù)據(jù)庫角色db_owner的成員。USEpxscjGOEXECsp_addrolemember”db_owner”,”User_SQL_tao”EXECsp_addrolemember”db_owner”,”User_tao”10.3.2固定數(shù)據(jù)庫角色3.利用系統(tǒng)存儲過程刪除固定數(shù)據(jù)庫角色成員利用系統(tǒng)存儲過程sp_droprolemember可以將某一成員從固定數(shù)據(jù)庫角色中去除。語法格式:sp_droprolemember[@角色名=]”role”,
[@成員名=]”security_account”例如,將數(shù)據(jù)庫用戶User_SQL_tao從db_owner中去除。EXECsp_droprolemember”db_owner”,”User_SQL_tao”EXECsp_droprolemember”db_owner”,”User_tao”10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE1.界面方式創(chuàng)立數(shù)據(jù)庫角色〔1〕創(chuàng)立數(shù)據(jù)庫角色。以Windows系統(tǒng)治理員身份連接SQLServer,在“對象資源治理器”中開放“數(shù)據(jù)庫”,選擇要創(chuàng)立角色的數(shù)據(jù)庫〔如pxscj〕,開放其中的“安全性”→“角色”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建”菜單項,在彈出的子菜單中選擇“新建數(shù)據(jù)庫角色”菜單項,進(jìn)入“數(shù)據(jù)庫角色-新建”窗口。在“數(shù)據(jù)庫角色-新建”窗口中,選擇“常規(guī)”選項頁,輸入要定義的角色名稱〔如ROLE1〕,全部者默認(rèn)為dbo。直接單擊“確定”按鈕,完成數(shù)據(jù)庫角色的創(chuàng)立,如圖10.11所示。10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE圖10.11新建數(shù)據(jù)庫角色10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE〔2〕將數(shù)據(jù)庫用戶參與數(shù)據(jù)庫角色。將用戶參與自定義數(shù)據(jù)庫角色的方法與將用戶參與固定數(shù)據(jù)庫角色的方法類似。例如,將pxscj數(shù)據(jù)庫的用戶User_tao參與ROLE1角色。此時數(shù)據(jù)庫角色ROLE1的成員還沒有任何的權(quán)限,當(dāng)授予數(shù)據(jù)庫角色權(quán)限時,這個角色的成員也將獲得一樣的權(quán)限。當(dāng)數(shù)據(jù)庫用戶成為某一數(shù)據(jù)庫角色的成員之后,該數(shù)據(jù)庫用戶就獲得該數(shù)據(jù)庫角色所擁有的對數(shù)據(jù)庫操作的權(quán)限。10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE2.命令創(chuàng)立數(shù)據(jù)庫角色〔1〕定義數(shù)據(jù)庫角色。創(chuàng)立用戶自定義數(shù)據(jù)庫角色可以使用CREATEROLE語句。語法格式:CREATEROLE角色名[AUTHORIZATION全部者名]【例10.6】在當(dāng)前數(shù)據(jù)庫中創(chuàng)立名為ROLE2的新角色,并指定dbo為該角色的全部者。USEpxscjGOCREATEROLEROLE2AUTHORIZATIONdbo〔2〕給數(shù)據(jù)庫角色添加成員。向用戶定義數(shù)據(jù)庫角色添加成員也使用存儲過程sp_addrolemember,用法與之前介紹的根本一樣?!纠?0.7】將SQLServer登錄名創(chuàng)立的pxscj的數(shù)據(jù)庫用戶User_SQL_tao添加到數(shù)據(jù)庫角色ROLE1中。將數(shù)據(jù)庫角色ROLE2添加到ROLE1中。EXECsp_addrolemember”ROLE1”,”User_SQL_tao”EXECsp_addrolemember”ROLE1”,”ROLE2”10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE3.命令刪除數(shù)據(jù)庫角色要刪除數(shù)據(jù)庫角色可以使用DROPROLE語句。語法格式:DROPROLE角色名其中,“角色名”為要刪除的數(shù)據(jù)庫角色的名稱?!纠?0.8】刪除數(shù)據(jù)庫角色ROLE2。在刪除ROLE2之前,首先需要將ROLE2中的成員刪除,可以使用界面方式,也可以使用命令方式。假設(shè)使用界面方式,只需在ROLE2的屬性頁中操作即可。確認(rèn)ROLE2可以刪除后,使用以下命令刪除ROLE2:DROPROLEROLE210.3.4應(yīng)用程序角色創(chuàng)立應(yīng)用程序角色步驟如下:〔1〕以系統(tǒng)治理員身份連接SQLServer,在“對象資源治理器”窗口中開放“數(shù)據(jù)庫”→“pxscj”→“安全性”→“角色”,右擊“應(yīng)用程序角色”,選擇“新建應(yīng)用程序角色”?!?〕在“應(yīng)用程序角色-新建”窗口中輸入應(yīng)用程序角色名稱“APPRole”,默認(rèn)架構(gòu)“dbo”,設(shè)置密碼為“123”,如圖10.12所示。10.3.4應(yīng)用程序角色圖10.12新建應(yīng)用程序角色〔常規(guī)〕10.3.4應(yīng)用程序角色在“安全對象”選項頁中,可以單擊“搜尋”按鈕,添加“特定對象”,選擇對象為xsb表。單擊“確定”按鈕回到“安全對象”選項頁中,授予xsb表的“選擇”權(quán)限〔如圖10.13所示〕,完成后單擊“確定”按鈕。10.3.4應(yīng)用程序角色〔3〕添加User_SQL_tao用戶為db_denydatareader數(shù)據(jù)庫角色的成員,使用“SQL_tao”登錄名連接SQLServer。此后,在查詢窗口中輸入如下語句:USEpxscjGOSELECT*FROMxsb運行結(jié)果顯示出錯信息?!?〕使用系統(tǒng)存儲過程sp_setapprole激活應(yīng)用程序角色,語句如下:EXECsp_setapprole”APPRole”,”123”〔5〕在查詢窗口中重新輸入第〔3〕步中的查詢語句,成功地執(zhí)行了查詢。10.4數(shù)據(jù)庫權(quán)限的治理10.4.1授予權(quán)限:GRANT1.以命令方式授予權(quán)限利用GRANT語句可以給數(shù)據(jù)庫用戶或數(shù)據(jù)庫角色授予數(shù)據(jù)庫級別或?qū)ο蠹墑e的權(quán)限。語法格式:GRANT{ALL[PRIVILEGES]}|權(quán)限[(列[,...])][,...][ON安全對象]TO主體[,...][WITHGRANTOPTION][AS主體]【例10.9】給pxscj數(shù)據(jù)庫上的用戶User_liu和User_SQL_liu授予創(chuàng)立表的權(quán)限。以系統(tǒng)治理員〔sa〕身份登錄SQLServer,新建一個查詢,輸入以下語句:USEpxscjGOGRANTCREATETABLETOUser_liu,User_SQL_liu,Role1GO說明:授予數(shù)據(jù)庫級權(quán)限時,CREATEDATABASE權(quán)限只能在master數(shù)據(jù)庫中被授予。10.4.1授予權(quán)限:GRANT【例10.10】首先在pxscj數(shù)據(jù)庫中給public角色授予xsb表的SELECT權(quán)限。然后,將其他一些權(quán)限授予用戶User_liu和User_SQL_liu,使用戶有對xsb表的全部操作權(quán)限。以系統(tǒng)治理員身份登錄SQLServer,新建一個查詢,輸入以下語句:USEpxscjGOGRANTSELECTONxsbTOpublic,Role2GOGRANTINSERT,UPDATE,DELETE,REFERENCESONxsbTOUser_liu,User_SQL_liuGO10.4.1授予權(quán)限:GRANT2.以界面方式授予語句權(quán)限1〕授予數(shù)據(jù)庫的權(quán)限【例10.11】數(shù)據(jù)庫用戶User_SQL_tao授予pxscj數(shù)據(jù)庫的CREATETABLE語句的權(quán)限〔即創(chuàng)立表的權(quán)限〕?!?〕選擇“pxscj”數(shù)據(jù)庫,右擊鼠標(biāo),選擇“屬性”菜單項進(jìn)入pxscj數(shù)據(jù)庫的“數(shù)據(jù)庫屬性”窗口,選擇“權(quán)限”頁。在“用戶或角色”欄中選擇需要授予權(quán)限的用戶或角色:User_SQL_tao,在窗口下方列出的“權(quán)限”列表中找到相應(yīng)的權(quán)限:創(chuàng)立表,在復(fù)選框中打鉤,單擊“確定”按鈕即可完成,如圖10.14所示?!?〕假設(shè)需要授予權(quán)限的用戶在列出的“用戶或角色”列表中不存在,則可以單擊“搜尋”按鈕將該用戶添加到列表中再選擇。單擊“有效”選項卡可以查看該用戶在當(dāng)前數(shù)據(jù)庫中有哪些權(quán)限。10.4.1授予權(quán)限:GRANT圖10.14“數(shù)據(jù)庫屬性”窗口10.4.1授予權(quán)限:GRANT2〕授予數(shù)據(jù)庫對象上的權(quán)限【例10.12】給數(shù)據(jù)庫用戶User_SQL_tao授予kcb表上的SELECT、INSERT的權(quán)限?!?〕選擇“pxscj”數(shù)據(jù)庫→“表”→“kcb”,右擊鼠標(biāo),選擇“屬性”菜單項進(jìn)入kcb表的屬性窗口,選擇“權(quán)限”選項頁?!?〕單擊“搜尋”按鈕,在彈出的“選擇用戶或角色”窗口中單擊“掃瞄”按鈕,選擇需要授權(quán)的用戶或角色:User_SQL_tao〕,選擇后單擊“確定”按鈕回到kcb表的“表屬性”窗口?!?〕如圖10.15所示,在“權(quán)限”列表中選擇需要授予的權(quán)限,如“插入”,單擊“確定”按鈕完成授權(quán)?!?〕假設(shè)要授予用戶在表的列上的SELECT權(quán)限,可以選擇“選擇”權(quán)限后單擊“列權(quán)限”按鈕,在彈出的“列權(quán)限”對話框中選擇要授予權(quán)限的列。10.4.2拒絕權(quán)限使用DENY命令可以拒絕給當(dāng)前數(shù)據(jù)庫內(nèi)的用戶授予的權(quán)限,并防止數(shù)據(jù)庫用戶通過其組或角色成員資格繼承權(quán)限。語法格式:DENY{ALL[PRIVILEGES]}|權(quán)限[(列[,...])][,...][ON安全對象]TO主體[,...][CASCADE][AS主體]【例10.13】
對User_SQL_liu用戶和ROLE2角色成員不允許使用CREATEVIEW和CREATETABLE語句。DENYCREATEVIEW,CREATETABLETOUser_SQL_liu,ROLE2GO10.4.2拒絕權(quán)限【例10.14】拒絕用戶User_SQL_liu、[PC-202312101514\liu]對xsb表的一些權(quán)限,這樣,這些用戶就沒有對xsb表的操作權(quán)限了。USEpxscjGODENYSELECT,INSERT,UPDATE,DELETEONxsbTOUser_SQL_liu,[PC-202312101514\liu]GO10.4.3撤銷權(quán)限利用REVOKE命令可撤銷以前給當(dāng)前數(shù)據(jù)庫用戶授予或拒絕的權(quán)限。語法格式:REVOKE[GRANTOPTIONFOR]{[ALL[PRIVILEGES]]|權(quán)限[(列[,...])][,...]}[ON安全對象]{TO|FROM}主體[,...][CASCADE][AS主體]10.4.3撤銷權(quán)限【例10.15】取消已授予用戶權(quán)限。〔1〕取消授予多個用戶的多個語句權(quán)限。REVOKECREATETABLE,CREATEDEFAULTFROMUser_liu,User_SQL_liuGO〔2〕取消User_liu授予或拒絕的在xsb表上的SELECT權(quán)限。REVOKESELECTONxsbFROMUser_liu10.5數(shù)據(jù)庫架構(gòu)的定義和使用10.5.1以界面方式創(chuàng)立架構(gòu)1.創(chuàng)立架構(gòu)【例10.16】在pxscj數(shù)據(jù)庫中創(chuàng)立架構(gòu)。步驟如下:〔1〕以系統(tǒng)治理員身份登錄SQL
Server,在“對象資源治理器”中開放“數(shù)據(jù)庫”→“pxscj”→“安全性”,選
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作方案集錦九篇
- DB45T 2650-2023 大理石廢漿應(yīng)用于濕法煙氣脫硫技術(shù)規(guī)范
- 大四學(xué)年自我鑒定
- DB45T 2602-2022 龍灘珍珠李果實采收及采后商品化處理技術(shù)規(guī)程
- DB45T 2523-2022 城市軌道交通運營安全管理規(guī)范
- 醫(yī)學(xué)生的自我鑒定500字10篇
- 2022銷售實習(xí)工作總結(jié)
- 2025消防系統(tǒng)保養(yǎng)合同
- 2025鋁型材料購銷合同范文
- 2025銀行按揭房買賣合同
- 風(fēng)力發(fā)電項目報價清單 (風(fēng)機基礎(chǔ)等)
- DB41∕T 2001-2020 金銀花扦插育苗技術(shù)規(guī)程
- 臨床路徑及在麻醉科的應(yīng)用
- 車輛架大修規(guī)程分析
- 第三章熱分析
- “小學(xué)數(shù)學(xué)概念教學(xué)”課題研究
- 視神經(jīng)炎專家共識PPT醫(yī)學(xué)課件
- word中表格的使用(課堂PPT)
- 變電站電氣工程質(zhì)量監(jiān)理旁站點及旁站監(jiān)理記錄
- 流動資金缺口測算表
- 混凝土結(jié)構(gòu)設(shè)計原理課程設(shè)計
評論
0/150
提交評論