Authentification d'une base de données avec Babelfish for Aurora PostgreSQL - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Authentification d'une base de données avec Babelfish for Aurora PostgreSQL

Babelfish for Aurora PostgreSQL prend en charge deux façons d'authentifier les utilisateurs d'une base de données. L'authentification par mot de passe est disponible par défaut pour tous les clusters de bases de données Babelfish. Vous pouvez également ajouter l'authentification Kerberos pour le même cluster de bases de données.

Authentification par mot de passe avec Babelfish

Babelfish for Aurora PostgreSQL prend en charge l'authentification par mot de passe. Les mots de passe sont stockés sous forme chiffrée sur le disque. Pour en savoir plus sur l'authentification sur un cluster Aurora PostgreSQL, consultez Sécurité avec Amazon Aurora PostgreSQL.

Vous pouvez être invité à fournir des informations d'identification chaque fois que vous vous connectez à Babelfish. Tout utilisateur migré vers ou créé sur Aurora PostgreSQL peut utiliser les mêmes informations d'identification sur le port SQL Server et sur le port PostgreSQL. Babelfish n'applique aucune politique de mot de passe, mais nous vous invitons à suivre les recommandations ci-dessous :

  • Exiger un mot de passe complexe d'au moins huit (8) caractères.

  • Appliquer une politique d'expiration des mots de passe.

Pour consulter la liste complète des utilisateurs de la base de données, utilisez la commande SELECT * FROM pg_user;.

Authentification Kerberos avec Babelfish

La version 15.2 de Babelfish for Aurora PostgreSQL prend en charge l'authentification auprès de votre cluster de bases de données à l'aide de Kerberos. Cette méthode vous permet d'utiliser l'authentification Microsoft Windows pour authentifier les utilisateurs lorsqu'ils se connectent à votre base de données Babelfish. Pour ce faire, vous devez d'abord configurer votre cluster de bases de données afin qu'il utilise AWS Directory Service for Microsoft Active Directory pour l'authentification Kerberos. Pour plus d'informations, consultez Qu'est-ce qu'AWS Directory Service ? dans le Guide de l'utilisateur AWS Directory Service.

Configuration de l'authentification Kerberos

Le cluster de bases de données Babelfish for Aurora PostgreSQL peut se connecter via deux ports différents, mais la configuration de l'authentification Kerberos est un processus unique. Par conséquent, vous devez d'abord configurer l'authentification Kerberos pour votre cluster de bases de données. Pour plus d'informations, consultez Configuration de l'authentification Kerberos. Une fois la configuration terminée, assurez-vous de pouvoir vous connecter à un client PostgreSQL à l'aide de Kerberos. Pour plus d'informations, consultez Connexion avec l'authentification Kerberos.

Connexion et mise en service des utilisateurs dans Babelfish

Les connexions Windows créées à partir du port TDS (Tabular Data Stream) peuvent être utilisées avec le port TDS ou le port PostgreSQL. Tout d'abord, la connexion qui peut utiliser Kerberos pour l'authentification doit être provisionnée à partir du port TDS avant d'être utilisée par les utilisateurs et les applications T-SQL pour se connecter à une base de données Babelfish. Lors de la création de connexions Windows, les administrateurs peuvent fournir la connexion en utilisant le nom de domaine DNS ou le nom de domaine NetBIOS. Généralement, le domaine NetBIOS est le sous-domaine du nom de domaine DNS. Par exemple, si le nom de domaine DNS est CORP.EXAMPLE.COM, le domaine NetBIOS peut être CORP. Si le format du nom de domaine NetBIOS est fourni pour une connexion, un mappage doit exister avec le nom de domaine DNS.

Gestion du mappage entre le nom de domaine NetBIOS et le nom de domaine DNS

Pour gérer les mappages entre le nom de domaine NetBIOS et le nom de domaine DNS, Babelfish fournit des procédures stockées dans le système pour ajouter, supprimer et tronquer des mappages. Seul un utilisateur doté d'un rôle sysadmin peut exécuter ces procédures.

Pour créer un mappage entre un nom de domaine NetBIOS et DNS, utilisez la procédure babelfish_add_domain_mapping_entry stockée dans le système fournie par Babelfish. Les deux arguments doivent avoir une valeur valide et ne pas être NULL.

EXEC babelfish_add_domain_mapping_entry 'netbios_domain_name', 'fully_qualified_domain_name'

L'exemple suivant montre comment créer le mappage entre le nom NetBIOS CORP et le nom de domaine DNS CORP.EXAMPLE.COM.

EXEC babelfish_add_domain_mapping_entry 'corp', 'corp.example.com'

Pour supprimer une entrée de mappage existante, utilisez la procédure babelfish_remove_domain_mapping_entry stockée dans le système.

EXEC babelfish_remove_domain_mapping_entry 'netbios_domain_name'

L'exemple suivant montre comment supprimer le mappage pour le nom NetBIOS CORP.

EXEC babelfish_remove_domain_mapping_entry 'corp'

Pour supprimer une entrée de mappage existante, utilisez la procédure babelfish_remove_domain_mapping_entry stockée dans le système :

EXEC babelfish_truncate_domain_mapping_table

Pour afficher tous les mappages entre le nom de domaine NetBIOS et DNS, utilisez la requête suivante.

SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;

Gestion des connexions

Créer des connexions

Connectez-vous à la base de données via le point de terminaison TDS à l'aide d'une connexion disposant des autorisations appropriées. Si aucun utilisateur de la base de données n'a été créé pour la connexion, celle-ci est mappée à l'utilisateur invité. Si l'utilisateur invité n'est pas activé, la tentative de connexion échoue.

Créez une connexion Windows à l'aide de la requête suivante. L'option FROM WINDOWS permet l'authentification avec Active Directory.

CREATE LOGIN login_name FROM WINDOWS [WITH DEFAULT_DATABASE=database]

L'exemple suivant montre comment créer une connexion pour l'utilisateur Active Directory [corp\test1] avec la base de données par défaut db1.

CREATE LOGIN [corp\test1] FROM WINDOWS WITH DEFAULT_DATABASE=db1

Cet exemple suppose qu'il existe un mappage entre le domaine NetBIOS CORP et le nom de domaine DNS CORP.EXAMPLE.COM. S'il n'y a aucun mappage, vous devez fournir le nom de domaine DNS [CORP.EXAMPLE.COM\test1].

Note

Les connexions basées sur les utilisateurs Active Directory sont limitées à des noms de moins de 21 caractères.

Supprimer la connexion

Pour supprimer une connexion, utilisez la même syntaxe que pour n'importe quelle connexion, comme indiqué dans l'exemple suivant :

DROP LOGIN [DNS domain name\login]
Modifier la connexion

Pour modifier une connexion, utilisez la même syntaxe que pour n'importe quelle connexion, comme dans l'exemple suivant :

ALTER LOGIN [DNS domain name\login] { ENABLE|DISABLE|WITH DEFAULT_DATABASE=[master] }

La commande ALTER LOGIN prend en charge des options limitées pour les connexions Windows, notamment les suivantes :

  • DISABLE : pour désactiver une connexion. Vous ne pouvez pas utiliser une connexion désactivée pour vous authentifier.

  • ENABLE : pour activer une connexion désactivée.

  • DEFAULT_DATABASE : pour modifier la base de données par défaut d'une connexion.

Note

Toute la gestion des mots de passe est effectuée via AWS Directory Service. La commande ALTER LOGIN n'autorise donc pas les administrateurs de base de données à modifier ou à définir des mots de passe pour les connexions Windows.

Connexion à Babelfish for Aurora PostgreSQL avec une authentification Kerberos

En général, les utilisateurs de base de données qui s'authentifient à l'aide de Kerberos le font à partir de leurs machines clientes. Ces machines sont membres du domaine Active Directory. Ils utilisent l'authentification Windows à partir de leurs applications clientes pour accéder au serveur Babelfish for Aurora PostgreSQL sur le port TDS.

Connexion à Babelfish for Aurora PostgreSQL sur le port PostgreSQL avec une authentification Kerberos

Vous pouvez utiliser des connexions créées à partir du port TDS avec le port TDS ou le port PostgreSQL. Cependant, PostgreSQL utilise par défaut des comparaisons sensibles à la casse pour les noms d'utilisateur. Pour qu'Aurora PostgreSQL interprète les noms d'utilisateur Kerberos sans sensibles à la casse, vous devez définir le paramètre krb_caseins_users comme true dans le groupe de paramètres du cluster Babelfish personnalisé. Ce paramètre est défini sur false par défaut. Pour plus d'informations, consultez Configuration des noms d'utilisateur insensibles à la casse. En outre, vous devez spécifier le nom d'utilisateur de la connexion sous le format <login@DNS domain name> depuis les applications clientes PostgreSQL. Vous ne pouvez pas utiliser le format <DNS domain name\login>.

Erreurs fréquentes

Vous pouvez configurer une relation d'approbation de forêt entre votre annuaire Microsoft Active Directory sur site et l'AWS Managed Microsoft AD. Pour plus d'informations, consultez Créer une relation de confiance. Vous devez ensuite vous connecter à l'aide d'un point de terminaison spécifique au domaine spécialisé au lieu d'utiliser le domaine Amazon rds.amazonaws.com dans le point de terminaison hôte. Si vous n'utilisez pas le point de terminaison spécifique au domaine approprié, il se peut que vous receviez l'erreur suivante :

Error: “Authentication method "NTLMSSP" not supported (Microsoft SQL Server, Error: 514)"

Cette erreur se produit lorsque le client TDS ne peut pas mettre en cache le ticket de service pour l'URL de point de terminaison fournie. Pour plus d'informations, consultez Connexion avec Kerberos.