《數(shù)據(jù)庫原理及應(yīng)用》課件第12章_第1頁
《數(shù)據(jù)庫原理及應(yīng)用》課件第12章_第2頁
《數(shù)據(jù)庫原理及應(yīng)用》課件第12章_第3頁
《數(shù)據(jù)庫原理及應(yīng)用》課件第12章_第4頁
《數(shù)據(jù)庫原理及應(yīng)用》課件第12章_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第12章安全管理12.1SQLServer2005的安全機(jī)制12.2SQLServer2005的身份驗(yàn)證模式12.3登錄賬戶管理12.4數(shù)據(jù)庫用戶管理12.5權(quán)限管理12.6角色管理

【技能目標(biāo)】

掌握SQLServer2005的安全機(jī)制,學(xué)會(huì)利用登錄名、用戶名、角色實(shí)施服務(wù)器、數(shù)據(jù)庫和數(shù)據(jù)對(duì)象的安全管理。

【知識(shí)目標(biāo)】

掌握SQLServer2005的安全機(jī)制;掌握SQLServer2005的身份驗(yàn)證模式;掌握登錄名、用戶名、角色之間的聯(lián)系和區(qū)別;掌握登錄賬戶管理的方法;掌握數(shù)據(jù)庫用戶管理的方法;掌握權(quán)限管理的方法;掌握角色管理的方法。

SQLServer2005的安全機(jī)制有如下三個(gè)層次:

(1)數(shù)據(jù)庫服務(wù)器身份驗(yàn)證。通過登錄賬戶登錄進(jìn)行數(shù)據(jù)庫服務(wù)器身份驗(yàn)證。只有合法登錄賬戶才能登錄到數(shù)據(jù)庫服務(wù)器。每個(gè)合法用戶具有一個(gè)服務(wù)器的登錄賬戶,用戶連接到服務(wù)器時(shí)必須提供其登錄賬戶。12.1SQLServer2005的安全機(jī)制

(2)數(shù)據(jù)庫身份驗(yàn)證。只有合法數(shù)據(jù)庫用戶才能訪問數(shù)據(jù)庫。每個(gè)數(shù)據(jù)庫用戶都映射到一個(gè)登錄賬戶。

(3)數(shù)據(jù)庫用戶在數(shù)據(jù)庫中操作權(quán)限的驗(yàn)證。數(shù)據(jù)庫用戶對(duì)具體數(shù)據(jù)庫對(duì)象的操作必須經(jīng)過授權(quán)許可,數(shù)據(jù)庫用戶訪問數(shù)據(jù)庫時(shí)嚴(yán)格控制在權(quán)限內(nèi)操作。當(dāng)用戶對(duì)數(shù)據(jù)庫進(jìn)行操作時(shí),要驗(yàn)證操作是否合法,即是否經(jīng)過授權(quán)許可。對(duì)具有相同權(quán)限的用戶可以通過角色來管理。

SQLServer2005提供了兩種身份驗(yàn)證模式:Windows身份驗(yàn)證模式和混合身份驗(yàn)證模式。

1.

Windows身份驗(yàn)證模式

在Windows身份驗(yàn)證中,SQLServer2005依賴于Windows操作系統(tǒng)提供的登錄安全機(jī)制,SQLServer2005檢驗(yàn)登錄用戶是否被Windows驗(yàn)證身份,12.2SQLServer2005的身份驗(yàn)證模式并根據(jù)這一驗(yàn)證來決定是否允許該登錄用戶訪問SQLServer2005服務(wù)器,也就是說,登錄賬戶一旦通過操作系統(tǒng)的驗(yàn)證便可以連接到SQLServer2005服務(wù)器。這種模式是SQLServer2005默認(rèn)的驗(yàn)證方法,它比混合模式安全。

2.混合身份驗(yàn)證模式

混合身份驗(yàn)證模式是指用戶登錄SQLServer系統(tǒng)時(shí)采用Windows身份驗(yàn)證和SQLServer身份驗(yàn)證兩種驗(yàn)證模式,有時(shí)簡稱為SQLServer身份驗(yàn)證模式。在這種模式下,使用Windows用戶賬戶連接的用戶可以使用信任連接。當(dāng)用戶使用指定的登錄名和密碼進(jìn)行非信任連接時(shí),SQLServer檢測(cè)輸入的登錄名和密碼是否與預(yù)先存儲(chǔ)在系統(tǒng)數(shù)據(jù)庫中的登錄名和密碼相匹配。如果不存在該登錄賬戶,則身份驗(yàn)證失?。蝗绻恢?,則身份驗(yàn)證通過。

圖12-1查看服務(wù)器的身份驗(yàn)證模式

【例12-1】查看學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫SCMS所在服務(wù)器的登錄模式。

具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“已注冊(cè)的服務(wù)器”窗口中展開“數(shù)據(jù)庫引擎”節(jié)點(diǎn)。

(3)右擊SCMS所在服務(wù)器20100830-1332,在彈出的快捷菜單中選擇“屬性”選項(xiàng),打開“編輯服務(wù)器注冊(cè)屬性”對(duì)話框,可以查看和改變身份驗(yàn)證模式,如圖12-1所示。

【例12-2】設(shè)置SCMS數(shù)據(jù)庫所在服務(wù)器的登錄模式為“SQLserver和Windows身份驗(yàn)證模式”。

具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中右擊SCMS數(shù)據(jù)庫所在服務(wù)器20100830-1332,在彈出的快捷菜單中選擇“屬性”選項(xiàng),打開“服務(wù)器屬性-20100830-1332”對(duì)話框,再打開“安全性”選擇頁,如圖12-2所示。圖12-2“服務(wù)器屬性-20100830-1332”對(duì)話框的“安全性”選擇頁

(3)在對(duì)話框右側(cè)的“服務(wù)器身份驗(yàn)證”區(qū)域選中“SQLServer和Windows身份驗(yàn)證模式”單選項(xiàng),單擊“確定”按鈕,完成設(shè)置。

說明身份驗(yàn)證模式設(shè)置操作完成后,系統(tǒng)重新啟動(dòng),才會(huì)使所設(shè)置的安全模式生效。

使用SQLServer數(shù)據(jù)庫時(shí)必須先登錄。也就是根據(jù)選定的身份驗(yàn)證模式提供登錄賬戶,由SQLServer進(jìn)行身份驗(yàn)證,驗(yàn)證通過才可進(jìn)入SQLServer數(shù)據(jù)庫。

12.3登錄賬戶管理12.3.1系統(tǒng)管理員登錄賬戶

系統(tǒng)管理員具有SQLServer系統(tǒng)和所有數(shù)據(jù)庫的全部權(quán)限。SQLServer有兩個(gè)默認(rèn)的系統(tǒng)管理員登錄賬戶,登錄名分別是sa和BUILTIN\Administrators。sa是混合身份驗(yàn)證模式下的登錄賬戶,BUILTIN\Administrators是Windows身份驗(yàn)證模式下的登錄賬戶。

12.3.2使用SQLServerManagementStudio管理登錄賬戶

在實(shí)際使用中需要根據(jù)應(yīng)用需要管理登錄賬戶。SQLServer2005中登錄名的信息存放在master數(shù)據(jù)庫的syslogins表中。

1.創(chuàng)建登錄名

【例12-3】在SCMS數(shù)據(jù)庫所在服務(wù)器上創(chuàng)建Windows身份驗(yàn)證的登錄名。

具體操作分兩步:第一步,在操作系統(tǒng)中創(chuàng)建Windows用戶;第二步,將新創(chuàng)建的用戶添加到SQLServer登錄名中。步驟一:創(chuàng)建Windows用戶。

(1)在桌面上右擊“我的電腦”圖標(biāo),在彈出的快捷菜單中選擇“管理”選項(xiàng),打開“計(jì)算機(jī)管理”窗口,在左側(cè)列表中展開“本地用戶和組|用戶”節(jié)點(diǎn),顯示當(dāng)前可用的用戶信息,如圖12-3所示。圖12-3“計(jì)算機(jī)管理”窗口

(2)在右側(cè)窗格中右擊,在彈出的快捷菜單中選擇“新用戶”選項(xiàng),打開“新用戶”對(duì)話框,在“用戶名”文本框中輸入用戶名Win_User1,然后設(shè)置密碼,如圖12-4所示,單擊“創(chuàng)建”按鈕,則成功創(chuàng)建了一個(gè)Windows用戶Win_User1。

步驟二:映射成SQLServer登錄名。

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“安全性|登錄名”節(jié)點(diǎn)。右擊“登錄名”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建登錄名”選項(xiàng),如圖12-5所示。

(3)打開“登錄名-新建”對(duì)話框,再打開“常規(guī)”選擇頁,選中“Windows身份驗(yàn)證”,如圖12-6所示。圖12-4創(chuàng)建Windows新用戶

圖12-5“新建登錄名”選項(xiàng)圖12-6新建Windows身份驗(yàn)證登錄名

(4)單擊“登錄名”文本框右側(cè)的“搜索”按鈕,打開“選擇用戶或組”對(duì)話框,單擊“高級(jí)”按鈕,展開“一般性查詢”選項(xiàng)卡,單擊“立即查找”按鈕,如圖12-7所示,顯示當(dāng)前用戶,選擇Win_User1用戶,單擊“確定”按鈕。

(5)單擊“確定”按鈕,返回“登錄名-新建”對(duì)話框,在“登錄名”文本框中顯示登錄名為20100830-1332\Win_User1,其中20100830-1332為計(jì)算機(jī)名。

(6)單擊“確定”按鈕,完成登錄名的創(chuàng)建。圖12-7“選擇用戶或組”對(duì)話框

【例12-4】在SCMS數(shù)據(jù)庫所在服務(wù)器上創(chuàng)建SQLServer身份驗(yàn)證的登錄名。

具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“安全性|登錄名”節(jié)點(diǎn)。

(3)右擊“登錄名”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建登錄名”,打開“登錄名-新建”對(duì)話框,再打開“常規(guī)”選擇頁,如圖12-8所示。圖12-8新建登錄名

(4)在“登錄名”文本框中輸入SQL_User1。

(5)選擇身份驗(yàn)證方式,在此選中“SQLServer身份驗(yàn)證”單選項(xiàng),在“密碼”文本框中輸入123456,在“確認(rèn)密碼”文本框中再次輸入123456。

(6)取消選中的“強(qiáng)制實(shí)施密碼策略”復(fù)選框,設(shè)置結(jié)果如圖12-9所示。圖12-9取消選中的“強(qiáng)制實(shí)施密碼策略”復(fù)選框

(7)打開“狀態(tài)”選擇頁,在“設(shè)置”區(qū)域,設(shè)置“是否允許連接到數(shù)據(jù)庫引擎”選項(xiàng)為“授予”,設(shè)置“登錄”選項(xiàng)為“啟用”,如圖12-10所示。

(8)單擊“確定”按鈕,完成SQL_User1登錄名創(chuàng)建。圖12-10設(shè)置登錄名“狀態(tài)”選項(xiàng)

2.刪除登錄名

【例12-5】刪除Windows身份驗(yàn)證的登錄賬戶20100830-1332\Win_User1。

具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“安全性|登錄名”節(jié)點(diǎn)。

(3)右擊20100830-1332\Win_User1登錄名,在彈出的快捷菜單中選擇“刪除”選項(xiàng),打開“刪除對(duì)象”對(duì)話框,單擊“確定”按鈕,該登錄名即被刪除。

12.3.3使用Transact-SQL語句管理登錄賬戶

1.創(chuàng)建登錄名

在SQLServer2005中使用CREATELOGIN語句創(chuàng)建登錄名。其語法格式如下:

CREATELOGINlogin_name{WITHPASSWORD='password'|FROMWINDOWS}

[,DEFAULT_DATABASE=database][,CHECK_EXPIRATION={ON|OFF}]

[,CHECK_POLICY={ON|OFF}]

[MUST_CHANGE]參數(shù)說明如下:

login_name:指定創(chuàng)建的登錄名。如果從Windows域賬戶映射到login_name,則login_name必須用方括號(hào)([])括起來。

password:指定正在創(chuàng)建的登錄名的密碼,僅適用于SQLServer登錄名。

WINDOWS:指定將登錄名映射到Windows登錄名。

DEFAULT_DATABASE=database:指定將指派給登錄名的默認(rèn)數(shù)據(jù)庫。如果未包含此選項(xiàng),則默認(rèn)數(shù)據(jù)庫設(shè)置為master?!?/p>

CHECK_EXPIRATION={ON|OFF}:僅適用于SQLServer登錄名。指定是否對(duì)此登錄賬戶強(qiáng)制實(shí)施密碼過期策略。默認(rèn)值為OFF。

CHECK_POLICY={ON|OFF}:僅適用于SQLServer登錄名。指定應(yīng)對(duì)此登錄名強(qiáng)制實(shí)施運(yùn)行SQLServer的計(jì)算機(jī)的Windows密碼策略。默認(rèn)值為ON。

MUST_CHANGE:僅適用于SQLServer登錄名。如果包含此項(xiàng),則SQLServer將在首次使用新登錄名時(shí)指示用戶輸入新密碼。

【例12-6】使用Transact-SQL語句在SCMS數(shù)據(jù)庫所在服務(wù)器中創(chuàng)建Windows身份認(rèn)證的登錄名20100830-1332\Win_User1。

CREATELOGIN[20100830-1332\Win_User1]FROMWINDOWS

【例12-7】使用Transact-SQL語句在SCMS數(shù)據(jù)庫所在服務(wù)器中創(chuàng)建SQLServer登錄名SQL_User2,其密碼為123123,默認(rèn)數(shù)據(jù)庫為SCMS。

CREATELOGINSQL_User2WITHPASSWORD='123123',DEFAULT_DATABASE=scms

2.刪除登錄名

在SQLServer2005中使用DROPLOGIN語句刪除登錄名。其語法格式如下:

DROPLOGINlogin_name

【例12-8】使用Transact-SQL語句刪除登錄名SQL_User2。

DROPLOGINSQL_User2

數(shù)據(jù)庫用戶是數(shù)據(jù)庫的安全性對(duì)象,簡稱用戶。數(shù)據(jù)庫用戶與登錄賬戶不同。登錄賬戶是SQLServer服務(wù)器的安全性對(duì)象,是訪問SQLServer服務(wù)器的通行證,但僅有登錄賬戶不能訪問數(shù)據(jù)庫,要訪問數(shù)據(jù)庫,必須要有數(shù)據(jù)庫用戶。

數(shù)據(jù)庫用戶創(chuàng)建在數(shù)據(jù)庫中,每個(gè)數(shù)據(jù)庫用戶都映射到已有的登錄賬戶,其信息存放在數(shù)據(jù)庫的sysusers表中。12.4數(shù)據(jù)庫用戶管理

12.4.1使用SQLServerManagementStudio管理數(shù)據(jù)庫用戶

1.創(chuàng)建數(shù)據(jù)庫用戶

登錄賬戶被創(chuàng)建之后,建立用戶就是定義一個(gè)用戶,映射到已建的登錄名。圖12-11“新建用戶”選項(xiàng)

【例12-9】創(chuàng)建一個(gè)SCMS數(shù)據(jù)庫用戶DB_User1,映射到例12-4創(chuàng)建的SQL_User1登錄名。

具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio,以sa登錄賬戶連接到數(shù)據(jù)庫實(shí)例。

(2)在“對(duì)象資源管理器”窗口中展開“數(shù)據(jù)庫|SCMS|安全性|用戶”節(jié)點(diǎn)。右擊“用戶”,在彈出的快捷菜單中選擇“新建用戶”選項(xiàng),如圖12-11所示。

(3)打開“數(shù)據(jù)庫用戶-新建”對(duì)話框,如圖12-12所示,在“用戶名”文本框中輸入DB_User1,再單擊“登錄名”文本框右側(cè)的按鈕。

(4)打開如圖12-13所示的“選擇登錄名”對(duì)話框。

(5)單擊“瀏覽”按鈕,打開“查找對(duì)象”對(duì)話框,瀏覽已有的登錄名,選中SQL_User1登錄名,如圖12-14所示。圖12-12“數(shù)據(jù)庫用戶-新建”對(duì)話框圖12-13“選擇登錄名”對(duì)話框圖12-14“查找對(duì)象”對(duì)話框

(6)單擊“確定”按鈕,返回到圖12-13所示的“選擇登錄名”對(duì)話框,這時(shí)登錄名SQL_User1就列于“輸入要選擇的對(duì)象名稱”列表框中。

(7)單擊“確定”按鈕,返回到圖12-12所示的“數(shù)據(jù)庫用戶-新建”對(duì)話框,在“登錄名”文本框中顯示SQL_User1。

(8)單擊“確定”按鈕,完成登錄名SQL_User1到SCMS數(shù)據(jù)庫用戶DB_User1的映射設(shè)置,DB_User1用戶創(chuàng)建完成。

2.刪除數(shù)據(jù)庫用戶

【例12-10】刪除SCMS數(shù)據(jù)庫用戶DB_User1。

具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“數(shù)據(jù)庫|SCMS|安全性|用戶”節(jié)點(diǎn)。

(3)右擊DB_User1用戶,在彈出的快捷菜單中選擇“刪除”選項(xiàng),打開“刪除對(duì)象”對(duì)話框,單擊“確定”按鈕,DB_User1用戶即被刪除。

12.4.2使用Transact-SQL語句管理數(shù)據(jù)庫用戶

1.創(chuàng)建數(shù)據(jù)庫用戶

在SQLServer2005中使用CREATEUSER語句創(chuàng)建數(shù)據(jù)庫用戶。其語法格式如下:

CREATEUSERuser_name[{FOR|FROM}LOGINlogin_name]

參數(shù)說明如下:

user_name:指定在此數(shù)據(jù)庫中用于標(biāo)識(shí)該用戶的名稱。

login_name:指定要?jiǎng)?chuàng)建的數(shù)據(jù)庫用戶的登錄名。

如果忽略FORLOGIN,則新建的數(shù)據(jù)庫用戶將被映射到同名的登錄名。

【例12-11】創(chuàng)建SCMS數(shù)據(jù)庫用戶DB_User1,映射到例12-4所建立的SQL_User1登錄名。

USEscms

CREATEUSERDB_User1FORLOGINSQL_User1

GO

【例12-12】創(chuàng)建SCMS數(shù)據(jù)庫用戶,映射到例12-3所建立的20100830\Win_User1登錄名。

USEscms

CREATEUSER[20100830\Win_User1]

GO

2.刪除數(shù)據(jù)庫用戶

在SQLServer2005中使用DROPUSER語句刪除數(shù)據(jù)庫用戶。其語法格式如下:

DROPUSERuser_name

【例12-13】刪除SCMS數(shù)據(jù)庫用戶20100830\Win_User1。

USEscms

DROPUSER[20100830\Win_User1]

GO

權(quán)限是指用戶對(duì)數(shù)據(jù)庫對(duì)象的使用及操作的權(quán)利。用戶對(duì)數(shù)據(jù)庫對(duì)象執(zhí)行某種操作時(shí),必須獲得相應(yīng)的權(quán)限。不同的用戶擁有不同的權(quán)限。權(quán)限管理就是合理地確定用戶的權(quán)限,決定用戶可以操作哪些數(shù)據(jù)庫對(duì)象,可以對(duì)數(shù)據(jù)庫對(duì)象執(zhí)行哪些操作,可以執(zhí)行哪些操作語句等。12.5權(quán)限管理12.5.1數(shù)據(jù)庫用戶的分類

數(shù)據(jù)庫用戶一般分為以下三類:

(1)數(shù)據(jù)庫系統(tǒng)管理員(DBA)。數(shù)據(jù)庫系統(tǒng)管理員(如sa)擁有數(shù)據(jù)庫中的全部權(quán)限。一個(gè)數(shù)據(jù)庫系統(tǒng)中的DBA可以定義任何數(shù)據(jù)庫對(duì)象,也可以對(duì)任何數(shù)據(jù)庫對(duì)象進(jìn)行任何操作。

(2)數(shù)據(jù)庫對(duì)象的擁有者。創(chuàng)建數(shù)據(jù)庫對(duì)象的用戶即數(shù)據(jù)庫對(duì)象的擁有者,他對(duì)其擁有對(duì)象具有一切操作權(quán)限。

(3)普通數(shù)據(jù)庫用戶。普通數(shù)據(jù)庫用戶只擁有對(duì)允許操作的數(shù)據(jù)庫對(duì)象經(jīng)過授權(quán)許可的部分權(quán)限,也就是說普通數(shù)據(jù)庫用戶對(duì)哪些數(shù)據(jù)庫對(duì)象可以進(jìn)行哪些操作,需要進(jìn)行授權(quán)許可。

12.5.2權(quán)限類型

SQLServer中有三種類型的權(quán)限:隱含權(quán)限、對(duì)象權(quán)限和語句權(quán)限。

1.隱含權(quán)限

隱含權(quán)限是指系統(tǒng)預(yù)定義的而不需要授予就可以擁有的權(quán)限,包括固定服務(wù)器角色、數(shù)據(jù)庫角色和數(shù)據(jù)庫對(duì)象擁有者的權(quán)限。

2.對(duì)象權(quán)限

對(duì)象權(quán)限是指用戶對(duì)數(shù)據(jù)庫對(duì)象執(zhí)行操作的權(quán)限。每個(gè)數(shù)據(jù)庫對(duì)象都有可以授權(quán)許可的對(duì)象權(quán)限。這些數(shù)據(jù)庫對(duì)象包括表、視圖、存儲(chǔ)過程、用戶自定義函數(shù)等。這些數(shù)據(jù)庫對(duì)象所執(zhí)行的操作包括SELECT、INSERT、UPDATE、DELETE、REFERENCES、EXECUTE等。表12-1列出了幾種數(shù)據(jù)庫對(duì)象的主要對(duì)象權(quán)限。表12-1對(duì)象權(quán)限3.語句權(quán)限

語句權(quán)限是指允許用戶執(zhí)行操作數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)庫及其數(shù)據(jù)庫對(duì)象(如表、視圖、存儲(chǔ)過程、用戶自定義函數(shù)等)語句的權(quán)限。比如用戶要在數(shù)據(jù)庫中創(chuàng)建表,就應(yīng)該向用戶授予執(zhí)行CREATETABLE語句的權(quán)限。語句權(quán)限不同于對(duì)象權(quán)限,并不針對(duì)某個(gè)數(shù)據(jù)庫對(duì)象,而僅僅針對(duì)語句而言。表12-2列出了主要的語句權(quán)限。表12-2語句權(quán)限12.5.3權(quán)限管理

1.對(duì)象權(quán)限管理

在SQLServer2005中使用Transact-SQL語句授予、禁止和撤銷操作數(shù)據(jù)庫對(duì)象權(quán)限的語法格式如下。

(1)授予操作數(shù)據(jù)庫對(duì)象的權(quán)限:

GRANT

{ALL[PRIVILEGES][permission[,…n]]}

{

[(column[,…n])]ON{table|view}

|ON{table|view}[(column[,…n])]

|ON{stored_procedure|extended_procedure}

|ON{user_defined_function}

}

TOsecurity_account[,…n]

[WITHGRANTOPTION]

[AS{group|role}]

參數(shù)說明如下:

ALL:表示授予所有可用的權(quán)限。

PRIVILEGES:可選參數(shù),包含此參數(shù)以符合SQL-92標(biāo)準(zhǔn)?!?/p>

permission:指定可以授予的對(duì)象權(quán)限。對(duì)于表、視圖,permission的取值可以是SELECT、INSERT、DELETE、UPDATE、REFERENCES等;對(duì)于存儲(chǔ)過程,permission的取值是EXECUTE;對(duì)于用戶自定義函數(shù),permission可以為EXECUTE;對(duì)于列,permission則可為SELECT、UPDATE、REFERENCES。

column:指定表、視圖中要授予權(quán)限的列名。需要使用括號(hào)(

)。column可以在權(quán)限子句中指定,也可以在對(duì)象名之后指定。●

table|view:指定授予權(quán)限的表名或視圖名。

stored_procedure|extended_procedure:指定授予權(quán)限的系統(tǒng)存儲(chǔ)過程或擴(kuò)展存儲(chǔ)過程。

user_defined_function:指定授予權(quán)限的用戶自定義函數(shù)。

security_account:指定被授予權(quán)限的數(shù)據(jù)庫用戶名、用戶自定義角色名等。

WITHGRANTOPTION:表示被授權(quán)者在獲得指定權(quán)限的同時(shí)還可以將指定權(quán)限授予其他用戶或角色。

AS{group|role}:指定當(dāng)前數(shù)據(jù)庫中執(zhí)行GRANT語句的用戶所屬的角色或組。

(2)禁止操作數(shù)據(jù)庫對(duì)象的權(quán)限:

DENY

{ALL[PRIVILEGES]|permission[,…n]}

{

[(column[,…n])]ON{table|view}

|ON{table|view}[(column[,…n])]

|ON{stored_procedure|extended_procedure}

|ON{user_defined_function}

}

TOsecurity_account[,…n]

[CASCADE]

其中CASCADE指禁止security_account權(quán)限時(shí)連帶禁止由security_account授權(quán)的任何其他用戶的權(quán)限。其他參數(shù)含義同上。

(3)撤銷操作數(shù)據(jù)庫對(duì)象的權(quán)限:

REVOKE[GRANTOPTIONFOR]

{ALL[PRIVILEGES]|permission[,…n]}

{[(column[,…n])]ON{table|view}

|ON{table|view}[(column[,…n])]

|ON{stored_procedure|extended_procedure}

|ON{user_defined_function}

}

{TO|FROM}security_account[,…n]

[CASCADE]

[AS{group|role}]

其中CASCADE指撤銷security_account權(quán)限時(shí)連帶撤銷由security_account授權(quán)的任何其他用戶的權(quán)限。其他參數(shù)含義同上。

【例12-14】授予SCMS數(shù)據(jù)庫用戶DB_User1對(duì)表student的INSERT、UPDATE和DELETE權(quán)限。

GRANTINSERT,UPDATE,DELETEONstudentTODB_User1

【例12-15】創(chuàng)建SCMS數(shù)據(jù)庫用戶User1,映射到20100830-1332\Win_User1,授予User1查詢表student的列sname和borndate的權(quán)限。

USEscms

CREATEUSERUser1FORLOGIN[20100830-1332\Win_User1]

GO

GRANTSELECT(sname,borndate)ONstudentTOUser1

【例12-16】將例12-15中授予的權(quán)限撤銷。

USEscms

REVOKESELECT(sname,borndate)ONstudentFROMUser1

【例12-17】

禁止SCMS數(shù)據(jù)庫用戶DB_User1對(duì)student表的sno列的UPDATE權(quán)限。

USEscms

DENYUPDATE(sno)ONstudentTODB_User1

【例12-18】使用SQLServerManagementStudio完成例12-14中執(zhí)行的授權(quán)操作。具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“數(shù)據(jù)庫|SCMS|安全性|用戶”節(jié)點(diǎn)。右擊“DB_User1”用戶,在彈出的快捷菜單中選擇“屬性”選項(xiàng),如圖12-15所示。

(3)打開“數(shù)據(jù)庫用戶-DB_User1”對(duì)話框,再打開“安全對(duì)象”選擇頁,如圖12-16所示。圖12-15選擇“屬性”選項(xiàng)圖12-16“安全對(duì)象”選擇頁

(4)單擊“添加”按鈕,打開“添加對(duì)象”對(duì)話框。單擊“確定”按鈕,打開“選擇對(duì)象”對(duì)話框。單擊“對(duì)象類型”按鈕,打開“選擇對(duì)象類型”對(duì)話框,選中“表”復(fù)選框,單擊“確定”按鈕,返回“選擇對(duì)象”對(duì)話框。單擊“瀏覽”按鈕,打開“查找對(duì)象”對(duì)話框,在“匹配的對(duì)象”列表框中列出了所有的數(shù)據(jù)表,選中student數(shù)據(jù)表,單擊“確定”按鈕,返回到“選擇對(duì)象”對(duì)話框。單擊“確定”按鈕,返回到圖12-16所示的“安全對(duì)象”選擇頁,在“安全對(duì)象”列表中顯示出選擇的student表對(duì)象。在“dbo.student的顯式權(quán)限”列表框“授予”列上選中Delete、Insert和Update,如圖12-17所示。

(5)單擊“確定”按鈕,完成設(shè)置。圖12-17設(shè)置DB_User1的安全對(duì)象權(quán)限

2.語句權(quán)限管理

SQLServer2005中使用Transact-SQL語句授予、禁止和撤銷執(zhí)行語句權(quán)限的語法格式如下。

(1)授予執(zhí)行語句的權(quán)限:

GRANT{ALL|statement[,…n]}TOsecurity_account[,…n]

參數(shù)說明如下:

ALL:表示授予所有可用的權(quán)限。

statement:指被授予權(quán)限的語句??梢赃xCREATEDATABASE、CREATETABLE、CREATEVIEW、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATEDEFAULT、BACKUPDATABASE、BACKUPLOG等。

(2)禁止執(zhí)行語句的權(quán)限:

DENY{ALL|statement[,…n]}TOsecurity_account[,…n]

(3)撤銷執(zhí)行語句的權(quán)限:

REVOKE{ALL|statement[,…n]}FROMsecurity_account[,…n]

DENY語句與REVOKE語句的參數(shù)含義與GRANT語句類似。

【例12-19】

授予SCMS數(shù)據(jù)庫用戶DB_User1在SCMS數(shù)據(jù)庫中執(zhí)行CREATETABLE語句的權(quán)限。

USEscms

GRANTCREATETABLETODB_User1

GO

【例12-20】

撤銷SCMS數(shù)據(jù)庫用戶DB_user1在SCMS數(shù)據(jù)庫中執(zhí)行CREATETABLE語句的權(quán)限。

USEscms

REVOKECREATETABLEFROMDB_User1

GO

【例12-21】使用SQLServerManagementStudio完成例12-19中執(zhí)行的授權(quán)操作。具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“數(shù)據(jù)庫|SCMS”節(jié)點(diǎn),右擊SCMS數(shù)據(jù)庫,在彈出的快捷菜單中選擇“屬性”選項(xiàng)。

(3)打開“數(shù)據(jù)庫屬性-SCMS”對(duì)話框,再打開“權(quán)限”選擇頁,在“用戶或角色”列表中選擇要設(shè)置權(quán)限的對(duì)象DB_User1。

(4)在“DB_User1的顯式權(quán)限”列表中“授予”列進(jìn)行選擇,選中CreateTable,如圖12-18所示。

(5)單擊“確定”按鈕,完成設(shè)置。圖12-18設(shè)置DB_User1的語句權(quán)限

SQLServer中角色是權(quán)限的集合。將具有相同權(quán)限的用戶作為一個(gè)角色的成員,定義角色的權(quán)限,角色的權(quán)限適用于角色中的所有成員。通過對(duì)角色權(quán)限的管理,可實(shí)現(xiàn)對(duì)用戶權(quán)限的統(tǒng)一管理。

在SQLServer2005中角色分為服務(wù)器角色和數(shù)據(jù)庫角色,數(shù)據(jù)庫角色又分為固定數(shù)據(jù)庫角色和自定義數(shù)據(jù)庫角色。12.6角色管理

12.6.1服務(wù)器角色

服務(wù)器角色是SQLServer針對(duì)服務(wù)器權(quán)限管理定義的角色。SQLServer2005安裝成功后,系統(tǒng)自動(dòng)創(chuàng)建服務(wù)器角色,用戶不能創(chuàng)建。如果登錄賬戶想要獲得某種服務(wù)器角色的管理權(quán)限,就應(yīng)將該登錄賬戶添加為該服務(wù)器角色的成員。只能將登錄賬戶添加為服務(wù)器角色的成員,而不能自定義服務(wù)器角色。固定服務(wù)器角色共有8個(gè),如表12-3所示。表12-3固定服務(wù)器角色1.使用Transact-SQL語句添加和刪除固定服務(wù)器角色成員

1)使用Transact-SQL語句添加固定服務(wù)器角色成員

SQLServer2005中使用sp_addsrvrolemember系統(tǒng)存儲(chǔ)過程將登錄賬戶添加為固定服務(wù)器角色成員。其語法格式如下:

sp_addsrvrolemember[@loginname=]'login',[@rolename=]'role'

參數(shù)說明如下:

login:要添加到固定服務(wù)器角色中的登錄名。

role:要添加登錄賬戶的固定服務(wù)器角色名。必須為表12-3中所列的角色名。

【例12-22】將SCMS中創(chuàng)建的登錄賬戶20100830-1332\Win_User1添加為sysadmin角色的成員。

sp_addsrvrolemember'20100830-1332\Win_User1','sysadmin'

【例12-23】將SCMS中創(chuàng)建的登錄賬戶SQL_User1添加為dbcreator角色的成員。

sp_addsrvrolemember'SQL_User','dbcreator'

2)使用Transact-SQL語句刪除固定服務(wù)器角色成員

SQLServer2005中使用sp_dropsrvrolemember系統(tǒng)存儲(chǔ)過程從固定服務(wù)器角色中刪除登錄賬戶。其語法格式如下:

sp_dropsrvrolemember[@loginname=]'login',[@rolename=]'role'參數(shù)說明如下:

login:要從固定服務(wù)器角色刪除的登錄賬戶的登錄名。

role:要?jiǎng)h除登錄賬戶的固定服務(wù)器角色名。

【例12-24】從dbcreator角色中刪除登錄賬戶SQL_User1。

sp_dropsrvrolemember'SQL_User1','dbcreator'

2.使用SQLServerManagementStudio添加和刪除固定服務(wù)器角色的成員

【例12-25】在SCMS數(shù)據(jù)庫中,將登錄賬號(hào)SQL_User1添加為sysadmin的成員,然后將20100830\Win_User1登錄賬戶從sysadmin角色中刪除。

將SQL_User1添加為sysadmin角色成員的具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio,以sa為登錄賬戶連接數(shù)據(jù)庫實(shí)例。

(2)在“對(duì)象資源管理器”窗口中展開“安全性|登錄名”節(jié)點(diǎn),右擊登錄名SQL_User1,在彈出的快捷菜單中選擇“屬性”選項(xiàng)。

(3)打開“登錄屬性-SQL_User1”對(duì)話框,再打開“服務(wù)器角色”選擇頁,在右側(cè)的“服務(wù)器角色”列表中選中“sysadmin”復(fù)選框,如圖12-19所示。圖12-19添加服務(wù)器角色成員

(4)單擊“確定”按鈕,SQL_User1就被添加為sysadmin角色的成員。

將20100830\Win_User1從sysadmin成員列表中刪除的具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“安全性|登錄名”節(jié)點(diǎn),右擊登錄名20100830\Win_User1,在彈出的快捷菜單中選擇“屬性”選項(xiàng)。

(3)打開“登錄屬性-20100830\Win_User1”對(duì)話框,再打開“服務(wù)器角色”選擇頁,在右側(cè)的“服務(wù)器角色”列表中點(diǎn)擊sysadmin復(fù)選框,使它處于未選中狀態(tài),單擊“確定”按鈕,則20100830\Win_User1便從sysadmin成員列表中被刪除。

12.6.2數(shù)據(jù)庫角色

數(shù)據(jù)庫角色是SQLServer在數(shù)據(jù)庫級(jí)別定義的角色,存儲(chǔ)在數(shù)據(jù)庫中。

1.固定數(shù)據(jù)庫角色

當(dāng)數(shù)據(jù)庫被創(chuàng)建后,系統(tǒng)自動(dòng)創(chuàng)建10個(gè)固定數(shù)據(jù)庫角色。如果數(shù)據(jù)庫用戶想要獲得某個(gè)固定數(shù)據(jù)庫角色的權(quán)限,就應(yīng)將該數(shù)據(jù)庫用戶添加為此數(shù)據(jù)庫角色的成員。只能將數(shù)據(jù)庫用戶添加為固定數(shù)據(jù)庫角色的成員,而不能更改固定數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色如表12-4所示。表12-4固定數(shù)據(jù)庫角色2.添加和刪除數(shù)據(jù)庫角色的成員

1)使用Transact-SQL語句添加和刪除數(shù)據(jù)庫角色成員

SQLServer2005中使用sp_addrolemember系統(tǒng)存儲(chǔ)過程添加數(shù)據(jù)庫角色的成員,使用sp_droprolemember系統(tǒng)存儲(chǔ)過程刪除數(shù)據(jù)庫角色成員。其語法格式如下:

sp_addrolemember[@rolename=]'role',

[@membername=]'security_account'

sp_droprolemember[@rolename=]'role',

[@membername=]'security_account'參數(shù)說明如下:

role:當(dāng)前數(shù)據(jù)庫中要添加或刪除的成員所屬數(shù)據(jù)庫角色名。

security_account:要添加或刪除的成員名。

【例12-26】在SCMS數(shù)據(jù)庫中,將用戶DB_User1添加為db_datareader角色的成員。

USEscms

EXECsp_addrolemember'db_datareader','DB_User1'

【例12-27】在SCMS數(shù)據(jù)庫中,將數(shù)據(jù)庫用戶DB_User1從db_datareader角色中

刪除。

USEscms

EXECsp_droprolemember'db_datareader','DB_User1'

2)使用SQLServerManagementStudio添加和刪除數(shù)據(jù)庫角色成員

【例12-28】使用SQLServerManagementStudio完成例12-26和例12-27。

將數(shù)據(jù)庫用戶DB_User1添加為db_datareader角色的成員,具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“數(shù)據(jù)庫|SCMS|安全性|角色|數(shù)據(jù)庫角色|”節(jié)點(diǎn),在數(shù)據(jù)庫角色列表中選擇“db_datareader”選項(xiàng)。

(3)右擊數(shù)據(jù)庫角色“db_datareader”,在彈出的快捷菜單中選擇“屬性”選項(xiàng),打開“數(shù)據(jù)庫角色屬性-db_datareader”對(duì)話框,如圖12-20所示。

(4)單擊“添加”按鈕,打開“選擇數(shù)據(jù)庫用戶或角色”對(duì)話框,如圖12-21所示。

(5)單擊“瀏覽”按鈕,打開“查找對(duì)象”對(duì)話框,在對(duì)象列表中選中DB_User1,如圖12-22所示。圖12-20“數(shù)據(jù)庫角色屬性-db_datareader”對(duì)話框圖12-21“選擇數(shù)據(jù)庫用戶或角色”對(duì)話框圖12-22“查找對(duì)象”對(duì)話框

(6)單擊“確定”按鈕,返回到“選擇數(shù)據(jù)庫用戶或角色”對(duì)話框。

(7)單擊“確定”按鈕,返回到“數(shù)據(jù)庫角色屬性-db_datareader”對(duì)話框。

(8)單擊“確定”按鈕,完成角色成員的添加。

將數(shù)據(jù)庫用戶DB_User1從db_datareader角色中刪除,具體操作步驟如下:

(1)啟動(dòng)SQLServerManagementStudio。

(2)在“對(duì)象資源管理器”窗口中展開“數(shù)據(jù)庫|SCMS|安全性|角色|數(shù)據(jù)庫角色”節(jié)點(diǎn),

溫馨提示

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

評(píng)論

0/150

提交評(píng)論