

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AD 安全群組成員資格的使用權限
<a name="babelfish-kerberos-securityad-privileges"></a>

## 繼承伺服器層級權限
<a name="babelfish-kerberos-securityad-inheritpriv-server"></a>

 屬於指定 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 中執行伺服器層級操作。

**注意**  
 若要執行伺服器層級 DDL，個別 AD 使用者的 Windows 登入必須存在。如需詳細資訊，請參閱[限制](babelfish-kerberos-securityad-limitations.md)。

## 繼承資料庫層級權限
<a name="babelfish-kerberos-securityad-inheritpriv-database"></a>

 若要授予資料庫層級權限，必須使用 Windows 群組登入來建立和對應資料庫使用者。屬於指定 AD 安全群組成員的 AD 使用者會繼承資料庫層級權限，這些權限會授予至該資料庫使用者。在下列範例中，您可以查看如何指派 Windows 群組 [corp\\accounts-group] 的資料庫層級權限。

```
1> CREATE DATABASE db1; 
2> GO
1> 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 使用者 user1 身分進行連線，以檢查資料表 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 使用者 user1 身分進行連線以驗證存取權。

```
1> SELECT * FROM dbo.t1;
2> GO
a
-----------

(0 rows affected)
```