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 für den Zugriff auf Nicht-Oracle-Datenbanken erstellen.

Um Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt verwenden zu können, muss das Oracle Database Gateway-Ziel für die Verwendung von TCP/IP mit SSL-(TCPS-)Authentifizierung konfiguriert sein. Weitere Informationen finden Sie unter SSL-Authentifizierung (Secure Sockets Layer) 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 Oracle Database Gateway-Ziel-Wallet in den Objektspeicher. Beispiel: Kopieren Sie cwallet.sso mit den Zertifikaten für Oracle Database Gateway in den Objektspeicher.
    Hinweis

    Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten, die über das Ziel-Oracle Database Gateway 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-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 der Autonomous Database-Instanz für die Wallet-Datei cwallet.sso.

    Beispiele:

    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.

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

    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 der Autonomous Database-Instanz 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 beim Erstellen des Datenbanklinks (wo über Oracle Database Gateway auf die Zieldatenbank zugegriffen wird) verwendet werden sollen.

    Geben Sie den Parameter credential_name an.

    Beispiele:

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

    Der Parameter username darf nur Großbuchstaben enthalten.

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

  6. Erstellen Sie einen Datenbanklink, um mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK auf das Zielgateway zuzugreifen.

    Beispiele:

    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 zur Ausführung von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

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

    Beispiele:

    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;
/

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.

Im Folgenden finden Sie ein Beispiel, wie Sie einen Datenbanklink zu 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: