程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLServer數據庫安全規劃全攻略2

SQLServer數據庫安全規劃全攻略2

編輯:關於SqlServer

三、設置全局組

構造安全策略的下一個步驟是確定用戶應該屬於什麼組。通常,每一個組織或應用程序的用戶都可以按照他們對數據的特定訪問要求分成許多類別。例如,會計應用軟件的用戶一般包括:數據輸入操作員,數據輸入管理員,報表編寫員,會計師,審計員,財務經理等。每一組用戶都有不同的數據庫訪問要求。

控制數據訪問權限最簡單的方法是,對於每一組用戶,分別地為它創建一個滿足該組用戶權限要求的、域內全局有效的組。我們既可以為每一個應用分別創建組,也可以創建適用於整個企業的、涵蓋廣泛用戶類別的組。然而,如果你想要能夠精確地了解組成員可以做些什麼,為每一個應用程序分別創建組是一種較好的選擇。例如,在前面的會計系統中,我們應該創建Data Entry Operators、Accounting Data Entry Managers等組。請記住,為了簡化管理,最好為組取一個能夠明確表示出作用的名字。

除了面向特定應用程序的組之外,我們還需要幾個基本組。基本組的成員負責管理服務器。按照習慣,我們可以創建下面這些基本組:SQL Server Administrators,SQL Server Users,SQL Server DenIEd Users,SQL Server DB Creators,SQL Server Security Operators,SQL Server Database Security Operators,SQL Server Developers,以及 DB_Name Users(其中DB_Name是服務器上一個數據庫的名字)。當然,如果必要的話,你還可以創建其他組。

創建了全局組之後,接下來我們可以授予它們訪問SQL Server的權限。首先為SQL Server Users創建一個NT驗證的登錄並授予它登錄權限,把Master數據庫設置為它的默認數據庫,但不要授予它訪問任何其他數據庫的權限,也不要把這個登錄帳戶設置為任何服務器角色的成員。接著再為SQL Server DenIEd Users重復這個過程,但這次要拒絕登錄訪問。在SQL Server中,拒絕權限始終優先。創建了這兩個組之後,我們就有了一種允許或拒絕用戶訪問服務器的便捷方法。

為那些沒有直接在Sysxlogins系統表裡面登記的組授權時,我們不能使用Enterpris Managr,因為Enterprise Manager只允許我們從現有登錄名字的列表選擇,而不是域內所有組的列表。要訪問所有的組,請打開Query Analyzer,然後用系統存儲過程sp_addsrvrolemember以及sp_addrolemember進行授權。

對於操作服務器的各個組,我們可以用sp_addsrvrolemember存儲過程把各個登錄加入到合適的服務器角色:SQL Server Administrators成為Sysadmins角色的成員,SQL Server DB Creators成為Dbcreator角色的成員,SQL Server Security Operators成為Securityadmin角色的成員。注意sp_addsrvrolemember存儲過程的第一個參數要求是帳戶的完整路徑。例如,BigCo域的JoeS應該是bigco\joes(如果你想用本地帳戶,則路徑應該是server_name\joes)。

要創建在所有新數據庫中都存在的用戶,你可以修改Model數據庫。為了簡化工作,SQL Server自動把所有對Model數據庫的改動復制到新的數據庫。只要正確運用Model數據庫,我們無需定制每一個新創建的數據庫。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved