IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)MSSQL → SQL Server權(quán)限的分配管理

SQL Server權(quán)限的分配管理

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)

SQL Server權(quán)限分配是SQL Server安全策略的重要組成部分,下面就對(duì)SQL Server權(quán)限的分配管理作詳細(xì)的介紹,希望對(duì)您能有所幫助。

允許數(shù)據(jù)庫(kù)訪問(wèn)

在數(shù)據(jù)庫(kù)內(nèi)部,與迄今為止我們對(duì)登錄驗(yàn)證的處理方式不同,我們可以把SQL Server權(quán)限分配給角色而不是直接把它們分配給全局組。這種能力使得我們能夠輕松地在安全策略中使用SQL Server驗(yàn)證的登錄。即使你從來(lái)沒(méi)有想要使用SQL Server登錄帳戶,本文仍舊建議分配權(quán)限給角色,因?yàn)檫@樣你能夠?yàn)槲磥?lái)可能出現(xiàn)的變化做好準(zhǔn)備。

創(chuàng)建了數(shù)據(jù)庫(kù)之后,我們可以用sp_grantdbaccess存儲(chǔ)過(guò)程授權(quán)DB_Name Users組訪問(wèn)它。但應(yīng)該注意的是,與sp_grantdbaccess對(duì)應(yīng)的sp_denydbaccess存儲(chǔ)過(guò)程并不存在,也就是說(shuō),你不能按照拒絕對(duì)服務(wù)器訪問(wèn)的方法拒絕對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。如果要拒絕數(shù)據(jù)庫(kù)訪問(wèn),我們可以創(chuàng)建另外一個(gè)名為DB_Name Denied Users的全局組,授權(quán)它訪問(wèn)數(shù)據(jù)庫(kù),然后把它設(shè)置為db_denydatareader以及db_denydatawriter角色的成員。注意SQL語(yǔ)句權(quán)限的分配,這里的角色只限制對(duì)對(duì)象的訪問(wèn),但不限制對(duì)DDL(Data Definition Language,數(shù)據(jù)定義語(yǔ)言)命令的訪問(wèn)。

正如對(duì)登錄過(guò)程的處理,如果訪問(wèn)標(biāo)記中的任意SID已經(jīng)在Sysusers系統(tǒng)表登記,SQL將允許用戶訪問(wèn)數(shù)據(jù)庫(kù)。因此,我們既可以通過(guò)用戶的個(gè)人NT帳戶SID授權(quán)用戶訪問(wèn)數(shù)據(jù)庫(kù),也可以通過(guò)用戶所在的一個(gè)(或者多個(gè))組的SID授權(quán)。為了簡(jiǎn)化管理,我們可以創(chuàng)建一個(gè)名為DB_Name Users的擁有數(shù)據(jù)庫(kù)訪問(wèn)SQL Server權(quán)限的全局組,同時(shí)不把訪問(wèn)權(quán)授予所有其他的組。這樣,我們只需簡(jiǎn)單地在一個(gè)全局組中添加或者刪除成員就可以增加或者減少數(shù)據(jù)庫(kù)用戶。

分配SQL Server權(quán)限

實(shí)施安全策略的最后一個(gè)步驟是創(chuàng)建用戶定義的數(shù)據(jù)庫(kù)角色,然后分配權(quán)限。完成這個(gè)步驟最簡(jiǎn)單的方法是創(chuàng)建一些名字與全局組名字配套的角色。例如對(duì)于前面例子中的會(huì)計(jì)系統(tǒng),我們可以創(chuàng)建Accounting Data Entry Operators、Accounting Data Entry Managers之類的角色。由于會(huì)計(jì)數(shù)據(jù)庫(kù)中的角色與帳務(wù)處理任務(wù)有關(guān),你可能想要縮短這些角色的名字。然而,如果角色名字與全局組的名字配套,你可以減少混亂,能夠更方便地判斷出哪些組屬于特定的角色。

創(chuàng)建好角色之后就可以分配權(quán)限。在這個(gè)過(guò)程中,我們只需用到標(biāo)準(zhǔn)的GRANT、REVOKE和DENY命令。但應(yīng)該注意DENY權(quán)限,這個(gè)權(quán)限優(yōu)先于所有其他權(quán)限。如果用戶是任意具有DENY權(quán)限的角色或者組的成員,SQL Server將拒絕用戶訪問(wèn)對(duì)象。

接下來(lái)我們就可以加入所有SQL Server驗(yàn)證的登錄。用戶定義的數(shù)據(jù)庫(kù)角色可以包含SQL Server登錄以及NT全局組、本地組、個(gè)人帳戶,這是它最寶貴的特點(diǎn)之一。用戶定義的數(shù)據(jù)庫(kù)角色可以作為各種登錄的通用容器,我們使用用戶定義角色而不是直接把SQL Server權(quán)限分配給全局組的主要原因就在于此。

由于內(nèi)建的角色一般適用于整個(gè)數(shù)據(jù)庫(kù)而不是單獨(dú)的對(duì)象,因此這里建議你只使用兩個(gè)內(nèi)建的數(shù)據(jù)庫(kù)角色,,即db_securityadmin和db_owner。其他內(nèi)建數(shù)據(jù)庫(kù)角色,例如db_datareader,它授予對(duì)數(shù)據(jù)庫(kù)里面所有對(duì)象的SELECT權(quán)限。雖然你可以用db_datareader角色授予SELECT權(quán)限,然后有選擇地對(duì)個(gè)別用戶或組拒絕SELECT權(quán)限,但使用這種方法時(shí),你可能忘記為某些用戶或者對(duì)象設(shè)置權(quán)限。一種更簡(jiǎn)單、更直接而且不容易出現(xiàn)錯(cuò)誤的方法是為這些特殊的用戶創(chuàng)建一個(gè)用戶定義的角色,然后只把那些用戶訪問(wèn)對(duì)象所需要的權(quán)限授予這個(gè)用戶定義的角色。

關(guān)鍵詞標(biāo)簽:SQL Server

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系

相關(guān)下載

    人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法