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 aus einer autonomen KI-Datenbank auf einer dedizierten Exadata-Infrastruktur zu erstellen, die sich auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway befindet, um auf Nicht-Oracle-Datenbanken zuzugreifen.

Ein Oracle Database Gateway ist ein Gateway, das für den Zugriff auf ein bestimmtes Nicht-Oracle-System entwickelt wurde. Mit einem Oracle Database Gateway können Sie überall in einem verteilten Datenbanksystem auf Daten zugreifen, ohne den Speicherort der Daten oder deren Speicherung zu kennen. Durch die Verwendung von Datenbanklinks in autonomen KI-Datenbank mit Oracle Database Gateway werden heterogene Umgebungen unterstützt, und es ist nicht erforderlich, Ihre Anwendungen anzupassen, um auf Daten aus Nicht-Oracle-Systemen zuzugreifen.

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

Um Datenbanklinks aus einer autonomen KI-Datenbankinstanz auf einem öffentlichen Endpunkt zu verwenden, gehen Sie wie folgt vor:

  1. Konfigurieren Sie Oracle Database Gateway für den Zugriff auf eine Nicht-Oracle-Datenbank. Weitere Informationen finden Sie unter Oracle Database Gateways in Oracle Database 19c Database Heterogeneous Connectivity User's Guide oder Oracle Database 26ai 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 im Oracle Database 26ai-Sicherheitshandbuch.

Vorgehensweise

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

So erstellen Sie Datenbanklinks aus einer autonomen KI-Datenbankinstanz 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 der autonomen KI-Datenbank 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 AI 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 AI 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 innerhalb des Datenbanklinks verwendet wird (wo auf die Zieldatenbank über das 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.

Ein Beispiel zum Erstellen eines Datenbanklinks zu einem Oracle Database Gateway für den Zugriff auf eine Microsoft SQL Server-Datenbank finden Sie unter So greifen Sie über Autonomous AI Database mit Oracle Database Gateway auf Nicht-Oracle-Datenbanken zu.

Hinweis:

Obwohl der obige Blog im Kontext von Autonomous AI Database Serverless diskutiert wird, gelten alle Inhalte in diesem Blog auch für Autonomous AI Database on Dedicated Exadata Infrastructure.