Datenbanklinks von Autonomous Database zu einer Autonomous Database auf einem privaten Endpunkt erstellen

Sie können Datenbanklinks von einer Autonomous Database zu einer Autonomous Database-Zielinstanz auf einem privaten Endpunkt erstellen.

Themen

Voraussetzungen für Datenbanklinks von Autonomous Database zu einer Autonomous Database-Zielinstanz auf einem privaten Endpunkt

Listet die Voraussetzungen zum Erstellen von Datenbanklinks zu einer Autonomous Database-Zielinstanz auf, die sich auf einem privaten Endpunkt befindet.

So erstellen Sie einen Datenbanklink zu einer Ziel-Autonomous Database auf einem privaten Endpunkt:

  • Die Zieldatenbank muss über das Oracle Cloud Infrastructure-VCN der Quelldatenbank zugänglich sein. Beispiel: Sie können in:

    • Die Zieldatenbank ist ein privater 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.

    • Die Zieldatenbank ist mit FastConnect oder VPN mit dem Oracle Cloud Infrastructure-VCN der Quelldatenbank verbunden.

  • 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).

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK unterstützt den Wert localhost für den Parameter hostname nicht.

  • 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.

    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 die Datenbankeigenschaft 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 zu einer Ziel-Autonomous Database auf einem privaten Endpunkt ohne Wallet (TLS) erstellen

Sie können Datenbanklinks von einer Autonomous Database zu einer Autonomous Database-Zielinstanz auf einem privaten Endpunkt erstellen und eine Verbindung ohne Wallet (TLS) herstellen.

Führen Sie bei Bedarf die vorbereitenden Schritte aus. Weitere Einzelheiten finden Sie unter Anforderungen für Datenbanklinks von Autonomous Database zu einer Autonomous Database-Zielumgebung auf einem privaten Endpunkt.

So erstellen Sie einen Datenbanklink zu einer Autonomous Database-Zielinstanz auf einem privaten Endpunkt ohne Wallet:

  1. Wenn dies noch nicht geschehen ist, aktivieren Sie TLS-Verbindungen in Ihrer Autonomous Database-Instanz.
  2. Erstellen Sie Zugangsdaten für den Zugriff auf die Autonomous Database-Zielinstanz. Die Werte username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die im Datenbanklink (wo über das VCN auf die Zieldatenbank zugegriffen wird) verwendet werden.

    Beispiele:

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

    Der Parameter username darf nur Großbuchstaben enthalten.

    Hinweis

    Sie können Vault Secret-Zugangsdaten für die Zugangsdaten der Zieldatenbank in einem Datenbanklink verwenden. Weitere Informationen finden Sie unter Vault-Secret-Zugangsdaten verwenden.

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

  3. Erstellen Sie den Datenbanklink zur Zieldatenbank mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Beispiele:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK', 
             hostname => 'exampleHostname',
             port => '1521',
             service_name => 'example_high.adb.oraclecloud.com',
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    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).

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

    Wie im Beispiel dargestellt, ist Folgendes erforderlich, um einen Datenbanklink mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK zu einer Zieldatenbank auf einem privaten Endpunkt ohne Wallet zu erstellen:

    • Der Parameter directory_name muss NULL lauten.

    • Der Parameter ssl_server_cert_dn kann ausgelassen werden. Wenn er eingeschlossen ist, geben Sie einen NULL-Wert an.

    • Der Parameter private_target muss TRUE sein.

      Hinweis

      Wenn Sie ROUTE_OUTBOUND_CONNECTIONS auf PRIVATE_ENDPOINT setzen, ist es in dieser API nicht erforderlich, den Parameter private_target auf TRUE zu setzen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.
  4. Verwenden Sie den erstellten Datenbanklink, um auf Daten in der Zieldatenbank zuzugreifen.

    Beispiele:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
                  
Hinweis

Wenn sich für die Zugangsdaten, die Sie in Schritt 1 erstellt haben (die Oracle Database-Zugangsdaten), 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 Kennwort 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 CREATE_DATABASE_LINK-Prozedur.

Datenbanklinks zu einer Ziel-Autonomous Database auf einem privaten Endpunkt mit einem Wallet (mTLS) erstellen

Sie können Datenbanklinks von einer Autonomous Database zu einer Autonomous Database-Zielinstanz auf einem privaten Endpunkt (mTLS) erstellen.

Führen Sie bei Bedarf die vorbereitenden Schritte aus. Weitere Einzelheiten finden Sie unter Anforderungen für Datenbanklinks von Autonomous Database zu einer Autonomous Database-Zielumgebung auf einem privaten Endpunkt.

So erstellen Sie einen Datenbanklink zu einer Autonomous Database-Zielinstanz auf einem privaten Endpunkt mit einem Wallet:

  1. Kopieren Sie das Wallet der Zieldatenbank cwallet.sso mit den Zertifikaten für die Zieldatenbank in den Objektspeicher.
    Hinweis

    Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten in der Oracle-Zieldatenbank. 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 Datei cwallet.sso 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.

    Beispiele:

    CREATE DIRECTORY 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 Wallet der Zieldatenbank in das Verzeichnis WALLET_DIR hochzuladen, das Sie im vorherigen Schritt erstellt haben.

    Beispiele:

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

    credential_name in diesem Schritt sind die Zugangsdaten für den Objektspeicher. Im nächsten Schritt erstellen Sie die Zugangsdaten für den Zugriff auf die Zieldatenbank.
  5. Erstellen Sie in Autonomous Database Zugangsdaten für den Zugriff auf die Zieldatenbank. Die Werte username und password, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL angeben, sind die Zugangsdaten für die Zieldatenbank, die im Datenbanklink (wo über das VCN auf die Zieldatenbank zugegriffen wird) verwendet werden.
    Hinweis

    Der Parameter credential_name muss angegeben werden.

    Beispiele:

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

    Der Parameter username darf nur Großbuchstaben enthalten.

    Hinweis

    Sie können Vault Secret-Zugangsdaten für die Zugangsdaten der Zieldatenbank in einem Datenbanklink verwenden. Weitere Informationen finden Sie unter Vault-Secret-Zugangsdaten verwenden.

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

  6. Erstellen Sie den Datenbanklink zur Zieldatenbank mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Beispiele:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'PEDBLINK1', 
            hostname => 'example1.adb.ap-osaka-1.oraclecloud.com',
            port => '1522',
            service_name => 'example_high.adb.oraclecloud.com',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'WALLET_DIR',
            private_target => TRUE);
    END;
    /
    Hinweis

    Wenn Sie ROUTE_OUTBOUND_CONNECTIONS auf PRIVATE_ENDPOINT setzen, ist es in dieser API nicht erforderlich, den Parameter private_target auf TRUE zu setzen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

    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).

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK unterstützt den Wert localhost für den Parameter hostname nicht.

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

  7. Verwenden Sie den erstellten Datenbanklink, um auf Daten in der Zieldatenbank zuzugreifen.

    Beispiele:

    SELECT * FROM employees@PEDBLINK1;
                  
Hinweis

Wenn sich für die Zugangsdaten, die Sie in Schritt 5 erstellt haben (die Oracle Database-Zugangsdaten), 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 Kennwort 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 CREATE_DATABASE_LINK-Prozedur.