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.
Utilisation de bases de données SQL Server avec l'extension tds_fdw
Vous pouvez utiliser l'extension PostgreSQL tds_fdw pour accéder aux bases de données qui prennent en charge le protocole TDS (tabular data stream), comme les bases de données Sybase et Microsoft SQL Server. Cet encapsuleur de données externes vous permet de vous connecter à partir de votre ou de votre cluster de base de données PostgreSQL à des bases de données qui utilisent le protocole TDS, y compris Amazon RDS for Microsoft SQL Server. Pour plus d'informations, consultez la documentation de tds-fdw/tds_fdw
L'extension tds_fdw est prise en charge sur Amazon Aurora PostgreSQL version 13.6 et versions ultérieures.
Configuration de votre base de données Aurora PostgreSQL pour utiliser l'extension tds_fdw
Dans les procédures suivantes, vous trouverez un exemple de configuration et d'utilisation de tds_fdw avec un cluster de base de données Aurora PostgreSQL. Avant de pouvoir vous connecter à une base de données SQL Server à l'aide de tds_fdw, vous devez obtenir les détails suivants pour l'instance :
Nom d'hôte ou point de terminaison. Pour une instance de base de données RDS for SQL Server, vous pouvez trouver le point de terminaison en utilisant la console. Sélectionnez l'onglet Connectivité et sécurité et regardez dans la section « Point de terminaison et port ».
Numéro de port. Le numéro de port par défaut de Microsoft SQL Server est 1433.
Nom du moteur de la base de données. L'identifiant de la base de données.
Vous devez également fournir un accès au groupe de sécurité ou à la liste de contrôle d'accès (ACL) pour le port du serveur SQL 1433. Le cluster de base de données Aurora PostgreSQL et l'instance de base de données RDS for SQL Server ont tous deux besoin d'accéder au port 1433. Si l'accès n'est pas configuré correctement, lorsque vous essayez d'interroger le serveur Microsoft SQL, le message d'erreur suivant s'affiche :
ERROR: DB-Library error: DB #: 20009, DB Msg: Unable to connect:
Adaptive Server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 0, OS Msg: Success, Level: 9
Pour utiliser tds_fdw pour vous connecter à une base de données SQL Server
Connectez-vous à votre instance principale du cluster de base de données Aurora PostgreSQL en utilisant un compte qui dispose du rôle
rds_superuser:psql --host=your-cluster-name-instance-1.aws-region.rds.amazonaws.com --port=5432 --username=test –-passwordInstallez l'extension
tds_fdw:test=>CREATE EXTENSION tds_fdw;CREATE EXTENSION
Une fois l'extension installée sur votre cluster de base de données Aurora PostgreSQL , vous configurez le serveur externe.
Pour créer le serveur externe
Effectuez ces tâches sur le cluster de base de données Aurora PostgreSQL en utilisant un compte qui dispose de privilèges rds_superuser.
Créer un serveur externe dans le cluster de base de données Aurora PostgreSQL :
test=>CREATE SERVERsqlserverdbFOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing');CREATE SERVERPour accéder à des données non-ASCII côté SQL Server, créez un lien vers le serveur avec l'option character_set dans le cluster de base de données Aurora PostgreSQL :
test=>CREATE SERVERsqlserverdbFOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing', character_set'UTF-8');CREATE SERVERAccordez des autorisations à un utilisateur qui n'a pas de privilèges de rôle
rds_superuser, par exemple,user1:test=>GRANT USAGE ON FOREIGN SERVERsqlserverdbTOuser1;Connectez-vous en tant que user1 et créez un mappage vers un utilisateur SQL Server :
test=>CREATE USER MAPPING FOR user1 SERVERsqlserverdbOPTIONS (username 'sqlserveruser', password 'password');CREATE USER MAPPINGCréez une table externe liée à une table SQL Server :
test=>CREATE FOREIGN TABLE mytab (a int) SERVERsqlserverdbOPTIONS (table 'MYTABLE');CREATE FOREIGN TABLEInterrogez la table externe :
test=>SELECT * FROM mytab;a --- 1 (1 row)
Utilisation du chiffrement en transit pour la connexion
La connexion d'Aurora PostgreSQL à SQL Server utilise le chiffrement en transit (TLS/SSL) selon la configuration de la base de données SQL Server. Si le serveur SQL n'est pas configuré pour le chiffrement, le client RDS for PostgreSQL qui émet la requête à la base de données du serveur SQL revient au mode non chiffré.
Vous pouvez renforcer le chiffrement de la connexion aux instances de base de données RDS for SQL Server en définissant le paramètre rds.force_ssl. Pour savoir comment procéder, consultez Forcer les connexions à votre instance de base de données pour utiliser SSL. Pour plus d'informations sur la configuration SSL/TLS pour RDS for SQL Server, consultez Utilisation de SSL avec une instance DB Microsoft SQL Server.