Datenbanklinks zu öffentlich zugänglichen Nicht-Oracle-Datenbanken mit vom Kunden verwalteter heterogener Konnektivität erstellen

Mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK können Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen.

Um Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu verwenden, muss das Ziel, das ein Oracle Database Gateway aufweist, so konfiguriert sein, dass TCP/IP mit SSL-(TCPS-)Authentifizierung verwendet wird. Weitere Informationen finden Sie unter Secure Sockets Layer-Authentifizierung konfigurieren.

So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway-Ziel:

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

    Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Datenbankkennwort ermöglichen den Zugriff auf Daten, die über das Oracle Database Gateway-Ziel 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 für die Autonomous Database-Instanz 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.

    Die credential_name, die Sie in diesem Schritt verwenden, 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 Ihrer Autonomous Database-Instanz 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 beim Erstellen des Datenbanklinks verwendet werden sollen (wo auf die Zieldatenbank über 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 einen Datenbanklink für den Zugriff auf das 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);
    END;
    /

    Andere Benutzer als ADMIN benötigen Berechtigungen zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  7. Verwenden Sie den Datenbanklink, 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.

Im folgenden Beispiel wird gezeigt, wie Sie einen Datenbanklink zu einem Oracle Database Gateway für den Zugriff auf eine Microsoft SQL Server-Datenbank erstellen:

Zugriff auf Nicht-Oracle-Datenbanken von Autonomous Database mit Oracle Database Gateway

Weitere Informationen finden Sie hier: