《系統(tǒng)安全管理》PPT課件.ppt_第1頁
《系統(tǒng)安全管理》PPT課件.ppt_第2頁
《系統(tǒng)安全管理》PPT課件.ppt_第3頁
《系統(tǒng)安全管理》PPT課件.ppt_第4頁
《系統(tǒng)安全管理》PPT課件.ppt_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第9章 系統(tǒng)安全管理,9.1 SQL Server 2008的安全機制,9.2 建立和管理用戶賬戶,9.3 角色管理,9.4 數(shù)據(jù)庫權(quán)限的管理,9.5 數(shù)據(jù)庫架構(gòu)的定義和使用,9.1 SQL Server 2008的安全機制,9.1.1 SQL Server 2008的身份驗證模式 SQL Server 2008的身份驗證模式是指系統(tǒng)確認用戶的方式。SQL Server 2008有兩種身份驗證模式:Windows驗證模式和SQL Server驗證模式。如圖9.1所示為這兩種方式登錄SQL Server服務(wù)器的情形。,圖9.1 兩種驗證方式登錄SQL Server服務(wù)器的情形,9.1.1 SQL

2、 Server 2008的身份驗證模式,1Windows驗證模式 用戶登錄Windows時進行身份驗證,登錄SQL Server時就不再進行身份驗證。以下是對于Windows驗證模式登錄的幾點重要說明。 (1)必須將Windows賬戶加入到SQL Server中,才能采用Windows賬戶登錄SQL Server。 (2)如果使用Windows賬戶登錄到另一個網(wǎng)絡(luò)的SQL Server,則必須在Windows中設(shè)置彼此的托管權(quán)限。 2SQL Server驗證模式 在SQL Server驗證模式下,SQL Server服務(wù)器要對登錄的用戶進行身份驗證。當SQL Server在Windows XP

3、或Windows 2003/2008等操作系統(tǒng)上運行時,系統(tǒng)管理員設(shè)定登錄驗證模式的類型可為Windows驗證模式和混合模式。當采用混合模式時,SQL Server系統(tǒng)既允許使用Windows登錄名登錄,也允許使用SQL Server登錄名登錄。,9.1.2 SQL Server 2008的安全性機制,(1)服務(wù)器級別所包含的安全對象主要有登錄名、固定服務(wù)器角色等。其中,登錄名用于登錄數(shù)據(jù)庫服務(wù)器,而固定服務(wù)器角色用于給登錄名賦予相應(yīng)的服務(wù)器權(quán)限。 SQL Server 2008中的登錄名主要有兩種,第一種是Windows登錄名,第二種是SQL Server登錄名。 Windows登錄名對應(yīng)W

4、indows驗證模式,該驗證模式所涉及的賬戶類型主要有Windows本地用戶賬戶、Windows域用戶賬戶、Windows組。 SQL Server登錄名對應(yīng)SQL Server驗證模式,在該驗證模式下,能夠使用的賬戶類型主要是SQL Server賬戶。 (2)數(shù)據(jù)庫級別所包含的安全對象主要有用戶、角色、應(yīng)用程序角色、證書、對稱密鑰、非對稱密鑰、程序集、全文目錄、DDL事件、架構(gòu)等。 用戶安全對象是用來訪問數(shù)據(jù)庫的。如果某人只擁有登錄名,而沒有在相應(yīng)的數(shù)據(jù)庫中為其創(chuàng)建登錄名所對應(yīng)的用戶,則該用戶只能登錄數(shù)據(jù)庫服務(wù)器,而不能訪問相應(yīng)的數(shù)據(jù)庫。,9.1.2 SQL Server 2008的安全性機

5、制,(3)架構(gòu)級別所包含的安全對象主要有表、視圖、函數(shù)、存儲過程、類型、同義詞、聚合函數(shù)等。 簡單地說,架構(gòu)的作用是將數(shù)據(jù)庫中的所有對象分成不同的集合,這些集合沒有交集,每一個集合就稱為一個架構(gòu)。數(shù)據(jù)庫中的每一個用戶都會有自己的默認架構(gòu)。這個默認架構(gòu)可以在創(chuàng)建數(shù)據(jù)庫用戶時由創(chuàng)建者設(shè)定,若不設(shè)定則系統(tǒng)默認架構(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,而某用戶默認的架構(gòu)為S2,如果沒有授予用戶操作表A的權(quán)限,則該用戶不能對表A執(zhí)行相應(yīng)的數(shù)據(jù)操作。但是,該用戶可以對表B執(zhí)行相應(yīng)的

6、操作。,9.1.2 SQL Server 2008的安全性機制,一個數(shù)據(jù)庫使用者,要登錄服務(wù)器上的SQL Server數(shù)據(jù)庫,并對數(shù)據(jù)庫中的表執(zhí)行數(shù)據(jù)更新操作,則該使用者必須經(jīng)過如圖9.2所示的安全驗證。,圖9.2 SQL Server數(shù)據(jù)庫安全驗證,9.2 建立和管理用戶賬戶,9.2.1 界面方式管理用戶賬戶 1建立Windows驗證模式的登錄名 第1步:創(chuàng)建Windows的用戶。 以管理員身份登錄到Windows XP,選擇“開始”,打開控制面板中的“性能和維 護”,選擇其中的“管理工具”,雙擊“計算機管理”,進入“計算機管理”窗口。 在該窗口中選擇“本地用戶和組”中的“用戶”圖標,右擊,

7、在彈出的快捷菜單中選擇 “新用戶”菜單項,打開“新用戶”窗口。如圖9.3所示,在該窗口中輸入用戶名、密碼,單擊“創(chuàng)建”按鈕,然后單擊“關(guān)閉”按鈕,完成新用戶的創(chuàng)建。,圖9.3 創(chuàng)建新用戶的界面,9.2.1 界面方式管理用戶賬戶,第2步:將Windows賬戶加入到SQL Server中。 以管理員身份登錄到SQL Server Management Studio,在對象資源管理器中,找到并選擇如圖9.4所示的“登錄名”項。右擊鼠標,在彈出的快捷菜單中選擇“新建登錄名”,打開“登錄名-新建”窗口。,圖9.4 新建登錄名,9.2.1 界面方式管理用戶賬戶,如圖9.5所示,可以通過單擊“常規(guī)”選項卡的

8、“搜索”按鈕,在“選擇用戶或組”對話框中選擇相應(yīng)的用戶名或用戶組并添加到SQL Server 2008登錄用戶列表中。例如,本例的用戶名為0BD7E57C949A420liu(0BD7E57C949A420為本地計算機名)。,圖9.5 新建登錄名,9.2.1 界面方式管理用戶賬戶,2建立SQL Server驗證模式的登錄名 步驟如下。 第1步:以系統(tǒng)管理員身份登錄SQL Server Management Studio,在對象資源管理器中選擇要登錄的SQL Server服務(wù)器圖標,右擊鼠標,在彈出的快捷菜單中選擇“屬性”菜單項,打開“服務(wù)器屬性”窗口。 第2步:在打開的“服務(wù)器屬性”窗口中選擇

9、“安全性”選項卡。選擇服務(wù)器身份驗證為“SQL Server和Windows身份驗證模式”,單擊“確定”按鈕,保存新的配置,重啟SQL Server服務(wù)即可。 創(chuàng)建SQL Server驗證模式的登錄名也在如圖9.5所示的界面中進行,輸入一個自己定義的登錄名,例如david,選中“SQL Server身份驗證”選項,輸入密碼,并將“強制密碼過期”復選框中的勾去掉,設(shè)置完單擊“確定”按鈕即可。,9.2.1 界面方式管理用戶賬戶,為了測試創(chuàng)建的登錄名能否連接SQL Server,可以使用新建的登錄名david來進行測試,具體步驟如下: 在對象資源管理器窗口中單擊“連接”,在下拉框中選擇“數(shù)據(jù)庫引擎”

10、,彈出“連接到服務(wù)器”對話框。在該對話框中,“身份驗證”選擇“SQL Server身份驗證”,“登錄名”填寫david,輸入密碼,單擊“連接”按鈕,就能連接SQL Server了。登錄后的“對象資源管理器”界面如圖9.6所示。,圖9.6 使用SQL Server驗證方式登錄,9.2.1 界面方式管理用戶賬戶,3管理數(shù)據(jù)庫用戶 使用SSMS創(chuàng)建數(shù)據(jù)庫用戶賬戶的步驟如下(以PXSCJ為例): 以系統(tǒng)管理員身份連接SQL Server,展開“數(shù)據(jù)庫PXSCJ安全性”,選擇“用戶”,右擊鼠標,選擇“新建用戶”菜單項,進入“數(shù)據(jù)庫用戶-新建”窗口。在“用戶名”框中填寫一個數(shù)據(jù)庫用戶名,“登錄名”框中填寫

11、一個能夠登錄SQL Server的登錄名,如david。注意,一個登錄名在本數(shù)據(jù)庫中只能創(chuàng)建一個數(shù)據(jù)庫用戶。選擇默認架構(gòu)為dbo,如圖9.7所示,單擊“確定”按鈕完成創(chuàng)建。,圖9.7 新建數(shù)據(jù)庫用戶賬戶,9.2.2 命令方式管理用戶賬戶,1創(chuàng)建登錄名 在SQL Server 2008中,創(chuàng)建登錄名可以使用CREATE LOGIN命令。語法格式: CREATE LOGIN login_name WITH PASSWORD = password HASHED MUST_CHANGE , ,. /*WITH子句用于創(chuàng)建SQL Server登錄名*/ | FROM/*FROM子句用于創(chuàng)建其他登錄名*/

12、 WINDOWS WITH ,. | CERTIFICATE certname | ASYMMETRIC KEY asym_key_name ,9.2.2 命令方式管理用戶賬戶,其中, := SID = sid | DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = ON | OFF | CHECK_POLICY = ON | OFF CREDENTIAL = credential_name := DEFAULT_DATABASE = database | DEFAULT_LANGUAGE

13、 = language,9.2.2 命令方式管理用戶賬戶,(1)創(chuàng)建Windows驗證模式登錄名。創(chuàng)建Windows登錄名使用FROM子句,在FROM子句的語法格式中,WINDOWS關(guān)鍵字指定將登錄名映射到Windows登錄名,其中,為創(chuàng)建Windows登錄名的選項,DEFAULT_DATABASE指定默認數(shù)據(jù)庫,DEFAULT_LANGUAGE指定默認語言。 【例9.1】 使用命令方式創(chuàng)建Windows登錄名tao(假設(shè)Windows用戶tao已經(jīng)創(chuàng)建,本地計算機名為0BD7E57C949A420),默認數(shù)據(jù)庫設(shè)為PXSCJ。 USE master GO CREATE LOGIN 0BD7E

14、57C949A420tao FROM WINDOWS WITH DEFAULT_DATABASE= PXSCJ,9.2.2 命令方式管理用戶賬戶,(2)創(chuàng)建SQL Server驗證模式登錄名。創(chuàng)建SQL Server登錄名使用WITH子句,其中, PASSWORD:用于指定正在創(chuàng)建的登錄名的密碼,password為密碼字符串。HASHED 選項指定在PASSWORD參數(shù)后輸入的密碼已經(jīng)過哈希運算,如果未選擇此選項,則在將作為密碼輸入的字符串存儲到數(shù)據(jù)庫之前,對其進行哈希運算。如果指定MUST_CHANGE選項,則SQL Server會在首次使用新登錄名時提示用戶輸入新密碼。 :用于指定在創(chuàng)建S

15、QL Server登錄名時的一些選項,選項如下。 SID:指定新SQL Server登錄名的全局唯一標識符,如果未選擇此選項,則自動指派。 DEFAULT_DATABASE:指定默認數(shù)據(jù)庫,如果未指定此選項,則默認數(shù)據(jù)庫將設(shè)置為master。 DEFAULT_LANGUAGE:指定默認語言,如果未指定此選項,則默認語言將設(shè)置為服務(wù)器的當前默認語言。 CHECK_EXPIRATION:指定是否對此登錄名強制實施密碼過期策略,默認值為OFF。 CHECK_POLICY:指定應(yīng)對此登錄名強制實施運行SQL Server的計算機的Windows密碼策略,默認值為ON。,9.2.2 命令方式管理用戶賬戶

16、,【例9.2】 創(chuàng)建SQL Server登錄名sql_tao,密碼為123456,默認數(shù)據(jù)庫設(shè)為PXSCJ。 CREATE LOGIN sql_tao WITH PASSWORD=123456, DEFAULT_DATABASE=PXSCJ,9.2.2 命令方式管理用戶賬戶,2刪除登錄名 刪除登錄名使用DROP LOGIN命令。語法格式: DROP LOGIN login_name 【例9.3】 刪除Windows登錄名tao。 DROP LOGIN 0BD7E57C949A420tao 【例9.4】 刪除SQL Server登錄名sql_tao。 DROP LOGIN sql_tao,9.2

17、.2 命令方式管理用戶賬戶,3創(chuàng)建數(shù)據(jù)庫用戶 創(chuàng)建數(shù)據(jù)庫用戶使用CREATE USER命令。語法格式: CREATE USER user_name FOR | FROM LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name | WITHOUT LOGIN WITH DEFAULT_SCHEMA = schema_name 【例9.5】 使用SQL Server登錄名sql_tao(假設(shè)已經(jīng)創(chuàng)建)在PXSCJ數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫用戶tao,默認架構(gòu)名使用dbo。 USE PXSCJ GO CREATE USE

18、R tao FOR LOGIN sql_tao WITH DEFAULT_SCHEMA=dbo,9.2.2 命令方式管理用戶賬戶,4刪除數(shù)據(jù)庫用戶 刪除數(shù)據(jù)庫用戶使用DROP USER語句。語法格式: DROP USER user_name user_name為要刪除的數(shù)據(jù)庫用戶名,在刪除之前要使用USE語句指定數(shù)據(jù)庫。 【例9.6】 刪除PXSCJ數(shù)據(jù)庫的數(shù)據(jù)庫用戶tao。 USE PXSCJ GO DROP USER tao,9.3 角色管理,9.3.1 固定服務(wù)器角色 (1)sysadmin:系統(tǒng)管理員,角色成員可對SQL Server服務(wù)器進行所有的管理工作,為最高管理角色。這個角色一

19、般適合于數(shù)據(jù)庫管理員(DBA)。 (2)securityadmin:安全管理員,角色成員可以管理登錄名及其屬性??梢允谟?、拒絕、撤銷服務(wù)器級和數(shù)據(jù)庫級的權(quán)限。另外還可以重置SQL Server登錄名的密碼。 (3)serveradmin:服務(wù)器管理員,角色成員具有對服務(wù)器進行設(shè)置及關(guān)閉服務(wù)器的權(quán)限。 (4)setupadmin:設(shè)置管理員,角色成員可以添加和刪除鏈接服務(wù)器,并執(zhí)行某些系統(tǒng)存儲過程。 (5)processadmin:進程管理員,角色成員可以終止SQL Server實例中運行的進程。 (6)diskadmin:用于管理磁盤文件。 (7)dbcreator:數(shù)據(jù)庫創(chuàng)建者,角色成員可以

20、創(chuàng)建、更改、刪除或還原任何數(shù)據(jù)庫。 (8)bulkadmin:可執(zhí)行BULK INSERT語句,但是這些成員對要插入數(shù)據(jù)的表必須有INSERT權(quán)限。BULK INSERT語句的功能是以用戶指定的格式復制一個數(shù)據(jù)文件至數(shù)據(jù)庫表或視圖。 (9)public:其角色成員可以查看任何數(shù)據(jù)庫。,9.3.1 固定服務(wù)器角色,1通過對象資源管理器添加服務(wù)器角色成員 第1步:以系統(tǒng)管理員身份登錄到SQL Server服務(wù)器,在對象資源管理器中展開“安全性登錄名”,選擇登錄名,例如“0BD7E57C949A420liu”,雙擊或右擊選擇“屬性”菜單項,打開“登錄屬性”窗口。 第2步:在打開的“登錄屬性”窗口中選

21、擇“服務(wù)器角色”選項卡。如圖9.8所示,在“登錄屬性”窗口右邊列出了所有的固定服務(wù)器角色,用戶可以根據(jù)需要,在服務(wù)器角色前的復選框中打勾,來為登錄名添加相應(yīng)的服務(wù)器角色,此處默認已經(jīng)選擇了“public”服務(wù)器角色。單擊“確定”按鈕完成添加。,9.3.1 固定服務(wù)器角色,圖9.8 SQL Server服務(wù)器角色設(shè)置窗口,9.3.1 固定服務(wù)器角色,2利用系統(tǒng)存儲過程添加固定服務(wù)器角色成員 利用系統(tǒng)存儲過程sp_addsrvrolemember可將一登錄名添加到某一固定服務(wù)器角色中,使其成為固定服務(wù)器角色的成員。語法格式: sp_addsrvrolemember loginame = login

22、, rolename = role 參數(shù)含義:login指定添加到固定服務(wù)器角色role的登錄名,login可以是SQL Server登錄名或Windows 登錄名;對于Windows登錄名,如果還沒有授予SQL Server訪問權(quán)限,將自動對其授予訪問權(quán)限。固定服務(wù)器角色名role必須為sysadmin、securityadmin、serveradmin、setupadmin、processadmin、diskadmin、dbcreator、bulkadmin和public之一。 【例9.7】 將Windows登錄名0BD7E57C949A420liu添加到sysadmin固定服務(wù)器角色中。

23、 EXEC sp_addsrvrolemember 0BD7E57C949A420liu, sysadmin,9.3.1 固定服務(wù)器角色,3利用系統(tǒng)存儲過程刪除固定服務(wù)器角色成員 利用sp_dropsrvrolemember系統(tǒng)存儲過程可從固定服務(wù)器角色中刪除SQL Server 登錄名或Windows登錄名。語法格式: sp_dropsrvrolemember loginame = login , rolename = role 參數(shù)含義:login為將要從固定服務(wù)器角色刪除的登錄名。role為服務(wù)器角色名,默認值為NULL,必須是有效的固定服務(wù)器角色名。 【例9.8】 從sysadmin固

24、定服務(wù)器角色中刪除SQL Server登錄名david。 EXEC sp_dropsrvrolemember david, sysadmin,9.3.2 固定數(shù)據(jù)庫角色,(1)db_owner:數(shù)據(jù)庫所有者,這個數(shù)據(jù)庫角色的成員可執(zhí)行數(shù)據(jù)庫的所有管理操作。 用戶發(fā)出的所有SQL語句均受限于該用戶具有的權(quán)限。例如,CREATE DATABASE僅限于sysadmin和dbcreator固定服務(wù)器角色的成員使用。 sysadmin固定服務(wù)器角色的成員、db_owner固定數(shù)據(jù)庫角色的成員以及數(shù)據(jù)庫對象的所有者都可授予、拒絕或廢除某個用戶或某個角色的權(quán)限。使用GRANT賦予執(zhí)行T-SQL語句或?qū)?shù)據(jù)

25、進行操作的權(quán)限;使用DENY拒絕權(quán)限,并防止指定的用戶、組或角色從組和角色成員的關(guān)系中繼承權(quán)限;使用REVOKE取消以前授予或拒絕的權(quán)限。 (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ù)庫中的對象。,9.3.2 固定數(shù)據(jù)庫角色,(5)db_backupoperator:數(shù)據(jù)庫備份操作員,角色成員具有執(zhí)行數(shù)據(jù)

26、庫備份的權(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角色的成

27、員。通常將一些公共的權(quán)限賦給public角色。,9.3.2 固定數(shù)據(jù)庫角色,1使用對象資源管理器添加固定數(shù)據(jù)庫角色成員 第1步:以系統(tǒng)管理員身份登錄到SQL Server服務(wù)器,在對象資源管理器中展開“數(shù)據(jù)庫PXSCJ安全性用戶”,選擇一個數(shù)據(jù)庫用戶,例如“david”,雙擊或單擊右鍵選擇“屬性”菜單項,打開“數(shù)據(jù)庫用戶”窗口。 第2步:在打開的窗口中,在“常規(guī)”選項卡中的“數(shù)據(jù)庫角色成員身份”欄,用戶可以根據(jù)需要,在數(shù)據(jù)庫角色前的復選框中打勾,來為數(shù)據(jù)庫用戶添加相應(yīng)的數(shù)據(jù)庫角色,如圖9.9所示,單擊“確定”按鈕完成添加。,9.3.2 固定數(shù)據(jù)庫角色,圖9.9 添加固定數(shù)據(jù)庫角色成員,9.3.

28、2 固定數(shù)據(jù)庫角色,第3步:查看固定數(shù)據(jù)庫角色的成員。在對象資源管理器窗口中,在PXSCJ數(shù)據(jù)庫下的“安全性角色數(shù)據(jù)庫角色”目錄下,選擇數(shù)據(jù)庫角色,如db_owner,右擊選擇“屬性”菜單項,在屬性窗口中的“角色成員”欄下可以看到該數(shù)據(jù)庫角色的成員列表,如圖9.10所示。,圖9.10 數(shù)據(jù)庫角色成員列表,9.3.2 固定數(shù)據(jù)庫角色,2使用系統(tǒng)存儲過程添加固定數(shù)據(jù)庫角色成員 利用系統(tǒng)存儲過程sp_addrolemember可以將一個數(shù)據(jù)庫用戶添加到某一固定數(shù)據(jù)庫角色中,使其成為該固定數(shù)據(jù)庫角色的成員。語法格式: sp_addrolemember rolename = role, memberna

29、me = security_account 參數(shù)含義:role為當前數(shù)據(jù)庫中的數(shù)據(jù)庫角色的名稱。security_account為添加到該角色的安全賬戶,可以是數(shù)據(jù)庫用戶或當前數(shù)據(jù)庫角色。 【例9.9】 將PXSCJ數(shù)據(jù)庫上的數(shù)據(jù)庫用戶david(假設(shè)已經(jīng)創(chuàng)建)添加為固定數(shù)據(jù)庫角色db_owner的成員。 USE PXSCJ GO EXEC sp_addrolemember db_owner, david,9.3.2 固定數(shù)據(jù)庫角色,3使用系統(tǒng)存儲過程刪除固定數(shù)據(jù)庫角色成員 利用系統(tǒng)存儲過程sp_droprolemember可以將某一成員從固定數(shù)據(jù)庫角色中去除。 語法格式: sp_dropro

30、lemember rolename = role , membername = security_account 【例9.10】 將數(shù)據(jù)庫用戶david從db_owner中去除。 USE PXSCJ GO EXEC sp_droprolemember db_owner, david,9.3.3 自定義數(shù)據(jù)庫角色,1通過對象資源管理器創(chuàng)建數(shù)據(jù)庫角色 第1步:創(chuàng)建數(shù)據(jù)庫角色。以Windows系統(tǒng)管理員身份連接SQL Server,在對象資源管理器中展開“數(shù)據(jù)庫”,選擇要創(chuàng)建角色的數(shù)據(jù)庫(如PXSCJ)“安全性”“角色”,右擊鼠標,在彈出的快捷菜單中選擇“新建”菜單項,在彈出的子菜單中選擇“新建數(shù)據(jù)

31、庫角色”菜單項,如圖9.11所示。進入“數(shù)據(jù)庫角色-新建”窗口。,圖9.11 新建數(shù)據(jù)庫角色,9.3.3 自定義數(shù)據(jù)庫角色,第2步:將數(shù)據(jù)庫用戶加入數(shù)據(jù)庫角色。 當數(shù)據(jù)庫用戶成為某一數(shù)據(jù)庫角色的成員之后,該數(shù)據(jù)庫用戶就獲得該數(shù)據(jù)庫角色所擁有的對數(shù)據(jù)庫操作的權(quán)限。 如圖9.12所示是將PXSCJ數(shù)據(jù)庫的用戶david加入ROLE1角色。,圖9.12 添加到數(shù)據(jù)庫角色,9.3.3 自定義數(shù)據(jù)庫角色,2通過SQL命令創(chuàng)建數(shù)據(jù)庫角色 (1)定義數(shù)據(jù)庫角色。創(chuàng)建用戶自定義數(shù)據(jù)庫角色可以使用CREATE ROLE語句。 語法格式: CREATE ROLE role_name AUTHORIZATION o

32、wner_name 【例9.11】 如下示例在當前數(shù)據(jù)庫中創(chuàng)建名為ROLE2的新角色,并指定dbo為該角色的所有者。 USE PXSCJ GO CREATE ROLE ROLE2 AUTHORIZATION dbo (2)給數(shù)據(jù)庫角色添加成員。向用戶定義數(shù)據(jù)庫角色添加成員也使用存儲過程sp_ addrolemember,用法與之前介紹的基本相同。,9.3.3 自定義數(shù)據(jù)庫角色,【例9.12】 使用Windows身份驗證模式的登錄名(如0BD7E57C949A420liu)創(chuàng)建PXSCJ數(shù)據(jù)庫的用戶(如0BD7E57C949A420liu),并將該數(shù)據(jù)庫用戶添加到ROLE1數(shù)據(jù)庫角色中。 USE

33、 PXSCJ GO CREATE USER 0BD7E57C949A420liu FROM LOGIN 0BD7E57C949A420liu GO EXEC sp_addrolemember ROLE1, 0BD7E57C949A420liu 【例9.13】 將SQL Server登錄名創(chuàng)建的PXSCJ的數(shù)據(jù)庫用戶wang(假設(shè)已經(jīng)創(chuàng)建)添加到數(shù)據(jù)庫角色ROLE1中。 USE PXSCJ GO EXEC sp_addrolemember ROLE1,wang 【例9.14】 將數(shù)據(jù)庫角色ROLE2(假設(shè)已經(jīng)創(chuàng)建)添加到ROLE1中。 EXEC sp_addrolemember ROLE1,RO

34、LE2,9.3.3 自定義數(shù)據(jù)庫角色,3通過SQL命令刪除數(shù)據(jù)庫角色 要刪除數(shù)據(jù)庫角色可以使用DROP ROLE語句。語法格式: DROP ROLE role_name 其中,role_name為要刪除的數(shù)據(jù)庫角色的名稱。 【例9.15】 刪除數(shù)據(jù)庫角色ROLE2。 在刪除ROLE2之前首先需要將ROLE2中的成員刪除,可以使用界面方式,也可以使用命令方式。若使用界面方式,只需在ROLE2的屬性頁中操作即可。命令方式在刪除固定數(shù)據(jù)庫成員時已經(jīng)介紹,請參見前面內(nèi)容。確認ROLE2可以刪除后,使用以下命令刪除ROLE2: DROP ROLE ROLE2,9.3.4 應(yīng)用程序角色,在SQL Serv

35、er 2008中創(chuàng)建應(yīng)用程序角色并測試的具體步驟如下。 第1步:以系統(tǒng)管理員身份連接SQL Server,在“對象資源管理器”窗口中展開“數(shù)據(jù)庫PXSCJ安全性角色”,右擊“應(yīng)用程序角色”,選擇“新建應(yīng)用程序角色”。 第2步:在“應(yīng)用程序角色-新建”窗口中輸入應(yīng)用程序角色名稱addrole,默認架構(gòu)dbo,設(shè)置密碼為123456,如圖9.13所示。,圖9.13 新建應(yīng)用程序角色,9.3.4 應(yīng)用程序角色,在“安全對象”選項卡頁面中,可以單擊“搜索”按鈕,添加“特定對象”,選擇對象為表XSB,如圖9.14所示。,圖9.14 選擇對象表XSB,9.3.4 應(yīng)用程序角色,單擊“確定”按鈕回到“安全對

36、象”選項卡中,授予表XSB的“選擇”權(quán)限(如圖9.15),完成后單擊“確認”按鈕。,圖9.15 授予應(yīng)用程序角色表XSB上的查看權(quán)限,9.3.4 應(yīng)用程序角色,第3步:新建SQL Server登錄名jack,并新建PXSCJ數(shù)據(jù)庫的數(shù)據(jù)庫用戶jack(將其添加為db_denydatareader數(shù)據(jù)庫角色的成員),使用“jack”登錄名連接SQL Server。在查詢窗口中輸入如下語句: USE PXSCJ GO SELECT * FROM XSB 運行結(jié)果如圖9.16所示。,圖9.16 使用jack用戶查詢XSB表,9.3.4 應(yīng)用程序角色,第4步:使用系統(tǒng)存儲過程sp_setapprole

37、激活應(yīng)用程序角色,語句如下: EXEC sp_setapprole addrole, 123456 第5步:在當前查詢窗口中重新輸入第3步中的查詢語句,執(zhí)行結(jié)果如圖9.17所示。,圖9.17 成功查詢,9.4 數(shù)據(jù)庫權(quán)限的管理,9.4.1 授予權(quán)限 權(quán)限的授予可以使用命令方式或界面方式完成。 (1)使用命令方式授予權(quán)限。利用GRANT語句可以給數(shù)據(jù)庫用戶或數(shù)據(jù)庫角色授予數(shù)據(jù)庫級別或?qū)ο蠹墑e的權(quán)限。 語法格式: GRANT ALL PRIVILEGES | permission ( column ,.n ) ,.n ON securable TO principal ,.n WITH GRANT

38、 OPTI 【例9.16】 給PXSCJ數(shù)據(jù)庫上的用戶david和wang授予創(chuàng)建表的權(quán)限。 以系統(tǒng)管理員身份登錄SQL Server,新建一個查詢,輸入以下語句: USE PXSCJ GO GRANT CREATE TABLE TO david, wang GO ON AS principal ,9.4.1 授予權(quán)限,【例9.17】 首先在數(shù)據(jù)庫PXSCJ中給public角色授予表XSB的SELECT權(quán)限。然后,將其他一些權(quán)限授予用戶david和wang,使用戶有對XSB表的所有操作權(quán)限。 以系統(tǒng)管理員身份登錄SQL Server,新建一個查詢,輸入以下語句: USE PXSCJ GO GR

39、ANT SELECT ON XSB TO public GO GRANT INSERT, UPDATE, DELETE, REFERENCES ON XSB TO david, wang GO 【例9.18】 將CREATE TABLE權(quán)限授予數(shù)據(jù)庫角色ROLE1的所有成員。 以系統(tǒng)管理員身份登錄SQL Server,新建一個查詢,輸入以下語句: GRANT CREATE TABLE TO ROLE1,9.4.1 授予權(quán)限,【例9.19】 以系統(tǒng)管理員身份登錄SQL Server,將表XSB的SELECT權(quán)限授予ROLE2角色(指定WITH GRANT OPTION子句)。用戶li是ROLE2

40、的成員(創(chuàng)建過程略),在li用戶上將表XSB上的SELECT權(quán)限授予用戶huang(創(chuàng)建過程略),huang不是ROLE2的成員。 首先以Windows系統(tǒng)管理員身份連接SQL Server,授予角色ROLE2在XSB表上的SELECT權(quán)限: USE PXSCJ GO GRANT SELECT ON XSB TO ROLE2 WITH GRANT OPTION,9.4.1 授予權(quán)限,在“SQL Server Management Studio”窗口上單擊“新建查詢”按鈕旁邊的數(shù)據(jù)庫引擎查詢按鈕“ ”,在彈出的連接窗口中以li用戶的登錄名登錄,如圖9.18所示。單擊“連接”按鈕連接到SQL Se

41、rver服務(wù)器,出現(xiàn)“查詢分析器”窗口。,圖9.18 以li用戶身份登錄,9.4.1 授予權(quán)限,在“查詢分析器”窗口中使用如下語句將用戶li在XSB表上的SELECT權(quán)限授予huang: USE PXSCJ GO GRANT SELECT ON XSB TO huang AS ROLE2 【例9.20】 在當前數(shù)據(jù)庫PXSCJ中給public角色賦予對表XSB中學號、姓名字段的SELECT權(quán)限。 以系統(tǒng)管理員身份登錄SQL Server,新建一個查詢,輸入以下語句: USE PXSCJ GO GRANT SELECT (學號,姓名) ON XSB TO public GO,9.4.1 授予權(quán)限

42、,(2)使用界面方式授予語句權(quán)限。 授予數(shù)據(jù)庫上的權(quán)限。以給數(shù)據(jù)庫用戶wang(假設(shè)該用戶已經(jīng)使用SQL Server登錄名“wang”創(chuàng)建)授予PXSCJ數(shù)據(jù)庫的CREATE TABLE語句的權(quán)限(即創(chuàng)建表的權(quán)限)為例,在SQL Server Management Studio中授予用戶權(quán)限的步驟如下: 以系統(tǒng)管理員身份登錄到SQL Server服務(wù)器,在對象資源管理器中展開“數(shù)據(jù)庫PXSCJ”,右擊鼠標,選擇“屬性”菜單項進入PXSCJ數(shù)據(jù)庫的屬性窗口,選擇“權(quán)限”頁。,9.4.1 授予權(quán)限,在用戶或角色欄中選擇需要授予權(quán)限的用戶或角色(如wang),在窗口下方列出的權(quán)限列表中找到相應(yīng)的權(quán)

43、限(如“創(chuàng)建表”),在復選框中打勾,如圖9.19所示。,圖9.19 授予用戶數(shù)據(jù)庫上的權(quán)限,9.4.1 授予權(quán)限,如圖9.19所示。單擊“確定”按鈕即可完成。如果需要授予權(quán)限的用戶在列出的用戶列表中不存在,則可以單擊“搜索”按鈕將該用戶添加到列表中再選擇。選擇用戶后在如圖9.19所示窗口中單擊“有效”選項卡可以查看該用戶在當前數(shù)據(jù)庫中有哪些權(quán)限。 授予數(shù)據(jù)庫對象上的權(quán)限。以給數(shù)據(jù)庫用戶wang授予KCB表上的SELECT、INSERT的權(quán)限為例,步驟如下: 以系統(tǒng)管理員身份登錄到SQL Server服務(wù)器,在對象資源管理器中展開“數(shù)據(jù)庫PXSCJ表KCB”,右擊鼠標,選擇“屬性”菜單項進入KC

44、B表的屬性窗口,選擇“權(quán)限”選項卡。,9.4.1 授予權(quán)限,單擊“搜索”按鈕,在彈出的“選擇用戶或角色”窗口中單擊“瀏覽”按鈕,選擇需要授權(quán)的用戶或角色(如wang),選擇后單擊“確定”按鈕回到KCB表的屬性窗口。在該窗口中選擇用戶(如huang),在權(quán)限列表中選擇需要授予的權(quán)限,如“插入(INSERT)”、“選擇(SELECT)”,如圖9.20所示,單擊“確定”按鈕完成授權(quán)。,圖9.20 授予用戶數(shù)據(jù)庫對象上的權(quán)限,9.4.2 拒絕權(quán)限,使用DENY命令可以拒絕給當前數(shù)據(jù)庫內(nèi)的用戶授予的權(quán)限,并防止數(shù)據(jù)庫用戶通過其組或角色成員資格繼承權(quán)限。 語法格式: DENY ALL PRIVILEGES

45、 | permission ( column ,.n ) ,.n ON securable TO principal ,.n CASCADE AS principal 【例9.21】 對多個用戶不允許使用CREATE VIEW和CREATE TABLE語句。 DENY CREATE VIEW, CREATE TABLE TO li, huang GO,9.4.2 拒絕權(quán)限,【例9.22】 拒絕用戶li、huang、0BD7E57C949A420liu對表XSB的一些權(quán)限,這樣,這些用戶就沒有對XSB表的操作權(quán)限了。 USE PXSCJ GO DENY SELECT, INSERT, UPDAT

46、E, DELETE ON XSB TO li, huang, 0BD7E57C949A420liu GO 【例9.23】 對所有ROLE2角色成員拒絕CREATE TABLE權(quán)限。 DENY CREATE TABLE TO ROLE2 GO,9.4.3 撤銷權(quán)限,利用REVOKE命令可撤銷以前給當前數(shù)據(jù)庫用戶授予或拒絕的權(quán)限。 語法格式: REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission ( column ,.n ) ,.n ON securable TO | FROM principal ,.n CASCADE AS principal

47、【例9.24】 取消已授予用戶wang的CREATE TABLE 權(quán)限。 REVOKE CREATE TABLE FROM wang 【例9.25】 取消授予多個用戶的多個語句權(quán)限。 REVOKE CREATE TABLE, CREATE DEFAULT FROM wang, li GO,9.4.3 撤銷權(quán)限,【例9.26】 取消以前對wang授予或拒絕的在XSB表上的SELECT權(quán)限。 REVOKE SELECT ON XSB FROM wang 【例9.27】 角色ROLE2在XSB表上擁有SELECT權(quán)限,用戶li是ROLE2的成員,li使用WITH GRANT OPTION子句將SEL

48、ECT權(quán)限轉(zhuǎn)移給了用戶huang,用戶huang不是ROLE2的成員?,F(xiàn)要以用戶li的身份撤銷用戶huang的SELECT權(quán)限。 以用戶“l(fā)i”的身份登錄SQL Server服務(wù)器,新建一個查詢,使用如下語句撤銷huang的SELECT權(quán)限: USE PXSCJ GO REVOKE SELECT ON XSB TO huang AS ROLE2,9.5 數(shù)據(jù)庫架構(gòu)的定義和使用,9.5.1 使用界面方式創(chuàng)建架構(gòu) 以在PXSCJ數(shù)據(jù)庫中創(chuàng)建架構(gòu)為例,具體步驟如下。 第1步:以系統(tǒng)管理員身份登錄SQL Server,在對象資源管理器中展開“數(shù)據(jù)庫PXSCJ安全性”,選擇“架構(gòu)”,右擊鼠標,在彈出的快捷菜單中選擇“新建架構(gòu)”菜單項。 第2步:在打開的“架構(gòu)-新建”窗口中選擇“常規(guī)”選項卡,在窗口右邊“架構(gòu)名稱”下面的文本框中輸入架構(gòu)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論