Asignación de inicios de sesión de grupos T-SQL con grupos de seguridad de AD
Debe proporcionar explícitamente el inicio de sesión grupal de Windows de T-SQL para cada grupo de seguridad de AD que requiera acceso al servidor de base de datos. Un usuario de AD que forme parte de al menos un grupo de seguridad de AD aprovisionado tendrá acceso al servidor de la base de datos.
nota
Este inicio de sesión de T-SQL ya no se puede autenticar mediante una autenticación basada en contraseñas.
Por ejemplo, accounts-group es un grupo de seguridad de AD y, si quisiese aprovisionar este grupo de seguridad en Babelfish, debería usar el formato [corp\accounts-group].
-
Grupo de seguridad de AD: accounts-group
-
Inicio de sesión en TSQL: [corp\accounts-group]
-
Rol PG equivalente para un inicio de sesión de TSQL determinado: accounts-group@CORP.EXAMPLE.COM
Ahora, el administrador puede crear la asignación entre el grupo de seguridad de AD y el inicio de sesión de T-SQL desde el punto de conexión de PostgreSQL mediante el siguiente comando psql. Para obtener más información sobre el uso de la función, consulte Uso de las funciones de la extensión pg_ad_mapping.
nota
El inicio de sesión de T-SQL debe especificarse en el formato login_name@FQDN al añadir la asignación. Al conectarse a través del punto de conexión TDS, las ponderaciones se ignoran. Para obtener más información sobre el uso de ponderaciones, consulte Conexión a Babelfish a través del punto de conexión de PostgreSQL en el puerto PostgreSQL.
postgres=>select pgadmap_set_mapping('accounts-group', 'accounts-group@CORP.EXAMPLE.COM', <SID>, <Weight>);
Para obtener información sobre cómo recuperar el SID del grupo de seguridad de AD, consulte Recuperación del SID del grupo de Active Directory en PowerShell.
En la siguiente tabla se muestra un ejemplo de asignación desde grupos de seguridad de AD a inicios de sesión T-SQL:
| Grupos de seguridad de AD | Inicios de sesión de TSQL | Rol PG equivalente para un inicio de sesión de TSQL determinado | Peso |
|---|---|---|---|
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)