Arbeiten mit SQL Serverdatenbanken mithilfe der Erweiterung tds_fdw - Amazon Relational Database Service

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.

Arbeiten mit SQL Serverdatenbanken mithilfe der Erweiterung tds_fdw

Sie können die SQL tds_fdw Postgre-Erweiterung verwenden, um auf Datenbanken zuzugreifen, die das Tabular Data Stream (TDS) -Protokoll unterstützen, z. B. Sybase- und Microsoft SQL Server-Datenbanken. Mit diesem Foreign Data Wrapper können Sie von Ihrem aus eine Verbindung zu Datenbanken herstellen, die das TDS Protokoll verwenden, einschließlich Amazon RDS for Microsoft Server. SQL Weitere Informationen finden Sie in der tds-fdw/tds_fdw-Dokumentation unter. GitHub

Die tds_fdw Erweiterung wird auf Amazon RDS für SQL Postgre-Versionen 14.2, 13.6 und höhere Versionen unterstützt.

Einrichten Ihrer Aurora SQL Postgre-DB für die Verwendung der tds_fdw-Erweiterung

In den folgenden Verfahren finden Sie ein Beispiel für die Einrichtung und Verwendung des . Bevor Sie eine Verbindung zu einer SQL Serverdatenbank herstellen könnentds_fdw, benötigen Sie die folgenden Informationen für die Instance:

  • Hostname oder Endpunkt. RDSBei einer SQL Server-DB-Instance können Sie den Endpunkt mithilfe der Konsole finden. Wählen Sie die Registerkarte „Connectivity & security“ (Konnektivität und Sicherheit) aus und sehen Sie im Abschnitt „Endpoint and port“ (Endpunkt und Port) nach.

  • Port-Nummer. Die Standardportnummer für Microsoft SQL Server ist 1433.

  • Name der Datenbank. Die DB-ID.

Sie müssen auch Zugriff auf die Sicherheitsgruppe oder die Zugriffskontrollliste (ACL) für den SQL Serverport 1433 gewähren. Sowohl der für die SQL Postgre-DB-Instance als auch die RDS for SQL Server-DB-Instance benötigen Zugriff auf Port 1433. Wenn der Zugriff nicht richtig konfiguriert ist, wird beim Versuch, den Microsoft SQL Server abzufragen, die folgende Fehlermeldung angezeigt:

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
Um mit tds_fdw eine Verbindung zu einer Serverdatenbank herzustellen SQL
  1. Stellen Sie eine Verbindung mit der her, indem Sie ein Konto verwenden, das die folgende Rolle hat: rds_superuser

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test –-password
  2. Installieren Sie die tds_fdw-Erweiterung.

    test=> CREATE EXTENSION tds_fdw; CREATE EXTENSION

Nachdem die Erweiterung auf Ihrem für die SQL Postgre-DB-Instance installiert wurde, richten Sie den ausländischen Server ein.

So erstellen Sie den fremden Server

Führen Sie diese Aufgaben auf dem für die SQL Postgre-DB-Instance mit einem Konto aus, das über Berechtigungen verfügtrds_superuser.

  1. Erstellen Sie einen Fremdserver im :

    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

    Um SQLServer nebenbei auf ASCII Nicht-Daten zuzugreifen, erstellen Sie einen Serverlink mit der Option character_set im : SQL

    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. Gewähren Sie einem Benutzer, der keine rds_superuser-Rollenberechtigungen hat, Berechtigungen, zum Beispiel user1:

    test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
  3. Stellen Sie eine Connect als Benutzer1 her und erstellen Sie eine Zuordnung zu einem SQL Serverbenutzer:

    test=> CREATE USER MAPPING FOR user1 SERVER sqlserverdb OPTIONS (username 'sqlserveruser', password 'password'); CREATE USER MAPPING
  4. Erstellen Sie eine Fremdtabelle, die mit einer SQL Servertabelle verknüpft ist:

    test=> CREATE FOREIGN TABLE mytab (a int) SERVER sqlserverdb OPTIONS (table 'MYTABLE'); CREATE FOREIGN TABLE
  5. Fragen Sie die fremde Tabelle ab:

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

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

Die Verbindung von for Postgre SQL zum SQL Server verwendet je nach SQL Serverdatenbankkonfiguration Verschlüsselung bei der Übertragung (TLS/SSL). Wenn der SQL Server nicht für die Verschlüsselung konfiguriert ist, wird der RDS SQL For-Postgre-Client, der die Anfrage an die SQL Serverdatenbank stellt, auf unverschlüsselt zurückgesetzt.

Sie können die Verschlüsselung für die Verbindung zu RDS SQL Server-DB-Instances erzwingen, indem Sie den rds.force_ssl Parameter festlegen. Wie das geht, erfahren Sie unter Verbindungen zu Ihrer DB-Instance zur Nutzung erzwingen SSL. Weitere Informationen zur TLS Konfiguration vonSSL/RDSfür SQL Server finden Sie unter SSLMit einer Microsoft SQL Server-DB-Instance verwenden.