SQL Server的安全管理課件_第1頁(yè)
SQL Server的安全管理課件_第2頁(yè)
SQL Server的安全管理課件_第3頁(yè)
SQL Server的安全管理課件_第4頁(yè)
SQL Server的安全管理課件_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

SQLServer的安全管理10.1身份驗(yàn)證模式

SQLServer2000的安全機(jī)制是基於用戶、角色、對(duì)象和許可權(quán)的基礎(chǔ)上建立的。系統(tǒng)可以將用戶加入角色,也可以為它們指定對(duì)象許可權(quán)。每個(gè)對(duì)象都有所有者,所有權(quán)也影響到許可權(quán)。資料庫(kù)對(duì)象(表、索引、視圖、觸發(fā)器、函數(shù)或存儲(chǔ)過(guò)程)的用戶稱為資料庫(kù)對(duì)象的所有者。創(chuàng)建資料庫(kù)對(duì)象的許可權(quán)必須由資料庫(kù)所有者或系統(tǒng)管理員授予。但是,在授予資料庫(kù)對(duì)象這些許可權(quán)後,資料庫(kù)對(duì)象所有者就可以創(chuàng)建對(duì)象並授予其他用戶使用該對(duì)象的許可權(quán)。SQLServer2000安全系統(tǒng)的構(gòu)架建立在用戶和用戶組的基礎(chǔ)上,也就是說(shuō)Windows的用戶和用戶組可以映射到SQLServer2000中的安全帳戶,而SQLServer2000也可以獨(dú)自建立安全帳戶。對(duì)於安全帳戶SQLServer2000可以對(duì)其分配權(quán)限,也可以將其加入到角色中,從而獲得相應(yīng)的許可權(quán)。如圖10-1所示。

在SQLServer2000工作時(shí),用戶要經(jīng)過(guò)兩個(gè)安全性階段:

第一階段:身份驗(yàn)證。如果身份驗(yàn)證成功,用戶可連接到SQLServer實(shí)例。

第二階段:授權(quán)(許可權(quán)驗(yàn)證)。授權(quán)階段又分為驗(yàn)證用戶連接到SQLServer實(shí)例的許可權(quán)和訪問(wèn)伺服器上資料庫(kù)的許可權(quán)。為此,需授予每個(gè)資料庫(kù)中映射到用戶登錄的帳號(hào)訪問(wèn)許可權(quán)。許可權(quán)驗(yàn)證階段則控制用戶在SQLServer資料庫(kù)中所允許進(jìn)行的活動(dòng)。SQLServer指定登錄用戶和角色資料庫(kù)用戶資料庫(kù)角色Windows2000組用戶SQLServer登錄帳戶SQLServer

驗(yàn)證信任聯(lián)結(jié)SQLServer驗(yàn)證用戶名和口令SQLServerWindows2000或圖10-1SQLServer2000的安全架構(gòu)10.1.1SQLServer的身份驗(yàn)證模式

在SQLServer2000中,必須以合法的登錄身份註冊(cè)本地或遠(yuǎn)程伺服器後,才能與伺服器建立連接並獲得對(duì)SQLServer的訪問(wèn)權(quán)。系統(tǒng)提供了2種登錄身份驗(yàn)證模式:

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

Windows身份驗(yàn)證模式使用戶得以通過(guò)WindowsNT或Windows2000用戶帳號(hào)進(jìn)行登錄連接,並獲得對(duì)SQLServer的訪問(wèn)許可權(quán)。

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

混合模式使用戶得以使用Windows身份驗(yàn)證或SQLServer2000身份驗(yàn)證的用戶帳號(hào)進(jìn)行登錄連接。

在Windows身份驗(yàn)證模式或混合模式下,通過(guò)Windows用戶帳號(hào)連接的用戶可以使用信任連接。10.1.2身份驗(yàn)證模式的選擇

選擇身份驗(yàn)證模式,可按以下步驟操作:

①在企業(yè)管理器中展開(kāi)【SQLServer組】,選擇目前連接的伺服器。

②單擊【菜單】中的【屬性】命令,打開(kāi)【SQLServer屬性】對(duì)話框,選擇【安全性】標(biāo)籤,即可打開(kāi)如圖10-2所示的對(duì)話框。

③可在【安全性】選項(xiàng)組中設(shè)置身份驗(yàn)證模式。如圖10-2所示。圖10-2設(shè)置身份驗(yàn)證模式對(duì)話框10.2安全帳戶管理

10.2.1創(chuàng)建安全帳戶

在SQLServer2000中,可以使用兩種方法添加登錄帳號(hào):使用企業(yè)管理器添加登錄帳號(hào);使用系統(tǒng)存儲(chǔ)過(guò)程添加登錄帳號(hào)。

1.系統(tǒng)安裝時(shí)建立的帳號(hào)

(1)sa

系統(tǒng)管理員(sa)是為向後相容而提供的特殊登錄帳號(hào),擁有最高管理權(quán)限,可以執(zhí)行伺服器範(fàn)圍內(nèi)的所有操作。默認(rèn)情況下,它指派給固定伺服器角色sysadmin,並不能進(jìn)行更改。雖然是內(nèi)置了管理員登錄帳號(hào),但不應(yīng)例行公事地使用它。相反,應(yīng)使其他的系統(tǒng)管理員帳號(hào)都成為sysadmin固定伺服器角色的成員,並讓他們使用自己的登錄名登錄。只有當(dāng)沒(méi)有其他方法登錄到SQLServer實(shí)例(例如:當(dāng)其他系統(tǒng)管理員不可用或忘記了密碼)時(shí)才使用sa。

(2)Builtin\administrators

本地管理員組,默認(rèn)加入sysadmin角色中,因此具有管理員許可權(quán)。2.使用企業(yè)管理器添加登錄帳號(hào)

具體操作步驟如下:

在企業(yè)管理器中展開(kāi)伺服器組,然後展開(kāi)伺服器。

②展開(kāi)【安全性】,右擊【登錄】,然後單擊【新建登錄】命令,系統(tǒng)打開(kāi)如圖10-3所示【SQLServer登錄屬性-新建登錄】對(duì)話框。圖10-3【SQLServer登錄屬性-新建登錄】對(duì)話框①③在【身份驗(yàn)證】下,單擊【W(wǎng)indows身份驗(yàn)證】,在【名稱】框中,輸入要被授權(quán)訪問(wèn)MicrosoftSQLServerTM的MicrosoftWindowsNT4.0或Windows2000帳號(hào)(以DOMAIN\User的形式);在【身份驗(yàn)證】下,單擊【SQLServer身份驗(yàn)證】,在【名稱】框中,輸入登錄帳號(hào)名稱。

④設(shè)置可選項(xiàng)??稍凇举Y料庫(kù)】中,單擊用戶在登錄到SQLServer實(shí)例後所連接的默認(rèn)資料庫(kù)。在【語(yǔ)言】中,單擊顯示給用戶的資訊所用的默認(rèn)語(yǔ)言。

【例10-1】將dss_ibm390x中的本機(jī)用戶zhangsan加入到SQLServer實(shí)例中,並建立一個(gè)SQLServer登錄帳號(hào),帳號(hào)名稱為wang。

在企業(yè)管理器中可以按以下步驟操作:

①在企業(yè)管理器中展開(kāi)伺服器組,然後展開(kāi)伺服器

②展開(kāi)【安全性】,右擊【登錄】,然後單擊【新建登錄】命令,打開(kāi)如圖10-4所示【SQLServer登錄屬性-新建登錄】對(duì)話框。

③在【名稱】框中,輸入dss_ibm390x\zhangsan。

④在【身份驗(yàn)證】下,單擊【W(wǎng)indows身份驗(yàn)證】。

⑤填寫(xiě)完成之後,單擊【確定】按鈕。

⑥重複①、②步。⑦在【名稱】框中,輸入wang。

⑧在【身份驗(yàn)證】下,單擊【SQLServer身份驗(yàn)證】⑨在【密碼】框中,輸入密碼,也可以密碼為空

圖10-2-2登錄帳戶資訊

⑩填寫(xiě)完成之後,單擊【確定】按鈕,即可在企業(yè)管理器中看到如圖10-5所示的登錄帳號(hào)資訊。圖10-4【SQLServer登錄屬性-新建登錄】對(duì)話框圖10-5登錄帳號(hào)資訊3.使用系統(tǒng)存儲(chǔ)過(guò)程添加登錄帳號(hào)

在SQLServer2000中,也可用sp_grantlogin系統(tǒng)存儲(chǔ)過(guò)程來(lái)創(chuàng)建一個(gè)Windows登錄‘帳號(hào)。其語(yǔ)法為:

Sp_grantloginWindows帳號(hào)或組’

其中:‘Windows帳號(hào)或組’的格式為‘功能變數(shù)名稱\用戶名’。

也可用sp_addlogin命令來(lái)創(chuàng)建一個(gè)SQLServer登錄帳號(hào)。其語(yǔ)法為:

sp_addlogin[@loginame=]'login'

[,[@passwd=]'password']

[,[@defdb=]'database']

[,[@deflanguage=]'language']其中:[@loginame=]'login':登錄的名稱。login的數(shù)據(jù)類型為sysname,沒(méi)有默認(rèn)設(shè)置。[@passwd=]'password':登錄密碼。password的數(shù)據(jù)類型為sysname,默認(rèn)設(shè)置為NULL。sp_addlogin

執(zhí)行後,password被加密並存儲(chǔ)在系統(tǒng)表中。[@defdb=]'database':登錄的默認(rèn)資料庫(kù)(登錄後登錄所連接到的資料庫(kù))。database的數(shù)據(jù)類型為sysname,默認(rèn)設(shè)置為master。其中:[@loginame=]'login':登錄的名稱。login的數(shù)據(jù)類型為sysname,沒(méi)有默認(rèn)設(shè)置。[@passwd=]'password':登錄密碼。password的數(shù)據(jù)類型為sysname,默認(rèn)設(shè)置為NULL。sp_addlogin

執(zhí)行後,password被加密並存儲(chǔ)在系統(tǒng)表中。[@defdb=]'database':登錄的默認(rèn)資料庫(kù)(登錄後登錄所連接到的資料庫(kù))。database的數(shù)據(jù)類型為sysname,默認(rèn)設(shè)置為master。[@deflanguage=]'language':用戶登錄到SQLServer時(shí)系統(tǒng)指派的默認(rèn)語(yǔ)言。language的數(shù)據(jù)類型為sysname,默認(rèn)設(shè)置為NULL。如果沒(méi)有指定language,那麼language被設(shè)置為伺服器當(dāng)前的默認(rèn)語(yǔ)言(由sp_configure配置變數(shù)defaultlanguage定義)。更改伺服器的默認(rèn)語(yǔ)言不會(huì)更改現(xiàn)有登錄的默認(rèn)語(yǔ)言。language保持與添加登錄時(shí)所使用的默認(rèn)語(yǔ)言相同??梢允褂蒙鲜鱿到y(tǒng)存儲(chǔ)過(guò)程實(shí)現(xiàn)【例10-1】的功能。

在查詢分析器中執(zhí)行下列存儲(chǔ)過(guò)程:

Sp_grantlogin‘dss_ibm390x\zhangsan’ ――添加一個(gè)Windows登錄帳號(hào)

GO

Sp_addlogin‘wang’,’’,’master’ ――添加一個(gè)SQLServer登錄帳號(hào)

GO

10.2.2管理安全帳號(hào)

①刪除SQLServer登錄帳號(hào)

Sp_drop‘login’ ――login表示登錄帳號(hào)

②禁止一個(gè)Windiws帳號(hào)訪問(wèn)SQLServer實(shí)例

Sp_denylogin‘login’ ――login表示W(wǎng)indows用戶帳號(hào),形式為Domain\User

③刪除一個(gè)Windiws登錄帳號(hào)

Sp_revokelogin‘login’ ――login表示W(wǎng)indows用戶帳號(hào),形式為Domain\User10.2.3創(chuàng)建資料庫(kù)用戶帳號(hào)

有了登錄帳號(hào)之後,可以訪問(wèn)SQLServer,但還不能訪問(wèn)資料庫(kù)。要讓用戶能夠訪問(wèn)資料庫(kù),還需要在指定資料庫(kù)中生成資料庫(kù)用戶帳號(hào)。在SQLServer2000中,可以使用兩種方法將登錄帳號(hào)生成為指定資料庫(kù)的用戶帳號(hào)。它們是使用企業(yè)管理器新建資料庫(kù)用戶;使用系統(tǒng)存儲(chǔ)過(guò)程新建資料庫(kù)用戶。

1.缺省資料庫(kù)用戶帳號(hào)

(1)dbo

dbo是可以在資料庫(kù)範(fàn)圍內(nèi)執(zhí)行一切操作的最高權(quán)利擁有者。系統(tǒng)將固定伺服器角色sysadmin的任何成員都映射到每個(gè)資料庫(kù)內(nèi)稱為dbo的這個(gè)特殊用戶上。另外,由固定伺服器角色sysadmin的任何成員創(chuàng)建的任何對(duì)象都自動(dòng)屬於dbo,並且dbo用戶無(wú)法刪除

(2)guest

Guest用戶帳號(hào)允許任何已經(jīng)登錄到SQLServer伺服器的用戶都可以訪問(wèn)資料庫(kù)。但必須滿足以下兩個(gè)條件:①登錄有訪問(wèn)SQLServer實(shí)例的許可權(quán),但沒(méi)有通過(guò)自己的用戶帳號(hào)訪問(wèn)資料庫(kù)的許可權(quán);②資料庫(kù)中含有g(shù)uest用戶帳號(hào)。10.2.4創(chuàng)建資料庫(kù)用戶帳號(hào)

使用企業(yè)管理器創(chuàng)建資料庫(kù)用戶帳號(hào)

可按以下步驟進(jìn)行操作:

①在企業(yè)管理器中展開(kāi)伺服器組,然後展開(kāi)伺服器。

②展開(kāi)指定資料庫(kù),右擊【用戶】,在彈出的快捷菜單中單擊【新建資料庫(kù)用戶(U)…】命令,打開(kāi)如圖10-6所示的【資料庫(kù)用戶屬性-新建用戶】對(duì)話框。

③在【登錄名】框中,選擇一個(gè)登錄帳號(hào)。

④在【用戶名】框中,輸入用戶名稱。需要說(shuō)明的是,一個(gè)登錄帳號(hào)可以在不同的資料庫(kù)中擁有不同的用戶名稱。

⑤在【資料庫(kù)角色成員】欄中,可以選擇該資料庫(kù)用戶將加入到哪一個(gè)資料庫(kù)角色中,但所有的用戶都屬於public角色。

⑥填寫(xiě)完畢之後,單擊【確定】按鈕。圖10-7為數(shù)據(jù)庫(kù)XSCJ新建用戶登錄帳號(hào)圖10-6【資料庫(kù)用戶屬性-新建用戶】對(duì)話框【例10-2】為數(shù)據(jù)庫(kù)XSCJ新建用戶登錄帳號(hào)為:dss_ibm390x\zhangsan,在資料庫(kù)XSCJ中的用戶名為zhangsan。

在企業(yè)管理器中可以按以下步驟操作:

①在企業(yè)管理器中展開(kāi)伺服器組,然後展開(kāi)伺服器,在展開(kāi)資料庫(kù)。

②展開(kāi)指定資料庫(kù)XSCJ,右擊【用戶】,然後單擊【新建資料庫(kù)用戶】命令,打開(kāi)【資料庫(kù)用戶屬性-新建用戶】對(duì)話框,如圖10-7所示。

③在【登錄名】框中,選擇一個(gè)登錄帳號(hào)(dss_ibm390x\zhangsan)。

④在用戶名框中,輸入用戶名稱zhangsan。

⑤在資料庫(kù)角色成員欄中,可以選擇zhangsan為數(shù)據(jù)庫(kù)XSCJ的擁有者,既在db_owner上打√。⑥單擊【確定】按鈕,設(shè)置結(jié)果如圖10-8所示圖10-8為數(shù)據(jù)庫(kù)XSCJ新建用戶登錄帳號(hào)2.使用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建資料庫(kù)用戶帳號(hào)

在SQLServer2000中,也可用sp_grantdbaccess命令來(lái)新建資料庫(kù)用戶帳號(hào)。其語(yǔ)法為:

sp_grantdbaccess[@loginame=]'login'

[,[@name_in_db=]'name_in_db'[OUTPUT]]

其中:

[@loginame=]'login':當(dāng)前資料庫(kù)中新安全帳號(hào)的登錄名稱。WindowsNT組和用戶必須用WindowsNT功能變數(shù)名稱限定,格式為"域\用戶",例如LONDON\Joeb。登錄不能使用資料庫(kù)中已有的帳號(hào)作為別名。

[@name_in_db=]'name_in_db'[OUTPUT]:資料庫(kù)中用戶帳號(hào)的名稱。name_in_db是sysname

類型的OUTPUT變數(shù),默認(rèn)值為NULL。如果沒(méi)有指定,則使用login。如果將其指定為NULL值的OUTPUT變數(shù),則設(shè)置@name_in_db為login。當(dāng)前資料庫(kù)不必存在name_in_db?!纠?0-3】為數(shù)據(jù)庫(kù)XSCJ新建用戶帳號(hào),該用戶帳號(hào)的登錄帳號(hào)為wang,在資料庫(kù)XSCJ中的用戶名為wang。在查詢分析器中運(yùn)行如下命令:Sp_grantdbaccess‘wang’,’wang’GO運(yùn)行結(jié)果如圖10-9所示。圖10-9使用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建資料庫(kù)用戶帳號(hào)10.2.5管理資料庫(kù)用戶帳號(hào)

1.刪除資料庫(kù)用戶

Sp_revokedbaccess'name' ――name表示資料庫(kù)用戶名

2.報(bào)告當(dāng)前資料庫(kù)的用戶資訊

Sp_helpuser[name] ――name表示資料庫(kù)用戶名10.3角色管理

角色是一個(gè)強(qiáng)大的工具,可以將用戶集中到一個(gè)單元中,然後對(duì)該單元應(yīng)用許可權(quán)。對(duì)一個(gè)角色授予、拒絕或廢除許可權(quán)也適用於該角色的任何成員。可以建立一個(gè)角色來(lái)代表單位中一類工作人員所執(zhí)行的工作,然後給這個(gè)角色授予適當(dāng)?shù)脑S可權(quán)。當(dāng)工作人員開(kāi)始工作時(shí),只須將他們添加為該角色成員,當(dāng)他們離開(kāi)工作時(shí),將他們從該角色中刪除,而不必在每個(gè)人接受或離開(kāi)工作時(shí),反復(fù)授予、拒絕和廢除其許可權(quán)。許可權(quán)在用戶成為角色成員時(shí)自動(dòng)生效。10.3.1固定伺服器角色

將用戶添加到表10-1所列角色中,這些用戶就獲得管理SQLServer的管理權(quán)限。

表10-1固定伺服器角色固定伺服器角色許可權(quán)描述Sysadmin可以在SQLServer中執(zhí)行任何活動(dòng)。Serveradmin可以設(shè)置伺服器範(fàn)圍的配置選項(xiàng),關(guān)閉伺服器。Securityadmin可以管理登錄,還可以讀取錯(cuò)誤日誌和更改密碼。Setupadmin可以管理鏈接伺服器和啟動(dòng)過(guò)程。Processadmin可以管理在SQLServer中運(yùn)行的進(jìn)程。Dbcreator可以創(chuàng)建、更改和刪除資料庫(kù)。Diskadmin可以管理磁片檔。bulkadmin可以執(zhí)行BULKINSERT語(yǔ)句。上述角色是在安裝SQLServer時(shí)自動(dòng)創(chuàng)建的,並且系統(tǒng)已經(jīng)給這些角色分配權(quán)限。用戶不能修改其許可權(quán),也不能再定義固定伺服器角色。

10.3.2固定資料庫(kù)角色

每個(gè)資料庫(kù)都有一系列固定資料庫(kù)角色。雖然每個(gè)資料庫(kù)中都存在名稱相同的角色,但各個(gè)角色的作用域只限於特定的資料庫(kù)內(nèi)。

將用戶添加到表10-2所列角色中,這些用戶就獲得這個(gè)資料庫(kù)的管理權(quán)限。固定資料庫(kù)角色許可權(quán)描述Db_owner在資料庫(kù)中有全部許可權(quán)。Db_accessadmin可以添加或刪除用戶IDDb_securityadmin可以管理全部許可權(quán)、對(duì)象所有權(quán)、角色和角色成員的資格db_ddladmin可以發(fā)出ALLDDL,但不能發(fā)出GRANT、REVOKE或DENY語(yǔ)句。db_backupoperator可以發(fā)出DBCC、CHECKPOINT和BACKUP語(yǔ)句。db_datareader可以選擇資料庫(kù)內(nèi)任何用戶表中的所有數(shù)據(jù)。db_datawriter可以更改資料庫(kù)內(nèi)任何用戶表中的所有數(shù)據(jù)。db_denydatareader不能選擇資料庫(kù)內(nèi)任何用戶表中的任何數(shù)據(jù)。db_denydatawriter不能更改資料庫(kù)內(nèi)任何用戶表中的任何數(shù)據(jù)。表10-2固定資料庫(kù)角色10.3.3創(chuàng)建資料庫(kù)角色

1.創(chuàng)建自定義資料庫(kù)角色

當(dāng)一組用戶需要在SQLServer中執(zhí)行一組指定的活動(dòng)時(shí),可以創(chuàng)建SQLServer資料庫(kù)角色。用戶添加到角色中就繼承角色的許可權(quán),這樣可以更加方便管理。

方法一、使用企業(yè)管理器創(chuàng)建SQLServer自定義資料庫(kù)角色

具體操作步驟為:

①展開(kāi)伺服器組,然後展開(kāi)伺服器。

②展開(kāi)【資料庫(kù)】檔夾,然後展開(kāi)指定的資料庫(kù)

③右擊【角色】,在彈出的快捷菜單中單擊【新建資料庫(kù)角色】命令,打開(kāi)【資料庫(kù)角色屬性-新建角色】對(duì)話框,如圖10-10所示。

④在【名稱】框中輸入新角色的名稱。

⑤單擊【添加】按鈕,將成員添加到【標(biāo)準(zhǔn)角色】列表中,然後選擇要添加的一個(gè)或多個(gè)用戶。

⑥設(shè)置完畢後,點(diǎn)擊【確定】。設(shè)置結(jié)果如圖10-10所示。圖10-10【資料庫(kù)角色屬性-新建角色】對(duì)話框方法二、使用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建自定義資料庫(kù)角色並將用戶添加到角色中

在查詢分析器中執(zhí)行下列命令即可:

USE資料庫(kù)名

-選擇要?jiǎng)?chuàng)建角色的資料庫(kù)

sp_addrole‘role’

-在當(dāng)前資料庫(kù)創(chuàng)建新的角色,role為角色名

2.創(chuàng)建應(yīng)用程式角色

由於某種需要,可能希望限制用戶只能通過(guò)特定應(yīng)用程式來(lái)訪問(wèn)數(shù)據(jù)或防止用戶直接訪問(wèn)數(shù)據(jù)。限制用戶的這種訪問(wèn)方式將禁止用戶使用應(yīng)用程式連接到SQLServer實(shí)例並執(zhí)行編寫(xiě)品質(zhì)差的查詢,以免對(duì)整個(gè)伺服器的性能造成負(fù)面影響。應(yīng)用角色不包含成員,默認(rèn)情況下,應(yīng)用程式角色是非活動(dòng)的,需要用密碼啟動(dòng),當(dāng)一個(gè)應(yīng)用程式角色被該應(yīng)用程式啟動(dòng)以用於連接時(shí),連接會(huì)在連接期間永久地失去資料庫(kù)中所有用來(lái)登錄的許可權(quán)。

使用sp_addapprole’role','password'命令即可創(chuàng)建一個(gè)應(yīng)用程式角色。

使用sp_setapprole'role','password'命令即可啟動(dòng)應(yīng)用程式角色。

'role'為應(yīng)用程式角色名,'password'為啟動(dòng)口令。

也可以使用企業(yè)管理器創(chuàng)建應(yīng)用程式角色,如圖10-10所示。10.3.4管理資料庫(kù)角色

1.將用戶加入到固定伺服器角色中

sp_addsrvrolemember‘用戶名稱’,‘角色名稱’

2.將用戶從固定伺服器角色中移去

sp_dropsrvrolemember‘用戶名稱’,‘角色名稱’

3.將用戶加入到資料庫(kù)角色中

sp_addrolemember‘角色名稱’,‘用戶名稱’

4.將用戶從資料庫(kù)角色中移去

sp_droprolemember‘角色名稱’,‘用戶名稱’

5.查詢角色資訊

sp_helprole‘角色名稱’ --列出角色的名稱、識(shí)別碼

sp_helprolemember‘角色名稱’ --列出該角色所有成員及各成員的對(duì)象識(shí)別碼

6.刪除角色

sp_droprole'角色名稱'

注意:內(nèi)建角色無(wú)法刪除,當(dāng)角色中仍有成員時(shí)也無(wú)法刪除。10.4.1許可權(quán)概述在SQLServer中,並不是所有的用戶(login)都可以訪問(wèn)特定的資料庫(kù),能訪問(wèn)某個(gè)資料庫(kù)的用戶也不一定有全部訪問(wèn)許可權(quán)。為了進(jìn)行這種限制,我們需要使用權(quán)限進(jìn)行控制。管理權(quán)限包括:處理數(shù)據(jù)和執(zhí)行過(guò)程(對(duì)象許可權(quán))創(chuàng)建資料庫(kù)或資料庫(kù)中專案(語(yǔ)句許可權(quán))利用授予預(yù)定義角色的許可權(quán)(暗示性許可權(quán))

2.許可許可權(quán)包括:GRANT:授予用戶有訪問(wèn)許可權(quán)REVOKE:撤銷已經(jīng)授予、或撤銷已經(jīng)拒絕的許可權(quán)DENY:拒絕用戶有訪問(wèn)許可權(quán)三者之間的關(guān)係如圖10-11所示。GRANT:

CanPerformActionREVOKE:NeutralDENY:

CannotPerformAction圖10-11許可許可權(quán)之間的關(guān)係10.4.2對(duì)象許可權(quán)1.對(duì)象許可權(quán)類別處理數(shù)據(jù)或執(zhí)行過(guò)程時(shí)需要的許可權(quán)稱為對(duì)象許可權(quán)。SELECT、INSERT、UPDATE和DELETE語(yǔ)句許可權(quán),它們可以應(yīng)用到整個(gè)表或視圖中。SELECT和UPDATE語(yǔ)句許可權(quán),它們可以有選擇性地應(yīng)用到表或視圖中單個(gè)列上。SELECT許可權(quán),它們可以應(yīng)用到用戶定義函數(shù)。INSERT和DELETE語(yǔ)句許可權(quán),它們會(huì)影響整行,因此只可以應(yīng)用到表或視圖中,而不能應(yīng)用到單個(gè)列上。EXEXUTE語(yǔ)句許可權(quán),它們可以影響存儲(chǔ)過(guò)程和函數(shù)。2.分配權(quán)限

【例10-4】給public角色授予SELECT許可權(quán)。然後,將特定的許可權(quán)授予用戶wang、zhangsan、tom。於是這些用戶有了對(duì)“班級(jí)表”的所有權(quán)限。

在查詢分析器中執(zhí)行以下命令即可:

GRANTSELECTON班級(jí)表TOpublic

GRANTINSERT,UPDATE,DELETEON班級(jí)表TOwang,zhangsan,tom

上述過(guò)程既是分配對(duì)象許可權(quán)的過(guò)程。

撤銷許可權(quán)只要將GRANT換為REVOKE,拒絕許可權(quán)只要將GRANT換為DENY即可。10.4.3語(yǔ)句許可權(quán)

創(chuàng)建資料庫(kù)或資料庫(kù)中的項(xiàng)(如表或存儲(chǔ)過(guò)程)所涉及的活動(dòng)要求另一類稱為語(yǔ)句許可權(quán)的許可權(quán)。例如,如果用戶必須能夠在資料庫(kù)中創(chuàng)建表,則應(yīng)該向該用戶授予CREATETABLE語(yǔ)句許可權(quán)。語(yǔ)句許可權(quán)適用於語(yǔ)句自身,而不適用於資料庫(kù)中定義的特定對(duì)象。

1.語(yǔ)句許可權(quán)有:

BACKUPDATABASE

BACKUPLOG

CREATEDATABASE

CREATEDEFAULT

CREATEFUNCTION

CREATEPROCEDURE

CREATERULE

CREATETABLE

CREATEVIEW2.分配權(quán)限

【例10-5】使用戶wang和dss_ibm390x\zhangsan做建立資料庫(kù)和建立表的工作。

在查詢分析器中執(zhí)行以下命令即可:

GRANTCREATEDATABASE,CREATETABLETOwang,[dss_ibm390x\zhangsan]

上述過(guò)程既是分配語(yǔ)句許可權(quán)的過(guò)程。

撤銷許可權(quán)只要將GRANT換為REVOKE,拒絕許可權(quán)只要將GRANT換為DENY即可。

10.4.4使用企業(yè)管理器授予、撤銷和拒絕許可權(quán)分配

具體操作步驟如下:

1.從對(duì)象列表設(shè)置對(duì)象許可權(quán)

①展開(kāi)企業(yè)管理器,然後展開(kāi)【資料庫(kù)】,指定資料庫(kù)。

②在指定資料庫(kù)的對(duì)象列表(表、視圖、存儲(chǔ)過(guò)程等)中,右擊某對(duì)象,並從彈出的快捷菜單中選擇【屬性】命令,打開(kāi)【對(duì)象屬性】對(duì)話框。③單擊【許可權(quán)】按鈕,打開(kāi)【對(duì)象屬性】對(duì)話框,如圖10-12所示。

④【對(duì)象屬性】對(duì)話框顯示了所有的用戶和角色,可以使用它來(lái)修改這些用戶和角色的許可權(quán)。

⑤在□上打√為授予許可權(quán),打〤為拒絕,無(wú)為撤銷。

⑥對(duì)話框底部的【列】按鈕可以打開(kāi)【列許可權(quán)】對(duì)話框,利用【列許可權(quán)】對(duì)話框可以為單個(gè)列設(shè)置select和update許可權(quán),如圖10-13所示

⑦點(diǎn)擊【確定】按鈕,許可權(quán)分配完畢。圖10-12【對(duì)象屬性】對(duì)話框圖10-13【列許可權(quán)】對(duì)話框2.從用戶列表設(shè)置對(duì)象許可權(quán)

①展開(kāi)企業(yè)管理,然後展開(kāi)【資料庫(kù)】,指定資料庫(kù)。

②在指定資料庫(kù)的用戶列表中,選擇一個(gè)用戶點(diǎn)擊滑鼠右鍵,並從彈出的快捷菜單中選擇【屬性】,打開(kāi)【資料庫(kù)用戶屬性】對(duì)話框,如圖10-14所示。圖10-14【資料庫(kù)用戶屬性】對(duì)話框圖10-15【資料庫(kù)用戶屬性】的【許可權(quán)】對(duì)話框③在屬性框中可以將用戶加入到資料庫(kù)角色中,點(diǎn)擊【許可權(quán)】按鈕將會(huì)打開(kāi)【許可權(quán)】選項(xiàng)卡,如圖10-15所示。在此可以為用戶設(shè)置單個(gè)許可權(quán)。

④點(diǎn)擊【確定】,許可權(quán)設(shè)置完畢。

3.從角色列表設(shè)置對(duì)象許可權(quán)

①展開(kāi)企業(yè)管理,然後展開(kāi)【資料庫(kù)】,指定資料庫(kù)

②在指定資料庫(kù)的角色列表中,選擇一個(gè)角色點(diǎn)擊滑鼠右鍵,並從彈出的快捷方式菜單中選擇【屬性】,打開(kāi)【資料庫(kù)角色屬性】對(duì)話框,如圖10-16所示。圖10-16【資料庫(kù)角色屬性】對(duì)話框③在屬性框中可以將用戶或其他角色加入到指定的角色,也可以將它們從角色中刪除。通過(guò)點(diǎn)擊【許可權(quán)】按鈕將會(huì)打開(kāi)【許可權(quán)】選項(xiàng)卡,如圖10-17所示。在此可以為角色設(shè)置對(duì)象許可權(quán)。

④點(diǎn)擊【確定】,許可權(quán)設(shè)置完畢。圖10-17【資料庫(kù)角色屬性】的【許可權(quán)】對(duì)話框本章小結(jié)

在本章中同學(xué)們學(xué)習(xí)了SQLServers的安全機(jī)制和安全管理的基礎(chǔ)知識(shí),並重點(diǎn)學(xué)習(xí)了登錄帳號(hào)、用戶帳號(hào)的創(chuàng)建和管理、許可權(quán)分配和靈活使用角色實(shí)現(xiàn)許可權(quán)管理的技術(shù)。本章應(yīng)重點(diǎn)掌握如何根據(jù)安全規(guī)劃,創(chuàng)建登錄帳號(hào)和用戶帳號(hào),並對(duì)其進(jìn)行合理的許可權(quán)分配和有效管理。思考與練習(xí)

一、選擇題

1、下列語(yǔ)句中不是語(yǔ)句許可權(quán)的是()。

A、CREATEDATABASEB、CREATETABLEC、INSERTD、BACKUPLOG

2、可以在SQLServer中執(zhí)行任何任務(wù)的角色是()。

A、db_ownerB、sysadminC、serveradminD、setupadmin

3、允許沒(méi)有用戶帳號(hào)的登錄,且能訪問(wèn)資料庫(kù)的用戶帳號(hào)是()。

A、saB、administratorC、guestD、dbo

4、()是授予用戶有訪問(wèn)許可權(quán)。

A、CREATEB、DENYC、GRANTD、REVOKE

5、查看角色資訊的存儲(chǔ)過(guò)程是()。

A、sp_helpB、sp_helpuserC、sp_helproleD、sp_helplogin

6、新建資料庫(kù)用戶的系統(tǒng)存儲(chǔ)過(guò)程是()。

A、sp_revokedbacce

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論