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

Verwenden Sie DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, um Datenbanklinks von einer Autonomous Database on Dedicated Exadata Infrastructure zu erstellen, die sich auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway befindet, um auf Nicht-Oracle-Datenbanken 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 öffentlich zugänglichen Nicht-Oracle-Datenbanken 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.

  4. Konfigurieren Sie das Zielgateway für die Verwendung von TCP/IP mit SSL-(TCPS-)Authentifizierung. Weitere Informationen finden Sie unter Transport Layer Security-Authentifizierung konfigurieren in der Oracle Database 19c-Sicherheitsdokumentation oder Oracle Database 23ai-Sicherheitsdokumentation.

Vorgehensweise

Verwenden Sie DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, um Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway für den Zugriff auf Nicht-Oracle-Datenbanken zu erstellen.

So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu einem Zielgateway:
  1. Kopieren Sie das selbstsignierte Wallet des Zielgateways, z.B. cwallet.sso, mit den Zertifikaten für Oracle Database Gateway in den Objektspeicher.

    Hinweis:

    Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Kennwort bieten 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 cwallet.sso speichern. Informationen zu den Parametern für den Benutzernamen und das Kennwort für verschiedene Objektspeicherservices finden Sie in der 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 hochzuladen, das Sie im vorherigen Schritt DBLINK_WALLET_DIR 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.

    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.

    Weitere Informationen finden Sie unter GET_OBJECT Prozedur und Funktion.

  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 verwendet werden (wo auf die Zieldatenbank über Oracle Database Gateway zugegriffen wird).
    Beispiel:
    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password'
        );
    END;/

    Die Angabe des Parameters credential_name ist erforderlich.

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

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

    Benutzer mit Ausnahme von ADMIN benötigen Berechtigungen zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Weitere Informationen finden Sie unter Prozedur CREATE_DATABASE_LINK.

  7. Verwenden Sie den von Ihnen erstellten 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;
/

Wo das Kennwort das neue Kennwort ist.

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

Weitere Informationen finden Sie unter Prozedur UPDATE_CREDENTIAL.

In How to Access Non-Oracle Databases von Autonomous Database with Oracle Database Gateway finden Sie ein Beispiel, um einen Datenbanklink zu einem Oracle Database Gateway für den Zugriff auf eine Microsoft SQL Server-Datenbank zu erstellen.

Hinweis:

Obwohl der obige Blog im Kontext von Autonomous Database Serverless behandelt wird, gilt der gesamte Inhalt in diesem Blog auch für Autonomous Database on Dedicated Exadata Infrastructure.