Datenbanklinks zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt mit vom Kunden verwalteter heterogener Konnektivität erstellen

Sie können Datenbanklinks von einer Autonomous Database on Dedicated Exadata Infrastructure zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken auf einem privaten Endpunkt zuzugreifen.

Oracle Database Gateway stellt ein Gateway bereit, das für den Zugriff auf ein bestimmtes Nicht-Oracle-System konzipiert ist. Mit Oracle Database Gateway können Sie überall in einem verteilten Datenbanksystem auf Daten zugreifen, ohne den Speicherort der Daten oder die Art der Speicherung zu kennen. Die Verwendung von Datenbanklinks in Autonomous Database mit Oracle Database Gateway unterstützt heterogene Umgebungen und macht es überflüssig, Ihre Anwendungen für den Zugriff auf Daten aus Nicht-Oracle-Systemen anzupassen.

Hinweis:

Das Erstellen von Datenbanklinks mit vom Kunden verwalteter heterogener Konnektivität zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt wird nur mit Versionen 19.25 und höher für 19c und 23.6 und höher für 23ai unterstützt.

Verwandte Themen

Voraussetzungen

So verwenden Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt:
  1. Konfigurieren Sie Oracle Database Gateway für den Zugriff auf eine Nicht-Oracle-Datenbank. Weitere Informationen finden Sie unter Oracle Database Gateways in der Dokumentation Oracle Database 19c Database Heterogeneous Connectivity User's Guide oder im Oracle Database 23ai Database Heterogeneous Connectivity User's Guide.

    Je nach Datenbank, zu der Sie eine Verbindung herstellen möchten, finden Sie weitere Informationen im entsprechenden Installations- und Konfigurationshandbuch sowie im Gatewaybenutzerhandbuch.

    Informationen zu Oracle Database Gateway for SQL Server finden Sie z.B. unter:

  2. Konfigurieren Sie Oracle Net Listener, um eingehende Anforderungen in Oracle Database Gateway zu verarbeiten.

  3. Erstellen Sie ein selbstsigniertes Wallet in Oracle Database Gateway.

Zusätzlich ist Folgendes möglich:
  • Die Zieldatenbank muss über das Oracle Cloud Infrastructure-VCN der Quelldatenbank zugänglich sein. Beispiel: Sie können in folgenden Fällen eine Verbindung zur Zieldatenbank herstellen:

    • Die Zieldatenbank befindet sich auf einem privaten Endpunkt.

    • Die Quell- und die Zieldatenbank befinden sich in demselben Oracle Cloud Infrastructure-VCN.

    • Die Quell- und die Zieldatenbank befinden sich in verschiedenen Oracle Cloud Infrastructure-VCNs, die gekoppelt sind.

    • Bei einem Ziel auf einem privaten Endpunkt unterstützt DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK die Angabe eines einzelnen Hostnamens mit dem Parameter hostname. Auf einem privaten Endpunkt wird die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens nicht unterstützt (wenn sich das Ziel auf einem öffentlichen Endpunkt befindet, unterstützt CREATE_DATABASE_LINK die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens).

  • Die folgenden Ingress- und Egress-Regeln müssen für den privaten Endpunkt definiert werden:

    • Definieren Sie eine Egress-Regel in der Subnetzsicherheitsliste oder Netzwerksicherheitsgruppe der Quelldatenbank, sodass der Traffic über TCP zur IP-Adresse und Portnummer der Zieldatenbank zulässig ist.

    • Definieren Sie eine Ingress-Regel in der Subnetzsicherheitsliste oder Netzwerksicherheitsgruppe der Zieldatenbank, sodass der Traffic über TCP von der IP-Adresse der Quelldatenbank zum Zielport zulässig ist.

Vom Kunden verwaltete heterogene Verbindung zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt (ohne Wallet)

Sie können Datenbanklinks von einer Autonomous Database zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden, entweder mit einem Wallet (TCPS) oder ohne Wallet (TLS). In diesem Abschnitt wird beschrieben, wie Sie einen Datenbanklink ohne Wallet erstellen.

So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem privaten Endpunkt zu einem Zielgateway mit Datenbanklinks und einer TLS-Verbindung:
  1. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf die Zieldatenbank. Der Benutzername und das Kennwort, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die im Datenbanklink (wo über Oracle Database Gateway auf die Zieldatenbank zugegriffen wird) verwendet werden.
    Beispiel:
    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password'
        );
    END;/

    Die Angabe des Parameters credential_name ist erforderlich.

    Der Parameter username darf nur Großbuchstaben enthalten.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden.

  2. Erstellen Sie den Datenbanklink zum Zielgateway mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
    Beispiel:
    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name =>       'SALESLINK',
            hostname =>           'example.com',
            port =>               '1522',
            service_name =>       'example_service_name',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name =>    'DB_LINK_CRED',
            directory_name =>      NULL,
            gateway_link =>        TRUE,
            private_target =>      TRUE,
            gateway_params =>      NULL
        );
    END;/

    Der Parameter ssl_server_cert_dn ist optional, wenn die Verbindung als TCP-basierter Datenbanklink (ohne Wallet) erstellt wird.

    Wenn directory_name NULL lautet, wird die Verbindung als TCP-basierter Datenbanklink (ohne Wallet) erstellt.

    Der Parameter private_target muss auf TRUE gesetzt werden, wenn sich das Nicht-Oracle Database-Ziel auf einem privaten Endpunkt befindet (d.h. der Datenbanklink greift auf einen Hostnamen zu, der in einem VCN-DNS-Server aufgelöst werden muss). Wenn private_target TRUE ist, muss der Parameter hostname ein einzelner Hostname sein (auf einem privaten Endpunkt, mit einer IP-Adresse, einer SCAN-IP oder einem SCAN-Hostnamen wird nicht unterstützt).

    Wenn gateway_link TRUE und gateway_params NULL ist, gibt dies an, dass der Datenbanklink zu einem vom Kunden verwalteten Oracle-Gateway gehört.

    Andere Benutzer als ADMIN benötigen Berechtigungen zur Ausführung von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Weitere Informationen finden Sie unter Prozedur CREATE_DATABASE_LINK.

  3. Verwenden Sie den erstellten Datenbanklink, um auf Daten im Zielgateway zuzugreifen.
    Beispiel:
    SELECT * FROM employees@SALESLINK;
Wenn sich für die Zugangsdaten, die Sie in Schritt 1 erstellt haben (die Oracle Database Gateway-Zugangsdaten), das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt ändern:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name =>'DB_LINK_CRED',
        attribute =>'PASSWORD',
        value=>'password'
    );
END;
/

Das Kennwort ist das neue Kennwort.

Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiterhin, ohne dass Sie die Datenbanklinks löschen und neu erstellen müssen.

Weitere Details finden Sie unter Prozedur UPDATE_CREDENTIAL.

Vom Kunden verwaltete heterogene Verbindung zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt (mit einem Wallet)

Sie können Datenbanklinks von einer Autonomous Database zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden, entweder mit einem Wallet (TCPS) oder ohne Wallet (TLS). In diesem Abschnitt wird beschrieben, wie Sie einen Datenbanklink mit einem Wallet erstellen.

So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem privaten Endpunkt zu einem Zielgateway und stellen eine Verbindung mit einem Wallet her:
  1. Kopieren Sie das selbstsignierte Wallet des Zielgateways (z.B. cwallet.sso) mit den Zertifikaten für Oracle Database Gateway in den Objektspeicher.
    Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten, die über das Zielgateway verfügbar sind. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.
  2. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die cwallet.sso-Datei speichern.
    Informationen zu den Parametern für Benutzername und Kennwort für verschiedene Object Storage-Services finden Sie unter Prozedur CREATE_CREDENTIAL.
  3. Erstellen Sie ein Verzeichnis in Autonomous Database für die Wallet-Datei cwallet.sso.
    Beispiel:
    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
    Informationen zum Erstellen von Verzeichnissen finden Sie unter Verzeichnis in Autonomous Database erstellen.
  4. Verwenden Sie DBMS_CLOUD.GET_OBJECT, um das selbstsignierte Wallet des Zielgateways in das Verzeichnis DBLINK_WALLET_DIR hochzuladen, das Sie im vorherigen Schritt erstellt haben.
    Beispiel:
    BEGIN
        DBMS_CLOUD.GET_OBJECT(
            credential_name =>'DEF_CRED_NAME',
            object_uri =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name =>'DBLINK_WALLET_DIR'
        ); 
    END;
    /

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Hinweis:

    Als credential_name verwenden Sie in diesem Schritt die Zugangsdaten für den Objektspeicher. Im nächsten Schritt erstellen Sie die Zugangsdaten für den Zugriff auf das Zielgateway.
  5. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf die Zieldatenbank. Der Benutzername und das Kennwort, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die im Datenbanklink (wo über Oracle Database Gateway auf die Zieldatenbank zugegriffen wird) verwendet werden.
    Beispiel:
    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name =>'DB_LINK_CRED',
            username =>'NICK',
            password =>'password'
        );
    END;
    /

    Die Angabe des Parameters credential_name ist erforderlich.

    Der Parameter username darf nur Großbuchstaben enthalten.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden.

  6. Erstellen Sie den Datenbanklink zum Zielgateway mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
    Beispiel:
    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name =>'SALESLINK', 
            hostname =>'example.com', 
            port =>'1522',
            service_name =>'example_service_name',
            ssl_server_cert_dn =>'ssl_server_cert_dn',
            credential_name =>'DB_LINK_CRED',
            directory_name =>'DBLINK_WALLET_DIR',
            gateway_link =>TRUE,
            private_target =>TRUE,
            gateway_params =>NULL
        );
    END;
    /

    Wenn directory_name nicht NULL ist, wird ein TCPS-basierter Datenbanklink erstellt.

    Der Parameter private_target muss auf TRUE gesetzt werden, wenn sich das Nicht-Oracle Database-Ziel auf einem privaten Endpunkt befindet (d.h. der Datenbanklink greift auf einen Hostnamen zu, der in einem VCN-DNS-Server aufgelöst werden muss). Wenn private_target TRUE ist, muss der Parameter hostname ein einzelner Hostname sein (auf einem privaten Endpunkt, mit einer IP-Adresse, einer SCAN-IP oder einem SCAN-Hostnamen wird nicht unterstützt).

    Wenn gateway_link TRUE und gateway_params NULL ist, gibt dies an, dass der Datenbanklink zu einem vom Kunden verwalteten Oracle-Gateway gehört.

    Andere Benutzer als ADMIN benötigen Berechtigungen zur Ausführung von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Weitere Informationen finden Sie unter Prozedur CREATE_DATABASE_LINK.

  7. Verwenden Sie den erstellten Datenbanklink, um auf Daten im Zielgateway zuzugreifen.
    Beispiel:
    SELECT * FROM employees@SALESLINK;
    
Wenn sich für die Zugangsdaten, die Sie in Schritt 5 erstellt haben (die Oracle Database Gateway-Zugangsdaten), das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt ändern:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name =>'DB_LINK_CRED',
        attribute =>'PASSWORD',
        value=>'password'
    );
END;
/

Das Kennwort ist das neue Kennwort.

Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiterhin, ohne dass Sie die Datenbanklinks löschen und neu erstellen müssen.

Weitere Informationen finden Sie unter Prozedur UPDATE_CREDENTIAL.