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 zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden.

In diesem Abschnitt werden die Schritte zur Verwendung von Datenbanklinks beschrieben, mit denen eine Verbindung von Autonomous Database zu einer Nicht-Oracle Database hergestellt wird. Dabei handelt es sich um ein Oracle Database Gateway, bei dem sich die Nicht-Oracle Database auf einem privaten Endpunkt befindet.

Voraussetzungen zum Erstellen von Datenbanklinks zu vom Kunden verwalteter heterogener Konnektivität zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt

Führt die Voraussetzungen zum Erstellen von Datenbanklinks aus einer Autonomous Database mit vom Kunden verwalteter heterogener Konnektivität zu Nicht-Oracle-Datenbanken auf, die sich auf einem privaten Endpunkt befinden.

So erstellen Sie einen Datenbanklink mit vom Kunden verwalteter heterogener Konnektivität zu Nicht-Oracle-Datenbanken, die sich auf einem privaten Endpunkt befinden:

  • Der Zugriff auf die Zieldatenbank muss über das Oracle Cloud Infrastructure-VCN der Quelldatenbank möglich sein. Beispiel: Sie können sich bei der Zieldatenbank anmelden, wenn:

    • Die Zieldatenbank befindet sich auf einem privaten Endpunkt.

    • Sowohl die Quelldatenbank als auch die Zieldatenbank befinden sich in demselben Oracle Cloud Infrastructure-VCN.

    • Die Quelldatenbank und die Zieldatenbank befinden sich in verschiedenen Oracle Cloud Infrastructure-VCNs, die gepaart 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 der Quelldatenbank oder in der Netzwerksicherheitsgruppe, sodass der Traffic über TCP an die 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.

    Informationen zum Konfigurieren privater Endpunkte mit Ingress- und Egress-Regeln finden Sie unter Netzwerkzugriff mit privaten Endpunkten konfigurieren.

Hinweis

Wenn Ihre Autonomous Database-Instanz mit einem privaten Endpunkt konfiguriert ist, setzen Sie den Datenbankparameter ROUTE_OUTBOUND_CONNECTIONS auf "PRIVATE_ENDPOINT", um anzugeben, dass alle ausgehenden Datenbanklinks den Egress-Regeln des privaten Endpunkt-VCN der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

Datenbanklinks mit von Kunden verwalteter heterogener Konnektivität zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt (ohne Wallet) erstellen

Sie können Datenbanklinks von einer Autonomous Database-Instanz zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden und sich entweder mit einem Wallet (TCPS) oder ohne ein Wallet (TLS) verbinden.

So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem privaten Endpunkt zu einem Ziel-Oracle Database Gateway und stellen eine Verbindung ohne Wallet (TLS) her:

  1. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf die Zieldatenbank. Die username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die innerhalb des Datenbanklinks verwendet wird (wo auf die Zieldatenbank über das Oracle Database Gateway zugegriffen wird).

    Geben Sie den Parameter credential_name an.

    Beispiel:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    Die Zeichen im Parameter username müssen Großbuchstaben enthalten.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen für den Zugangsdatennamen 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 ist, 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 (das heißt, 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, der eine IP-Adresse, eine SCAN-IP oder einen SCAN-Hostnamen verwendet, 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 zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  3. Verwenden Sie den Datenbanklink, den Sie erstellt haben, um auf Daten im Zielgateway zuzugreifen.

    Beispiel:

    SELECT * FROM employees@SALESLINK;
    

Für die in Schritt 1 erstellten Zugangsdaten, die Oracle Database Gateway-Zugangsdaten, können Sie die Zugangsdaten, die die Zugangsdaten des Zielbenutzers enthalten, wie folgt aktualisieren, wenn sich das Kennwort des Zielbenutzers ändert:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'DB_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

Dabei ist password das neue Kennwort.

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

Weitere Informationen finden Sie hier:

Datenbanklinks mit dem Kunden verwalteter heterogener Konnektivität zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt (mit einem Wallet) erstellen

Sie können Datenbanklinks von einer Autonomous Database-Instanz zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden und sich entweder mit einem Wallet (TCPS) oder ohne ein Wallet (TLS) verbinden.

So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem privaten Endpunkt zu einem Oracle Database Gateway-Ziel und stellen eine Verbindung ohne Wallet her:

  1. Kopieren Sie das selbstsignierte Ziel-Wallet von Oracle Database Gateway in den Objektspeicher. Beispiel: Kopieren Sie cwallet.sso, das die Zertifikate für Oracle Database Gateway enthält, in den Objektspeicher.

    Die Wallet-Datei bietet 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 Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die cwallet.sso speichern. Informationen zu den Benutzernamen- und Kennwortparametern für verschiedene Objektspeicherservices 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. Mit DBMS_CLOUD.GET_OBJECT können Sie das selbstsignierte Wallet des Zielgateways in das Verzeichnis hochladen, das Sie im vorherigen Schritt erstellt haben, DBLINK_WALLET_DIR.

    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

    Die in diesem Schritt verwendete credential_name sind 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. Die username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die innerhalb des Datenbanklinks verwendet wird (wo auf die Zieldatenbank über das Oracle Database Gateway zugegriffen wird).

    Geben Sie den Parameter credential_name an.

    Beispiel:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    Die Zeichen im Parameter username müssen Großbuchstaben enthalten.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen für den Zugangsdatennamen 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 (das heißt, 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, der eine IP-Adresse, eine SCAN-IP oder einen SCAN-Hostnamen verwendet, 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 zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  7. Verwenden Sie den Datenbanklink, den Sie erstellt haben, um auf Daten im Zielgateway zuzugreifen.

    Beispiel:

    SELECT * FROM employees@SALESLINK;
    

Für die Zugangsdaten, die Sie in Schritt 5 erstellen, die Oracle Database Gateway-Zugangsdaten. Wenn sich das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt aktualisieren:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'DB_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

Dabei ist password das neue Kennwort.

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

Weitere Informationen finden Sie hier: