Associar logins de grupos do T-SQL ao grupo de segurança do AD
É necessário provisionar explicitamente o login do grupo do T-SQL Windows para cada grupo de segurança do AD que exija acesso ao servidor de banco de dados. Um usuário do AD, que faz parte de pelo menos um grupo de segurança do AD provisionado, terá acesso ao servidor de banco de dados.
nota
Esse login do T-SQL não pode mais ser autenticado usando uma autenticação baseada em senha.
Por exemplo, accounts-group é um grupo de segurança no AD. Se você quiser provisionar esse grupo de segurança no Babelfish, deverá usar o formato [corp\accounts-group].
-
Grupo de segurança do AD: accounts-group
-
Login do TSQL: [corp\accounts-group]
-
Perfil do PG equivalente para determinado login do TSQL: accounts-group@CORP.EXAMPLE.COM
Agora o administrador pode continuar criando o mapeamento entre o grupo de segurança do AD e o login do T-SQL por meio do endpoint do PostgreSQL pelo comando psql a seguir. Para ter mais informações sobre o uso de funções, consulte Usar funções da extensão pg_ad_mapping.
nota
O login do T-SQL deve ser especificado no formato login_name@FQDN ao adicionar o mapeamento. Os pesos são ignorados quando a conexão é feita por meio do endpoint do TDS. Para ter mais informações sobre o uso de pesos, consulte Conectar-se ao Babelfish via endpoint do PostgreSQL na porta do PostgreSQL.
postgres=>select pgadmap_set_mapping('accounts-group', 'accounts-group@CORP.EXAMPLE.COM', <SID>, <Weight>);
Para ter informações sobre como recuperar o SID do grupo de segurança do AD, consulte Recuperar o SID do grupo do Active Directory no PowerShell.
A tabela a seguir mostra um exemplo de mapeamento dos grupos de segurança do AD para logins do T-SQL:
| Grupos de segurança do AD | Logins do TSQL | Perfil do PG equivalente para determinado login do TSQL | 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)