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_fdw
extension 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
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
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.
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
-Utest
-Ppassword
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
Si le serveur lié cible est une RDS instance de SQL serveur, défini
rds.force_ssl = on
pour l'instance de SQL serveur cible. Pour plus d'informations sur TLS la configuration de SSL RDS /for SQL Server, voir Utilisation SSL avec une instance de base de données Microsoft SQL ServerSi le serveur lié cible est un SQL cluster Babelfish pour Aurora Postgre, définissez
babelfishpg_tds.tds_ssl_encrypt = on
etssl = on
pour le serveur cible. Pour plus d'informations surSSL/TLS, consultezParamètres SSL Babelfish et connexions client.
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)
ettime
. 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