Authentification Kerberos avec Babelfish - 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 Kerberos avec Babelfish

La version SQL 15.2 de Babelfish pour Aurora Postgre prend en charge l'authentification auprès de votre cluster de base 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 base de données pour utiliser AWS Directory Service for Microsoft Active Directory pour l'authentification Kerberos. Pour plus d'informations, voir Qu'est-ce que AWS Directory Service? dans le AWS Directory Service Guide d'administration.

Configuration de l'authentification Kerberos

Le cluster de SQL base de données Babelfish for Aurora Postgre 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 SQL client Postgre à 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 Tabular Data Stream (TDS) peuvent être utilisées soit avec le TDS port soit avec le port SQL Postgre. Tout d'abord, le login qui peut utiliser Kerberos pour l'authentification doit être configuré depuis le TDS port avant d'être utilisé par les SQL utilisateurs T et les applications pour se connecter à une base de données Babelfish. Lors de la création de connexions Windows, les administrateurs peuvent fournir l'identifiant en utilisant le nom de DNS domaine ou le nom de BIOS domaine Net. Généralement, le BIOS domaine Net est le sous-domaine du nom de DNS domaine. Par exemple, si le nom de DNS domaine estCORP.EXAMPLE.COM, le BIOS domaine Net peut êtreCORP. Si le format de nom de BIOS domaine Net est fourni pour une connexion, un mappage doit exister vers le nom de DNS domaine.

Gestion du mappage d'un nom de BIOS DNS domaine Net à un nom de domaine

Pour gérer les mappages entre le nom de BIOS domaine Net et le nom de DNS domaine, 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 le réseau BIOS et le nom de DNS domaine, utilisez la procédure stockée dans le système fournie par Babelfish. babelfish_add_domain_mapping_entry Les deux arguments doivent avoir une valeur valide et ne le sont pasNULL.

EXEC babelfish_add_domain_mapping_entry 'netbios_domain_name', 'fully_qualified_domain_name'

L'exemple suivant montre comment créer le mappage entre le BIOS nom réseau CORP et le nom DNS de domaineCORP. 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 BIOS nom du réseauCORP.

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 réseau BIOS et le nom de DNS domaine, 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 TDS point de terminaison à l'aide d'un identifiant 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 BIOS domaine Net CORP et le nom DNS de domaineCORP. EXAMPLE. COM. S'il n'y a pas de mappage, vous devez fournir le nom de DNS domaine [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 ALTER LOGIN commande 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'un identifiant.

Note

Toute la gestion des mots de passe est effectuée via AWS Directory Service, la ALTER LOGIN commande 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 pour Aurora Postgre SQL avec l'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 depuis leurs applications clientes pour accéder au SQL serveur Babelfish for Aurora Postgre sur le port. TDS

Connexion à Babelfish pour Aurora Postgre SQL sur le port Postgre avec l'authentification Kerberos SQL

Vous pouvez utiliser les connexions créées à partir du TDS port avec le TDS port ou le port PostgreSQL. Cependant, Postgre SQL utilise par défaut des comparaisons entre majuscules et minuscules pour les noms d'utilisateur. Pour qu'Aurora Postgre interprète les noms SQL d'utilisateur Kerberos sans distinction majuscules/minuscules, vous devez définir le krb_caseins_users paramètre 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 connexion au format <login@ DNS domain name> dans les applications clientes Postgre. SQL Vous ne pouvez pas utiliser le format < nom de DNS domaine \ login>.

Erreurs fréquentes

Vous pouvez configurer les relations d'approbation des forêts entre votre Microsoft Active Directory local et le AWS Managed Microsoft AD. Pour plus d'informations, voir Création d'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 TDS client ne parvient pas à mettre en cache le ticket de service pour le point de terminaison fourniURL. Pour plus d'informations, consultez Connexion avec Kerberos.