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
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
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
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
-Utest
-Ppassword
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 verwendenWenn der Ziel-Verbindungsserver ein Babelfish for Aurora SQL Postgre-Cluster ist, legen Sie
babelfishpg_tds.tds_ssl_encrypt = on
undssl = 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 aufOPENQUERY()
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)
undtime
. 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