




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)書課題進(jìn)度
- 前臺(tái)薪資合同范本模板
- 廈門 代建合同范本
- 公司頂層設(shè)計(jì)合同范本
- 傷殘賠償合同范本
- 品牌使用授權(quán)合同范本
- 保安與個(gè)人合同范本
- 廠房墻面翻新合同范例
- 樂器維修采購合同范例
- 合同范本合作期限
- 2024年全國高考數(shù)學(xué)試題及解析答案(新課標(biāo)Ⅱ卷)
- 第四單元認(rèn)位置(單元測(cè)試)2024-2025學(xué)年一年級(jí)數(shù)學(xué)上冊(cè)蘇教版
- 人教版高二下學(xué)期數(shù)學(xué)(選擇性必修二)《5.3.1函數(shù)的單調(diào)性》同步測(cè)試題-帶答案
- 風(fēng)動(dòng)和電動(dòng)工具市場(chǎng)洞察報(bào)告
- 工程造價(jià)咨詢服務(wù)投標(biāo)方案(技術(shù)方案)
- 五級(jí)應(yīng)急救援員職業(yè)鑒定考試題庫(含答案)
- 【初中+數(shù)學(xué)】+專題復(fù)習(xí)課+圓中的折疊課件+蘇科版數(shù)學(xué)九年級(jí)上冊(cè)
- 癌癥患者生活質(zhì)量量表EORTC-QLQ-C30
- 《電工電子技術(shù)基礎(chǔ)》高職全套教學(xué)課件
- (正式版)JB∕T 14732-2024 中碳和中碳合金鋼滾珠絲杠熱處理技術(shù)要求
- 四川省既有居住小區(qū)改造技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論