本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 群組 【corp\accounts-group】 的資料庫層級權限。
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 群組登入 【corp\accounts-group】 建立資料庫使用者 【corp\sales-group】。若要執行此步驟,請使用 sysadmin 成員的登入來透過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
在資料表 t1 SELECT上授予資料庫使用者 【corp\accounts-group】。若要執行此步驟,請使用 sysadmin 成員的登入來透過TDS端點連線。
1>
GRANT SELECT ON dbo.t1 TO [corp\accounts-group];2>
GO
以 AD 使用者身分連線1 以驗證存取權。
1>
SELECT * FROM dbo.t1;2>
GO a ----------- (0 rows affected)