本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
利用 AD 安全性群組成員資格的權限
繼承伺服器層級權限
身為指定 AD 安全性群組成員的 AD 使用者將繼承授與對應 Windows 群組登入的伺服器層級權限。例如,考慮 accounts-group
AD 安全性群組,該群組被授與 Babelfish 上sysadmin
伺服器角色的成員資格。您可以使用下列命令繼承伺服器層級權限:
1>
ALTER SERVER ROLE sysadmin ADD MEMBER [corp\accounts-group];
因此,任何身為 accounts-group
AD 安全性群組成員的 Active Directory 使用者都會繼承與該sysadmin
角色相關聯的伺服器層級權限。這意味著corp\user1
,作為其成員之類的accounts-group
用戶現在將能夠在 Babelfish 中執行服務器級操作。
注意
若要執行伺服器層級DDLs,個別 AD 使用者的 Windows 登入必須存在。如需詳細資訊,請參閱限制。
繼承資料庫層級權限
若要授與資料庫層級權限,必須建立資料庫使用者並使用 Windows 群組登入對應。屬於指定 AD 安全性群組成員的 AD 使用者,將繼承授與該資料庫使用者的資料庫層級權限。在下列範例中,您可以看到 Windows 群組 [公司\ 帳戶群組] 的資料庫層級權限是如何指派的。
1>
CREATE DATABASE db1;2>
GO1>
USE db1;2>
GO Changed database context to 'db1'.1>
CREATE TABLE dbo.t1(a int);2>
GO
為 Windows 組登錄 [公司\ 帳戶組] 創建一個數據庫用戶 [公司\ 銷售組]。要執行此步驟,請使用身為系統管理員成員的登錄通過TDS端點進行連接。
1>
CREATE USER [corp\accounts-group] FOR LOGIN [corp\accounts-group];2>
GO
現在,以 AD 用戶用戶 1 的身份連接以檢查表 t1 的訪問權限。由於我們尚未授予數據庫級別權限,因此會導致權限被拒絕錯誤。
1>
SELECT * FROM dbo.t1;2>
GO Msg 33557097, Level 16, State 1, Server db-inst, Line 1 permission denied for table t1
授予SELECT資料表 t1 給資料庫使用者 [公司\ 帳戶-群組]。要執行此步驟,請使用系統管理員成員的登錄通過TDS端點進行連接。
1>
GRANT SELECT ON dbo.t1 TO [corp\accounts-group];2>
GO
以 AD 使用者使用者 1 的身分 Connect 以驗證存取權。
1>
SELECT * FROM dbo.t1;2>
GO a ----------- (0 rows affected)