Babelfish unterstützt verknüpfte Server - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Babelfish unterstützt verknüpfte Server

Babelfish for Aurora Postgre SQL unterstützt verknüpfte Server mithilfe der SQL tds_fdw Postgre-Erweiterung in Version 3.1.0. Sie müssen die Erweiterung tds_fdw installieren, um mit verknüpften Servern arbeiten zu können. Weitere Informationen über die Erweiterung tds_fdw finden Sie unter .

Installieren der Erweiterung tds_fdw

Sie können die Erweiterung tds_fdw mit den folgenden Methoden installieren.

CREATEEXTENSIONVerwendung vom SQL Postgre-Endpunkt aus
  1. Connect zu Ihrer SQL Postgre-DB-Instance in der Babelfish-Datenbank im Postgre-Port her. SQL Verwenden Sie ein Konto, das über die Rolle rds_superuser verfügt.

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test --dbname=babelfish_db --password
  2. Installieren Sie die tds_fdw-Erweiterung. Dies ist ein einmaliger Installationsvorgang. Sie müssen keine erneute Installation vornehmen, wenn der DB-Cluster neu gestartet wird.

    babelfish_db=> CREATE EXTENSION tds_fdw; CREATE EXTENSION
Gespeicherte Prozedur vom Endpunkt aus aufrufen sp_execute_postgresql TDS

Babelfish unterstützt die Installation der Erweiterung tds_fdw durch Aufrufen der Prozedur sp_execute_postgresql ab Version 3.3.0. Sie können SQL Postgre-Anweisungen vom SQL T-Endpunkt aus ausführen, ohne den T-Port zu verlassen. SQL Weitere Informationen finden Sie unter Zusammenarbeit mit Babelfish für Aurora Postgre-Verfahren SQL

  1. Connect zu Ihrer SQL Postgre-DB-Instance in der Babelfish-Datenbank im T-Port her. SQL

    sqlcmd -S your-DB-instance.aws-region.rds.amazonaws.com -U test -P password
  2. Installieren Sie die tds_fdw-Erweiterung.

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

Unterstützte Funktionen

Babelfish unterstützt das Hinzufügen von Remote RDS for SQL Server- oder Babelfish for Aurora SQL Postgre-Endpunkten als Verbindungsserver. Sie können auch andere SQL Remote-Serverinstanzen als Verbindungsserver hinzufügen. Verwenden Sie dann OPENQUERY(), um Daten von diesen verknüpften Servern abzurufen. Ab Babelfish Version 3.2.0 werden auch vierteilige Namen unterstützt.

Die folgenden gespeicherten Prozeduren und Katalogansichten werden unterstützt, um die verknüpften Server zu verwenden.

Gespeicherte Prozeduren

  • sp_addlinkedserver – Babelfish unterstützt den Parameter @provstr nicht.

  • sp_addlinkedsrvlogin

    • Sie müssen einen expliziten Remote-Benutzernamen und ein Passwort angeben, um eine Verbindung zu der Remote-Datenquelle herzustellen. Sie können keine Verbindung mit den eigenen Anmeldeinformationen des Benutzers herstellen. Babelfish unterstützt nur @useself = false.

    • Babelfish unterstützt den Parameter @locallogin nicht, da die Konfiguration des Remote-Serverzugriffs für die lokale Anmeldung nicht unterstützt wird.

  • sp_linkedservers

  • sp_helplinkedsrvlogin

  • sp_dropserver

  • sp_droplinkedsrvlogin – Babelfish unterstützt den Parameter @locallogin nicht, da die Konfiguration des Remote-Serverzugriffs für die lokale Anmeldung nicht unterstützt wird.

  • sp_serveroption – Babelfish unterstützt die folgenden Serveroptionen:

    • Abfrage-Timeout (ab Babelfish-Version 3.2.0)

    • Verbindungs-Timeout (ab Babelfish-Version 3.3.0)

  • sp_testlinkedserver (ab Babelfish-Version 3.3.0)

  • sp_enum_oledb_providers (ab Babelfish-Version 3.3.0)

Katalogansichten

  • sys.servers

  • sys.linked_logins

Verwenden der Verschlüsselung während der Übertragung für die Verbindung

Die Verbindung vom Babelfish for Aurora SQL Postgre-Quellserver zum Remote-Zielserver verwendet je nach Datenbankkonfiguration des Remoteservers Verschlüsselung bei der Übertragung (TLS/SSL). Wenn der Remote-Server nicht für die Verschlüsselung konfiguriert ist, bleibt der Babelfish-Server, der die Anforderung an die Remote-Datenbank stellt, unverschlüsselt.

So erzwingen Sie die Verbindungsverschlüsselung

  • Wenn es sich bei dem Ziel-Verbindungsserver um eine RDS For-Server-Instanz handelt, legen Sie ihn rds.force_ssl = on für die SQL SQL Ziel-Server-Instanz fest. Weitere Informationen zur TLS Konfiguration vonSSL/RDSfür SQL Server finden Sie unter SSLMit einer Microsoft SQL Server-DB-Instance verwenden

  • Wenn der Ziel-Verbindungsserver ein Babelfish for Aurora SQL Postgre-Cluster ist, legen Sie babelfishpg_tds.tds_ssl_encrypt = on und ssl = on für den Zielserver fest. Weitere Informationen zuSSL/TLSfinden Sie unter. SSL-Einstellungen und Clientverbindungen für Babelfish

Babelfish als Verbindungsserver vom Server hinzufügen SQL

Babelfish for Aurora Postgre SQL kann als Verbindungsserver von einem Server aus hinzugefügt werden. SQL In einer SQL Serverdatenbank können Sie Babelfish als Verbindungsserver hinzufügen, indem Sie den OLE Microsoft-DB-Anbieter für ODBC Folgendes verwenden:. MSDASQL

Es gibt zwei Möglichkeiten, Babelfish vom Server aus SQL als Verbindungsserver zu konfigurieren: MSDASQL

  • Bereitstellung der ODBC Verbindungszeichenfolge als Provider-Zeichenfolge.

  • Geben Sie beim Hinzufügen DSN des ODBC Verbindungsservers das Datenquellensystem an.

Einschränkungen

  • OPENQUERY() funktioniert nur für SELECT und funktioniert nicht fürDML.

  • Vierteilige Objektnamen funktionieren nur zum Lesen und nicht zum Ändern der entfernten Tabelle. An UPDATE kann in der FROM Klausel auf eine entfernte Tabelle verweisen, ohne sie zu ändern.

  • Die Ausführung von gespeicherten Prozeduren auf mit Babelfish verknüpften Servern wird nicht unterstützt.

  • Das Upgrade der Hauptversion von Babelfish funktioniert möglicherweise nicht, wenn Objekte von OPENQUERY() abhängig sind oder Objekte durch vierteilige Namen referenziert werden. Sie müssen sicherstellen, dass alle Objekte, die auf OPENQUERY() oder vierteilige Namen verweisen, vor einem Upgrade der Hauptversion gelöscht werden.

  • Die folgenden Datentypen funktionieren auf dem Babelfish-Remote-Server nicht wie erwartet: nvarchar(max), varchar(max), varbinary(max), binary(max) und time. Wir empfehlen, die CAST Funktion zu verwenden, um diese in die unterstützten Datentypen zu konvertieren.

Beispiel

Im folgenden Beispiel stellt eine Babelfish for Aurora Postgre-Instanz eine Verbindung zu einer SQL Instanz von RDS for SQL Server in der Cloud her.

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';

Wenn der Verbindungsserver eingerichtet ist, können Sie dann T- SQL OPENQUERY () oder eine standardmäßige vierteilige Benennung verwenden, um auf eine Tabelle, Ansicht oder andere unterstützte Objekte auf dem Remoteserver zu verweisen:

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

So löschen Sie den verbundenen Server und alle verbundenen Logins:

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

Fehlerbehebung

Sie können für Quell- und Remoteserver dieselbe Sicherheitsgruppe verwenden, um eine Kommunikation beider Server zu ermöglichen. Die Sicherheitsgruppe sollte nur eingehenden Verkehr auf TDS Port zulassen (standardmäßig 1433), und die Quell-IP in der Sicherheitsgruppe kann als die Sicherheitsgruppen-ID selbst festgelegt werden. Weitere Informationen zum Einrichten der Regeln für die Verbindung zu einer Instance von einer anderen Instance mit derselben Sicherheitsgruppe finden Sie unter Regeln für die Verbindung mit Instances von einer Instance mit der gleichen Sicherheitsgruppe aus.

Wenn der Zugriff nicht richtig konfiguriert ist, wird eine Fehlermeldung ähnlich wie das folgende Beispiel angezeigt, wenn Sie versuchen, den Remote-Server abzufragen.

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