将 T-SQL 组登录名与 AD 安全组进行映射 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 T-SQL 组登录名与 AD 安全组进行映射

您需要为每个要求访问数据库服务器的 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 角色 权重

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)