SQLServer系統(tǒng)安全管理_第1頁
SQLServer系統(tǒng)安全管理_第2頁
SQLServer系統(tǒng)安全管理_第3頁
SQLServer系統(tǒng)安全管理_第4頁
SQLServer系統(tǒng)安全管理_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第10章系統(tǒng)安全管理10.1SQLServer安全機制10.2建立和管理用戶賬戶10.3角色管理10.4數(shù)據(jù)庫權(quán)限管理10.5數(shù)據(jù)庫架構(gòu)定義和使用第1頁10.1SQLServer安全機制10.1.1SQLServer身份驗證模式身份驗證模式是指系統(tǒng)確認(rèn)用戶方式。SQLServer有兩種身份驗證模式:Windows驗證模式和SQLServer驗證模式。這是在安裝SQLServer過程中由“數(shù)據(jù)庫引擎配置”確定,如圖10.1所表示。第2頁10.1.1SQLServer身份驗證模式1.Windows驗證模式用戶登錄Windows時進行身份驗證,登錄SQLServer時就不再進行身份驗證了。注意:(1)必須將Windows賬戶加入到SQLServer中,才能采取Windows賬戶登錄SQLServer。(2)假如使用Windows賬戶登錄到另一個網(wǎng)絡(luò)SQLServer,則必須在Windows中設(shè)置彼此托管權(quán)限。2.SQLServer驗證模式在SQLServer驗證模式下,SQLServer服務(wù)器要對登錄用戶進行身份驗證。系統(tǒng)管理員必須設(shè)定登錄驗證模式類型為混合驗證模式。當(dāng)采取混合模式時,SQLServer系統(tǒng)既允許使用Windows登錄名登錄,也允許使用SQLServer登錄名登錄。第3頁10.1.2SQLServer安全性機制1.服務(wù)器級別服務(wù)器級別所包含安全對象主要有登錄名、固定服務(wù)器角色等。其中,登錄名用于登錄數(shù)據(jù)庫服務(wù)器,而固定服務(wù)器角色用于給登錄名賦予對應(yīng)服務(wù)器權(quán)限。SQLServer中登錄名主要有兩種:第一個是Windows登錄名,第二種是SQLServer登錄名。Windows登錄名對應(yīng)Windows驗證模式,該驗證模式所包括賬戶類型主要有Windows當(dāng)?shù)赜脩糍~戶、Windows域用戶賬戶、Windows組。2.?dāng)?shù)據(jù)庫級別數(shù)據(jù)庫級別所包含安全對象主要有用戶、角色、應(yīng)用程序角色、證書、對稱密鑰、非對稱密鑰、程序集、全文目錄、DDL事件、架構(gòu)等。用戶安全對象是用來訪問數(shù)據(jù)庫。假如某人只擁有登錄名,而沒有在對應(yīng)數(shù)據(jù)庫中為其創(chuàng)建登錄名所對應(yīng)用戶,則該用戶只能登錄數(shù)據(jù)庫服務(wù)器,而不能訪問對應(yīng)數(shù)據(jù)庫。第4頁10.1.2SQLServer安全性機制3.架構(gòu)級別架構(gòu)級別所包含安全對象有表、視圖、函數(shù)、存放過程、類型、同義詞、聚合函數(shù)等。在創(chuàng)建這些對象時可設(shè)定架構(gòu),若不設(shè)定則系統(tǒng)默認(rèn)架構(gòu)為dbo。數(shù)據(jù)庫用戶只能對屬于自己架構(gòu)中數(shù)據(jù)庫對象執(zhí)行對應(yīng)數(shù)據(jù)操作。至于操作權(quán)限則由數(shù)據(jù)庫角色決定。比如,若某數(shù)據(jù)庫中表A屬于架構(gòu)S1,表B屬于架構(gòu)S2,而某用戶默認(rèn)架構(gòu)為S2,假如沒有授予用戶操作表A權(quán)限,則該用戶不能對表A執(zhí)行對應(yīng)數(shù)據(jù)操作。不過,該用戶能夠?qū)Ρ鞡執(zhí)行對應(yīng)操作。第5頁10.1.3SQLServer數(shù)據(jù)庫安全驗證過程一個用戶假如要對某一數(shù)據(jù)庫進行操作,則必須滿足以下三個條件:(1)登錄SQLServer服務(wù)器時必須經(jīng)過身份驗證。(2)必須是該數(shù)據(jù)庫用戶,或者是某一數(shù)據(jù)庫角色組員。(3)必須有對數(shù)據(jù)庫對象執(zhí)行該操作權(quán)限。第6頁10.1.3SQLServer數(shù)據(jù)庫安全驗證過程不論使用哪種驗證方式,用戶都必須具備有效Windows用戶登錄名。SQLServer有兩個慣用默認(rèn)登錄名:sa和計算機名\Windows管理員賬戶名。其中,sa是系統(tǒng)管理員,在SQLServer中擁有系統(tǒng)和數(shù)據(jù)庫全部權(quán)限,如圖10.2所表示。第7頁10.2建立和管理用戶賬戶10.2.1以界面方式管理用戶賬戶1.建立Windows驗證模式登錄名(1)創(chuàng)建Windows用戶。以管理員身份登錄到Windows,打開控制面板,完成新用戶“l(fā)iu”創(chuàng)建。(2)將Windows賬戶加入到SQLServer中。以管理員身份登錄到“SSMS”,在“對象資源管理器”中,在“安全性”下選擇“登錄名”項。右擊鼠標(biāo),在彈出快捷菜單中選擇“新建登錄名”,打開“登錄名-新建”窗口。能夠經(jīng)過單擊“常規(guī)”選項頁“搜索”按鈕,在“選擇用戶或組”對話框“輸入要選擇對象名稱”中輸入“l(fā)iu”,然后單擊“檢驗名稱”按鈕,系統(tǒng)生成“PC-12101514\liu”(如圖10.3所表示),單擊“確定”按鈕,回到“登錄名-新建”窗口。第8頁10.2.1以界面方式管理用戶賬戶在登錄名中就會顯示完整名稱。選擇默認(rèn)數(shù)據(jù)庫為“pxscj”,如圖10.4所表示。第9頁10.2.1以界面方式管理用戶賬戶2.建立SQLServer驗證模式登錄名(1)將驗證模式設(shè)為混合模式。以系統(tǒng)管理員身份登錄“SSMS”,在“對象資源管理器”中選擇要登錄SQLServer服務(wù)器圖標(biāo),右擊鼠標(biāo),在彈出快捷菜單中選擇“屬性”菜單項,打開“服務(wù)器屬性”窗口。選擇“安全性”選項頁。選擇服務(wù)器身份驗證為“SQLServer和Windows身份驗證模式”,如圖10.5所表示。第10頁10.2.1以界面方式管理用戶賬戶(2)創(chuàng)建SQLServer驗證模式登錄名。在“對象資源管理器”中“安全性”下“登錄名”上按右鍵,選擇“新建登錄名”,系統(tǒng)顯示“登錄名-新建”對話框。選擇“SQLServer身份驗證”,登錄名輸入“SQL_liu”,輸入密碼和確認(rèn)密碼“123”,并將“強制密碼過期”復(fù)選框中鉤去掉,默認(rèn)數(shù)據(jù)庫為“pxscj”,如圖10.6所表示。單擊“確定”按鈕即可。第11頁10.2.1以界面方式管理用戶賬戶3.管理數(shù)據(jù)庫用戶(1)以登錄名新建數(shù)據(jù)庫用戶。以系統(tǒng)管理員身份連接SQLServer,展開“數(shù)據(jù)庫”→這里可選“pxscj”→“安全性”,選擇“用戶”,右擊鼠標(biāo),選擇“新建用戶”菜單項,進入“數(shù)據(jù)庫用戶-新建”窗口。在“登錄名”框中填寫一個能夠登錄SQLServer登錄名,如“SQL_liu”。在“用戶名”框中填寫一個數(shù)據(jù)庫用戶名“User_SQL_liu”。

一個登錄名在本數(shù)據(jù)庫中只能創(chuàng)建一個數(shù)據(jù)庫用戶。這里可選擇默認(rèn)架構(gòu)為dbo,如圖10.7所表示。第12頁10.2.1以界面方式管理用戶賬戶圖10.7新建數(shù)據(jù)庫用戶(SQLServer登錄名)第13頁10.2.1以界面方式管理用戶賬戶也可采取上述方法在pxscj數(shù)據(jù)庫下新建Windows登錄名“l(fā)iu”對應(yīng)用戶“User_liu”,如圖10.8所表示。第14頁10.2.1以界面方式管理用戶賬戶(2)數(shù)據(jù)庫用戶顯示。數(shù)據(jù)庫用戶創(chuàng)建成功后,能夠經(jīng)過選擇“pxscj”→“安全性”,選擇“用戶”欄查看到該用戶。在“用戶”列表中,還能夠修改現(xiàn)有數(shù)據(jù)庫用戶屬性,或者刪除該用戶。(3)以SQLServer登錄名連接SQLServer。重啟SQLServer,在對話框“身份驗證”框中選擇“SQLServer身份驗證”,“登錄名”填寫為“SQL_liu”,輸入密碼“123”,單擊“連接”按鈕,即可連接SQLServer,如圖10.9所表示。第15頁10.2.1以界面方式管理用戶賬戶此時“對象資源管理器”如圖10.10所表示。第16頁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非對稱密鑰名}}第17頁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=語言第18頁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)建,當(dāng)?shù)赜嬎銠C名為“PC-12101514”),默認(rèn)數(shù)據(jù)庫設(shè)為pxscj。USEpxscjGOCREATELOGIN[PC-12101514\tao]FROMWINDOWSWITHDEFAULT_DATABASE=pxscj命令執(zhí)行成功后,在“登錄名”→“安全性”列表上就能夠查看到該登錄名。第19頁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)識符。假如未選擇此選項,則自動指派。

DEFAULT_DATABASE:指定默認(rèn)數(shù)據(jù)庫。假如未指定此選項,則默認(rèn)數(shù)據(jù)庫將設(shè)置為master。

DEFAULT_LANGUAGE:指定默認(rèn)語言。假如未指定此選項,則默認(rèn)語言將設(shè)置為服務(wù)器當(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=pxscj第20頁10.2.2以命令方式管理用戶賬戶:CREATELOGIN/USER2)刪除登錄名刪除登錄名使用DROPLOGIN命令。語法格式:DROPLOGIN登錄名比如,刪除Windows登錄名tao和SQLServer登錄名SQL_tao。DROPLOGIN[PC-12101514\tao]DROPLOGINSQL_tao第21頁10.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)名]第22頁10.2.2以命令方式管理用戶賬戶:CREATELOGIN/USER【例10.3】使用SQLServer登錄名SQL_tao和Windows登錄名[PC-12101514\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-12101514\tao]WITHDEFAULT_SCHEMA=dbo命令執(zhí)行成功后,能夠在數(shù)據(jù)庫pxscj“安全性”下“用戶”列表中查看到該數(shù)據(jù)庫用戶。第23頁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_tao第24頁10.3角色管理10.3.1固定服務(wù)器角色SQLServer提供了以下固定服務(wù)器角色。(1)sysadmin:系統(tǒng)管理員,角色組員可對SQLServer服務(wù)器進行全部管理工作,為最高管理角色。(2)securityadmin:安全管理員,角色組員能夠管理登錄名及其屬性,能夠授予、拒絕、撤消服務(wù)器級和數(shù)據(jù)庫級權(quán)限,還能夠重置SQLServer登錄名密碼。(3)serveradmin:服務(wù)器管理員,角色組員含有對服務(wù)器進行設(shè)置及關(guān)閉服務(wù)器權(quán)限。(4)setupadmin:設(shè)置管理員,角色組員能夠添加和刪除鏈接服務(wù)器,并執(zhí)行一些系統(tǒng)存放過程。(5)processadmin:進程管理員,角色組員能夠終止SQLServer實例中運行進程。(6)diskadmin:用于管理磁盤文件。(7)dbcreator:數(shù)據(jù)庫創(chuàng)建者,角色組員能夠創(chuàng)建、更改、刪除或還原任何數(shù)據(jù)庫。(8)bulkadmin:可執(zhí)行BULKINSERT語句,不過這些組員對要插入數(shù)據(jù)表必須有INSERT權(quán)限。(9)public:其角色組員能夠查看任何數(shù)據(jù)庫。第25頁10.3.1固定服務(wù)器角色1.界面方式添加服務(wù)器角色組員(1)以系統(tǒng)管理員身份登錄到SQLServer服務(wù)器,在“對象資源管理器”中展開“安全性”→“登錄名”,選擇登錄名,比如“PC-12101514\tao”,雙擊或右擊選擇“屬性”菜單項,打開“登錄屬性”窗口。(2)在打開“登錄屬性”窗口中選擇“服務(wù)器角色”選項頁,在“登錄屬性”窗口右邊列出了全部固定服務(wù)器角色,用戶能夠依據(jù)需要,在服務(wù)器角色前復(fù)選框中打鉤,來為登錄名添加對應(yīng)服務(wù)器角色。此處默認(rèn)已經(jīng)選擇了“public”服務(wù)器角色。單擊“確定”按鈕完成添加。第26頁10.3.1固定服務(wù)器角色2.利用“系統(tǒng)存放過程”添加固定服務(wù)器角色組員利用系統(tǒng)存放過程sp_addsrvrolemember可將一登錄名添加到某一固定服務(wù)器角色中,使其成為固定服務(wù)器角色組員。語法格式:sp_addsrvrolemember[@登錄名=]'login',

[@角色名=]'role'參數(shù)含義:'login'指定添加到固定服務(wù)器角色'role'登錄名,'login'能夠是SQLServer登錄名或Windows登錄名;對于Windows登錄名,假如還沒有授予SQLServer訪問權(quán)限,將自動對其授予訪問權(quán)限?!纠?0.4】

將SQLServer登錄名“SQL_tao”添加到sysadmin固定服務(wù)器角色中。EXECsp_addsrvrolemember'SQL_tao','sysadmin'第27頁10.3.1固定服務(wù)器角色3.利用“系統(tǒng)存放過程”刪除固定服務(wù)器角色組員利用sp_dropsrvrolemember系統(tǒng)存放過程可從固定服務(wù)器角色中刪除SQLServer登錄名或Windows登錄名。語法格式:sp_dropsrvrolemember[@登錄名=]'login',[@角色名=]'role'參數(shù)含義:'login'為將要從固定服務(wù)器角色刪除登錄名。'role'為服務(wù)器角色名,默認(rèn)值為NULL,必須是有效固定服務(wù)器角色名。比如,從sysadmin固定服務(wù)器角色中刪除SQLServer登錄名SQL_tao。EXECsp_dropsrvrolemember'SQL_tao','sysadmin'第28頁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)限。(4)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ù)。(7)db_datawriter:數(shù)據(jù)庫數(shù)據(jù)寫入者,角色組員含有對全部用戶表進行增加、刪除、修改權(quán)限。(8)db_denydatareader:數(shù)據(jù)庫拒絕數(shù)據(jù)讀取者,角色組員不能讀取數(shù)據(jù)庫中任何表內(nèi)容。(9)db_denydatawriter:數(shù)據(jù)庫拒絕數(shù)據(jù)寫入者,角色組員不能對任何表進行增加、刪除、修改操作。(10)public:一個特殊數(shù)據(jù)庫角色,每個數(shù)據(jù)庫用戶都是public角色組員,所以不能將用戶、組或角色指派為public角色組員,也不能刪除public角色組員。通常,將一些公共權(quán)限賦給public角色。第29頁10.3.2固定數(shù)據(jù)庫角色1.以界面方式添加固定數(shù)據(jù)庫角色組員(1)以系統(tǒng)管理員身份登錄到SQLServer服務(wù)器,在“對象資源管理器”中展開“數(shù)據(jù)庫”→“pxscj”→“安全性”→“用戶”,選擇一個數(shù)據(jù)庫用戶,如“User_tao”,雙擊或單擊右鍵選擇“屬性”菜單項,打開“數(shù)據(jù)庫用戶”窗口。(2)在打開窗口中,在“常規(guī)”選項頁“數(shù)據(jù)庫角色組員身份”欄中,用戶能夠依據(jù)需要,在數(shù)據(jù)庫角色前復(fù)選框中打鉤,為數(shù)據(jù)庫用戶添加對應(yīng)數(shù)據(jù)庫角色,單擊“確定”按鈕完成添加。(3)查看固定數(shù)據(jù)庫角色組員。在“對象資源管理器”中,在pxscj數(shù)據(jù)庫下“安全性”→“角色”→“數(shù)據(jù)庫角色”目錄下,選擇“數(shù)據(jù)庫角色”,如“db_owner”,右擊選擇“屬性”菜單項,在“屬性”窗口中“角色組員”欄下能夠看到該數(shù)據(jù)庫角色組員列表。第30頁10.3.2固定數(shù)據(jù)庫角色2.利用系統(tǒng)存放過程添加固定數(shù)據(jù)庫角色組員利用系統(tǒng)存放過程sp_addrolemember能夠?qū)⒁粋€數(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ù)庫角色。【例10.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'第31頁10.3.2固定數(shù)據(jù)庫角色3.利用系統(tǒng)存放過程刪除固定數(shù)據(jù)庫角色組員利用系統(tǒng)存放過程sp_droprolemember能夠?qū)⒛骋唤M員從固定數(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'第32頁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ù)庫角色”菜單項,進入“數(shù)據(jù)庫角色-新建”窗口。在“數(shù)據(jù)庫角色-新建”窗口中,選擇“常規(guī)”選項頁,輸入要定義角色名稱(如ROLE1),全部者默認(rèn)為dbo。直接單擊“確定”按鈕,完成數(shù)據(jù)庫角色創(chuàng)建,如圖10.11所表示。第33頁10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE圖10.11新建數(shù)據(jù)庫角色第34頁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)限。第35頁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,使用方法與之前介紹基本相同。【例10.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'第36頁10.3.3自定義數(shù)據(jù)庫角色:CREATE/DROPROLE3.命令刪除數(shù)據(jù)庫角色要刪除數(shù)據(jù)庫角色能夠使用DROPROLE語句。語法格式:DROPROLE角色名其中,“角色名”為要刪除數(shù)據(jù)庫角色名稱。【例10.8】

刪除數(shù)據(jù)庫角色ROLE2。在刪除ROLE2之前,首先需要將ROLE2中組員刪除,能夠使用界面方式,也能夠使用命令方式。若使用界面方式,只需在ROLE2屬性頁中操作即可。確認(rèn)ROLE2能夠刪除后,使用以下命令刪除ROLE2:DROPROLEROLE2第37頁10.3.4應(yīng)用程序角色創(chuàng)建應(yīng)用程序角色步驟以下:(1)以系統(tǒng)管理員身份連接SQLServer,在“對象資源管理器”窗口中展開“數(shù)據(jù)庫”→“pxscj”→“安全性”→“角色”,右擊“應(yīng)用程序角色”,選擇“新建應(yīng)用程序角色”。(2)在“應(yīng)用程序角色-新建”窗口中輸入應(yīng)用程序角色名稱“APPRole”,默認(rèn)架構(gòu)“dbo”,設(shè)置密碼為“123”,如圖10.12所表示。第38頁10.3.4應(yīng)用程序角色圖10.12新建應(yīng)用程序角色(常規(guī))第39頁10.3.4應(yīng)用程序角色在“安全對象”選項頁中,能夠單擊“搜索”按鈕,添加“特定對象”,選擇對象為xsb表。單擊“確定”按鈕回到“安全對象”選項頁中,授予xsb表“選擇”權(quán)限(如圖10.13所表示),完成后單擊“確定”按鈕。第40頁10.3.4應(yīng)用程序角色(3)添加User_SQL_tao用戶為db_denydatareader數(shù)據(jù)庫角色組員,使用“SQL_tao”登錄名連接SQLServer。今后,在查詢窗口中輸入以下語句:USEpxscjGOSELECT*FROMxsb運行結(jié)果顯示犯錯信息。(4)使用系統(tǒng)存放過程sp_setapprole激活應(yīng)用程序角色,語句以下:EXECsp_setapprole'APPRole','123'(5)在查詢窗口中重新輸入第(3)步中查詢語句,成功地執(zhí)行了查詢。第41頁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ù)庫中被授予。第42頁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_liuGO第43頁10.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)限)。(1)選擇“pxscj”數(shù)據(jù)庫,右擊鼠標(biāo),選擇“屬性”菜單項進入pxscj數(shù)據(jù)庫“數(shù)據(jù)庫屬性”窗口,選擇“權(quán)限”頁。在“用戶或角色”欄中選擇需要授予權(quán)限用戶或角色:User_SQL_tao,在窗口下方列出“權(quán)限”列表中找到對應(yīng)權(quán)限:創(chuàng)建表,在復(fù)選框中打鉤,單擊“確定”按鈕即可完成,如圖10.14所表示。(2)假如需要授予權(quán)限用戶在列出“用戶或角色”列表中不存在,則能夠單擊“搜索”按鈕將該用戶添加到列表中再選擇。單擊“有效”選項卡能夠查看該用戶在當(dāng)前數(shù)據(jù)庫中有哪些權(quán)限。第44頁10.4.1授予權(quán)限:GRANT圖10.14“數(shù)據(jù)庫屬性”窗口第45頁10.4.1授予權(quán)限:GRANT2)授予數(shù)據(jù)庫對象上權(quán)限【例10.12】

給數(shù)據(jù)庫用戶User_SQL_tao授予kcb表上SELECT、INSERT權(quán)限。(1)選擇“pxscj”數(shù)據(jù)庫→“表”→“kcb”,右擊鼠標(biāo),選擇“屬性”菜單項進入kcb表屬性窗口,選擇“權(quán)限”選項頁。(2)單擊“搜索”按鈕,在彈出“選擇用戶或角色”窗口中單擊“瀏覽”按鈕,選擇需要授權(quán)用戶或角色:User_SQL_tao),選擇后單擊“確定”按鈕回到kcb表“表屬性”窗口。(3)如圖10.15所表示,在“權(quán)限”列表中選擇需要授予權(quán)限,如“插入”,單擊“確定”按鈕完成授權(quán)。(4)假如要授予用戶在表列上SELECT權(quán)限,能夠選擇“選擇”權(quán)限后單擊“列權(quán)限”按鈕,在彈出“列權(quán)限”對話框中選擇要授予權(quán)限列。第46頁10.4.2拒絕權(quán)限使用DENY命令能夠拒絕給當(dāng)前數(shù)據(jù)庫內(nèi)用戶授予權(quán)限,并預(yù)防數(shù)據(jù)庫用戶經(jīng)過其組或角色組員資格繼承權(quán)限。語法格式:DENY{ALL[PRIVILEGES]}|權(quán)限[(列[,...])][,...][ON安全對象]TO主體[,...][CASCADE][AS主體]【例10.13】

對User_SQL_liu用戶和ROLE2角色組員不允許使用CREATEVIEW和CREATETABLE語句。DENYCREATEVIEW,CREATETABLETOUser_SQL_liu,ROLE2GO第47頁10.4.2拒絕權(quán)限【例10.14】

拒絕用戶User_SQL_liu、[PC-12101514\liu]對xsb表一些權(quán)限,這么,這些用戶就沒有對xsb表操作權(quán)限了。USEpxscjGODENYSELECT,INSERT,UPDATE,DELETEONxsbTOUser_SQL_liu,[PC-12101514\liu]GO第48頁10.4.3撤消權(quán)限利用REVOKE命令可撤消以前給當(dāng)前數(shù)據(jù)庫用戶授予或拒絕權(quán)限。語法格式:REVOKE[GRANTOPTIONFOR]{[ALL[PRIVILEGES]]|權(quán)限[(列[,...])][,...]}[ON安全對象]{TO|FROM}主體[,...][CASCADE][AS主體]第49頁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_liu第50頁10.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,在“對象資源管理器”中

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論