Babelfish prend en charge les serveurs liés - 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.

Babelfish prend en charge les serveurs liés

Babelfish for Aurora Postgre SQL prend en charge les serveurs liés en utilisant l'SQLtds_fdwextension Postgre dans la version 3.1.0. Pour pouvoir utiliser des serveurs liés, vous devez installer l'extension tds_fdw. Pour plus d'informations sur l'extension tds_fdw, consultez Utilisation des wrappers de données étrangers pris en charge pour Amazon Aurora Postgre SQL pour Postgre SQL.

Installation de l'extension tds_fdw

Vous pouvez installer l'extension tds_fdw à l'aide des méthodes suivantes.

Utilisation CREATE EXTENSION depuis le point de terminaison Postgre SQL
  1. Connectez-vous à votre SQL instance de base de données Postgre sur la base de données Babelfish via le port Postgre. SQL Utilisez un compte qui possède le rôle rds_superuser.

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test --dbname=babelfish_db --password
  2. Installez l'extension tds_fdw. Il s'agit d'une procédure d'installation unique. Vous n'avez pas besoin de réinstaller lorsque le cluster de base de données redémarre.

    babelfish_db=> CREATE EXTENSION tds_fdw; CREATE EXTENSION
Appel d'une procédure sp_execute_postgresql stockée depuis le TDS point de terminaison

Babelfish prend en charge l'installation de l'extension tds_fdw en appelant la procédure sp_execute_postgresql de la version 3.3.0. Vous pouvez exécuter SQL des instructions Postgre depuis le SQL point de terminaison T sans quitter le port T. SQL Pour plus d’informations, consultez Travailler avec les procédures Postgre de Babelfish pour Aurora SQL.

  1. Connectez-vous à votre SQL instance de base de données Postgre sur la base de données Babelfish via le port T. SQL

    sqlcmd -S your-DB-instance.aws-region.rds.amazonaws.com -U test -P password
  2. Installez l'extension tds_fdw.

    1>EXEC sp_execute_postgresql N'CREATE EXTENSION tds_fdw'; 2>go

Fonctionnalités prises en charge

Babelfish prend en charge l'ajout de points de terminaison distants RDS pour SQL Server ou Babelfish pour Aurora SQL Postgre en tant que serveur lié. Vous pouvez également ajouter d'autres instances de SQL serveur distantes en tant que serveurs liés. Ensuite, utilisez OPENQUERY() pour récupérer des données à partir de ces serveurs liés. Depuis Babelfish version 3.2.0, les noms en quatre parties sont également pris en charge.

Les procédures stockées et les vues de catalogue suivantes sont prises en charge afin d'utiliser les serveurs liés.

Procédures stockées

  • sp_addlinkedserver : Babelfish ne prend pas en charge le paramètre @provstr.

  • sp_addlinkedsrvlogin

    • Vous devez fournir un nom d'utilisateur et un mot de passe distants explicites pour vous connecter à la source de données distante. Vous ne pouvez pas vous connecter avec les informations d'identification personnelles de l'utilisateur. Babelfish prend uniquement en charge @useself = false.

    • Babelfish ne prend pas en charge le paramètre @locallogin, car la configuration de l'accès au serveur distant spécifique à la connexion locale n'est pas prise en charge.

  • sp_linkedservers

  • sp_helplinkedsrvlogin

  • sp_dropserver

  • sp_droplinkedsrvlogin : Babelfish ne prend pas en charge le paramètre @locallogin, car la configuration de l'accès au serveur distant spécifique à la connexion locale n'est pas prise en charge.

  • sp_serveroption : Babelfish prend en charge les options de serveur suivantes :

    • query timeout (à partir de Babelfish version 3.2.0)

    • connect timeout (à partir de Babelfish version 3.3.0)

  • sp_testlinkedserver (à partir de Babelfish version 3.3.0)

  • sp_enum_oledb_providers (à partir de Babelfish version 3.3.0)

Affichages du catalogue

  • sys.servers

  • sys.linked_logins

Utilisation du chiffrement en transit pour la connexion

La connexion entre le serveur source Babelfish for Aurora Postgre et le SQL serveur distant cible utilise le chiffrement en transit (TLS/SSL), en fonction de la configuration de la base de données du serveur distant. Si le serveur distant n'est pas configuré pour le chiffrement, le serveur Babelfish qui émet la requête à la base de données distante revient au mode non chiffré.

Pour appliquer le chiffrement des connexions

Ajouter Babelfish en tant que serveur lié depuis Server SQL

Babelfish for Aurora Postgre SQL peut être ajouté en tant que serveur lié à partir d'un serveur. SQL Sur une base de données SQL Server, vous pouvez ajouter Babelfish en tant que serveur lié à l'aide du fournisseur de base de OLE données Microsoft pour ODBC :. MSDASQL

Il existe deux manières de configurer Babelfish en tant que serveur lié depuis un SQL serveur utilisant MSDASQL un fournisseur :

  • Fourniture d'une chaîne de ODBC connexion en tant que chaîne de fournisseur.

  • Indiquez le système DSN de source de ODBC données lors de l'ajout du serveur lié.

Limites

  • OPENQUERY() ne fonctionne que pour SELECT et ne fonctionne pas pourDML.

  • Les noms d'objets en quatre parties ne fonctionnent que pour la lecture et ne fonctionnent pas pour modifier la table distante. An UPDATE peut faire référence à une table distante dans la FROM clause sans la modifier.

  • L'exécution de procédures stockées sur les serveurs liés Babelfish n'est pas prise en charge.

  • La mise à niveau de la version majeure de Babelfish peut ne pas fonctionner si des objets dépendent de OPENQUERY() ou d'objets référencés par des noms en quatre parties. Vous devez vous assurer que tous les objets faisant référence à OPENQUERY() ou à des noms en quatre parties sont supprimés avant une mise à niveau de la version majeure.

  • Les types de données suivants ne fonctionnent pas comme prévu par rapport au serveur Babelfish distant : nvarchar(max)varchar(max)varbinary(max)binary(max) et time. Nous vous recommandons d'utiliser cette CAST fonction pour les convertir dans les types de données pris en charge.

Exemple

Dans l'exemple suivant, une SQL instance de Babelfish pour Aurora Postgre se connecte à une instance de RDS for SQL Server dans le cloud.

EXEC master.dbo.sp_addlinkedserver @server=N'rds_sqlserver', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'myserver.CB2XKFSFFMY7.US-WEST-2.RDS.AMAZONAWS.COM'; EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'rds_sqlserver',@useself=N'False',@locallogin=NULL,@rmtuser=N'username',@rmtpassword='password';

Lorsque le serveur lié est en place, vous pouvez utiliser un nom en T- SQL OPENQUERY () ou un nom standard en quatre parties pour faire référence à une table, à une vue ou à d'autres objets pris en charge sur le serveur distant :

SELECT * FROM OPENQUERY(rds_sqlserver, 'SELECT * FROM TestDB.dbo.t1'); SELECT * FROM rds_sqlserver.TestDB.dbo.t1;

Pour supprimer le serveur lié et toutes les connexions associées :

EXEC master.dbo.sp_dropserver @server=N'rds_sqlserver', @droplogins=N'droplogins';

Résolution des problèmes

Vous pouvez utiliser le même groupe de sécurité pour les serveurs source et distant afin de leur permettre de communiquer entre eux. Le groupe de sécurité doit autoriser uniquement le trafic entrant sur le TDS port (1433 par défaut) et l'adresse IP source du groupe de sécurité peut être définie comme identifiant du groupe de sécurité lui-même. Pour plus d'informations sur la définition des règles de connexion à une instance à partir d'une autre instance dotée du même groupe de sécurité, consultez Règles pour la connexion à des instances à partir d'une instance avec le même groupe de sécurité.

Si l'accès n'est pas configuré correctement, un message d'erreur similaire à l'exemple suivant s'affiche lorsque vous essayez d'interroger le serveur distant.

TDS client library error: DB #: 20009, DB Msg: Unable to connect: server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 110, OS Msg: Connection timed out, Level: 9