本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AD 安全群組對應 T-SQL 群組登入
您需要為每個需要存取資料庫伺服器的 AD 安全群組明確佈建 T-SQL Windows 群組登入。屬於至少一個佈建 AD 安全群組的 AD 使用者將可存取資料庫伺服器。
注意
此 T-SQL 登入無法再使用密碼型身分驗證進行身分驗證。
例如,accounts-group 是 AD 中的安全群組,如果您想要在 Babelfish 中佈建此安全群組,則必須使用格式 [corp\accounts-group]。
-
AD 安全群組:accounts-group
-
TSQL 登入:[corp\accounts-group]
-
指定 TSQL 登入的同等 PG 角色:accounts-group@CORP.EXAMPLE.COM
管理員現在可以繼續透過下列 psql 命令,從 PostgreSQL 端點建立 AD 安全群組和 T-SQL 登入之間的對應。如需函數使用的詳細資訊,請參閱使用 pg_ad_mapping 延伸模組中的函數。
注意
新增對應時,應以 login_name@FQDN 格式指定 T-SQL 登入。透過 TDS 端點進行連線時,會忽略權重。如需權重使用的詳細資訊,請參閱透過 PostgreSQL 連接埠上的 PostgreSQL 端點連線至 Babelfish。
postgres=>select pgadmap_set_mapping('accounts-group', 'accounts-group@CORP.EXAMPLE.COM', <SID>, <Weight>);
如需擷取 AD 安全群組 SID 的資訊,請參閱在 PowerShell 中擷取 Active Directory 群組 SID。
下表顯示從 AD 安全群組到 T-SQL 登入的範例對應:
| AD 安全群組 | TSQL 登入 | 指定 TSQL 登入的同等 PG 角色 | Weight (粗細) |
|---|---|---|---|
accounts-group |
[corp\accounts-group] |
accounts-group@CORP.EXAMPLE.COM |
7 |
sales-group |
[corp\sales-group] |
sales-group@CORP.EXAMPLE.COM |
10 |
dev-group |
[corp\dev-group] |
dev-group@CORP.EXAMPLE.COM |
7 |
postgres=> select admap.ad_sid, admap.ad_grp, lgn.orig_loginname, lgn.rolname, admap.weight from pgadmap_read_mapping() as admap, sys.babelfish_authid_login_ext as lgn where admap.pg_role = lgn.rolname; ad_sid | ad_grp | orig_loginname | rolname | weight --------------+----------------+---------------------+---------------------------------+-------- S-1-5-67-890 | accounts-group | corp\accounts-group | accounts-group@CORP.EXAMPLE.COM | 7 S-1-2-34-560 | sales-group | corp\sales-group | sales-group@CORP.EXAMPLE.COM | 10 S-1-8-43-612 | dev-group | corp\dev-group | dev-group@CORP.EXAMPLE.COM | 7 (7 rows)