

# Conexión a Babelfish a través del punto de conexión de PostgreSQL en el puerto PostgreSQL
<a name="babelfish-kerberos-securityad-connect-pgendpoint"></a>

Puede utilizar inicios de sesión de grupo creados desde el puerto TDS para conectarse también a través del puerto PostgreSQL. Para conectarse a través del puerto PostgreSQL, debe especificar el nombre del usuario de AD en el formato `<ad_username@FQDN>` desde las aplicaciones cliente de PostgreSQL. No puede utilizar el formato `<DNS domain name\ad_username>`.

De forma predeterminada, PostgreSQL usa en los nombres de usuario comparaciones que distinguen entre mayúsculas y minúsculas. Para que Aurora PostgreSQL interprete los nombres de usuario de Kerberos sin distinción entre mayúsculas y minúsculas, debe configurar el parámetro krb\_caseins\_users como verdadero en el grupo de parámetros personalizado del clúster de Babelfish. Este parámetro está establecido en falso de forma predeterminada. Para obtener más información, consulte [Configuración del clúster de base de datos de Aurora PostgreSQL para nombres de usuario que no distinguen mayúsculas de minúsculas](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins.set-case-insentive). 

## Diferencias de comportamiento entre los puntos de conexión de T-SQL y PostgreSQL cuando un usuario de AD forma parte de varios grupos
<a name="babelfish-kerberos-securityad-diff-tsql-pg"></a>

Tenga en cuenta que user1 de AD forma parte de dos grupos de seguridad de AD ([corp\\accounts-group] y [corp\\sales-group]) y que el administrador de base de datos ha configurado la asignación de usuarios de la siguiente manera.

```
postgres=> select * from pgadmap_read_mapping();
            
ad_sid       | pg_role                         | weight | ad_grp 
-------------+---------------------------------+--------+---------------
S-1-5-67-980 | accounts-group@CORP.EXAMPLE.COM | 7      | accounts-group
S-1-2-34-560 | sales-group@CORP.EXAMPLE.COM    | 10     | sales-group
(2 rows)
```

Si el usuario se conecta desde el punto de conexión de T-SQL, heredará durante la autorización los privilegios de todos los inicios de sesión de T-SQL asociados. En este ejemplo, user1 heredará la unión de privilegios del inicio de sesión de ambos grupos T-SQL y se ignorarán las ponderaciones. Esto está en consonancia con el comportamiento estándar de T-SQL. 

Sin embargo, si el mismo usuario se conecta desde el punto de conexión de PostgreSQL, solo puede heredar los privilegios de un inicio de sesión de T-SQL asociado, el que tenga la ponderación más alta. Si a los dos inicios de sesión de grupos T-SQL se les asignase la misma ponderación, el usuario de AD heredaría los privilegios del inicio de sesión T-SQL correspondiente a la asignación que se haya efectuado más recientemente. Para PostgreSQL, lo recomendable es especificar ponderaciones que reflejen los permisos y privilegios relativos de los roles de base de datos individuales, a fin de evitar la ambigüedad. En el siguiente ejemplo, user1 se ha conectado a través del punto de conexión de PSQL y ha heredado solo los privilegios de los grupos de ventas.

```
babelfish_db=> select session_user, current_user;

   session_user               |   current_user
------------------------------+---------------------------
 sales-group@CORP.EXAMPLE.COM | sales-group@CORP.EXAMPLE.COM
(1 row)


babelfish_db=> select principal, gss_authenticated from pg_stat_gssapi where pid = pg_backend_pid();

     principal          | gss_authenticated
------------------------+-------------------
 user1@CORP.EXAMPLE.COM | t
(1 row)
```