Utilisation des bases de données SQL du serveur à l'aide de l'extension tds_fdw - Amazon Relational Database Service

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 des bases de données SQL du serveur à l'aide de l'extension tds_fdw

Vous pouvez utiliser l'SQLtds_fdwextension Postgre pour accéder aux bases de données qui prennent en charge le protocole tabular data stream (TDS), telles que les bases de données Sybase et Microsoft SQL Server. Ce wrapper de données étrangères vous permet de vous connecter depuis votre aux bases de données qui utilisent le TDS protocole, y compris Amazon pour RDS Microsoft Server. SQL Pour plus d'informations, consultez la documentation de tds-fdw/tds_fdw sur. GitHub

L'tds_fdwextension est prise en charge sur Amazon RDS pour les SQL versions 14.2, 13.6 et supérieures de Postgre.

Configuration de votre SQL base de données Aurora Postgre pour utiliser l'extension tds_fdw

Dans les procédures suivantes, vous trouverez un exemple de configuration et d'utilisation du cluster de base de tds_fdw données . Avant de pouvoir vous connecter à une base de données SQL Server en utilisanttds_fdw, vous devez obtenir les informations suivantes 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 à l'aide de 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 pour 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 1433 SQL du serveur. Le pour l'instance de base de données Postgre et l'SQLinstance de base de données RDS pour le SQL serveur doivent tous deux accéder au port 1433. Si l'accès n'est pas configuré correctement, le message d'erreur suivant s'affiche lorsque vous essayez d'interroger le Microsoft SQL Server :

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 se connecter à une base de données du serveur SQL
  1. Connectez-vous à votre instance de base de données Postgre L'SQLinstance à l'aide d'un compte ayant le rds_superuser rôle suivant :

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test –-password
  2. Installez l'extension tds_fdw :

    test=> CREATE EXTENSION tds_fdw; CREATE EXTENSION

Une fois l'extension installée sur votre pour SQL instance de base de données Postgre, vous configurez le serveur étranger.

Pour créer le serveur externe

Effectuez ces tâches sur le pour l'SQLinstance de base de données Postgre à l'aide d'un compte doté rds_superuser de privilèges.

  1. Créez un serveur étranger dans le pour l'instance de base de données Postgre SQL :

    test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing'); CREATE SERVER

    Pour accéder à ASCII des données non SQLServer secondaires, créez un lien serveur avec l'option character_set dans le  :

    test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing', character_set 'UTF-8'); CREATE SERVER
  2. Accordez des autorisations à un utilisateur qui n'a pas de privilèges de rôle rds_superuser, par exemple, user1 :

    test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
  3. Connectez-vous en tant qu'utilisateur1 et créez un mappage vers un utilisateur SQL du serveur :

    test=> CREATE USER MAPPING FOR user1 SERVER sqlserverdb OPTIONS (username 'sqlserveruser', password 'password'); CREATE USER MAPPING
  4. Créez une table étrangère liée à une table SQL de serveur :

    test=> CREATE FOREIGN TABLE mytab (a int) SERVER sqlserverdb OPTIONS (table 'MYTABLE'); CREATE FOREIGN TABLE
  5. Interrogez la table externe :

    test=> SELECT * FROM mytab; a --- 1 (1 row)

Utilisation du chiffrement en transit pour la connexion

La connexion entre et le SQL serveur utilise le chiffrement en transit (TLS/SSL) en fonction de la configuration de la base de données du SQL serveur. Si le SQL serveur n'est pas configuré pour le chiffrement, le RDS SQL client Postgre qui fait la demande à la base de données du SQL serveur revient à une version non chiffrée.

Vous pouvez appliquer le chiffrement pour la connexion aux RDS instances de base de données SQL du serveur en définissant le rds.force_ssl paramètre. Pour savoir comment procéder, consultez Forcer les connexions à votre instance de base de données à utiliser SSL. Pour plus d'informations sur la TLS configurationSSL/pour RDS for SQL Server, consultez la section Utilisation SSL avec une instance de base de données Microsoft SQL Server.