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 der 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 den Versionen 19.25 und höher für 19c und 23.6 und höher für 23ai unterstützt.

Voraussetzungen

So verwenden Sie Datenbanklinks von einer autonomen KI-Datenbankinstanz 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 Oracle Database 19c Database Heterogeneous Connectivity User's Guide oder Oracle Database 26ai Database Heterogeneous Connectivity User's Guide.

    Abhängig von der Datenbank, zu der Sie eine Verbindung herstellen möchten, können Sie das entsprechende Installations- und Konfigurationshandbuch sowie das Gateway-Benutzerhandbuch lesen.

    Beispiel für Oracle Database Gateway for SQL Server:

  2. Konfigurieren Sie Oracle Net Listener für die Verarbeitung eingehender Anforderungen in Oracle Database Gateway.

  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 von einer autonomen KI-Datenbankinstanz auf einem öffentlichen Endpunkt zu einem Zielgateway:

  1. Kopieren Sie das selbstsignierte Wallet des Zielgateways, z.B. cwallet.sso, das die Zertifikate für Oracle Database Gateway in den Objektspeicher enthält.

    Hinweis: Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Datenbankkennwort ermöglichen den 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 Benutzernamen- und Kennwortparametern für verschiedene Object Storage-Services 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 autonomer KI-Datenbank erstellen.

  4. Mit DBMS_CLOUD.GET_OBJECT können Sie das selbstsignierte Wallet des Zielgateways in das Verzeichnis hochladen, 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 der autonomen KI-Datenbank 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 wird (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 Großbuchstaben enthalten.

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

    Andere Benutzer als 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 Datenbanklink, den Sie erstellt haben, um auf Daten im Zielgateway zuzugreifen.

    Beispiel:

     SELECT * FROM employees@SALESLINK;
    

Bei den Zugangsdaten, die Sie in Schritt 5 erstellen, den Oracle Database Gateway-Zugangsdaten können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt aktualisieren, wenn sich das Kennwort des Zielbenutzers ändert:

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
    credential_name =>'DB_LINK_CRED',
    attribute =>'PASSWORD',
    value=>'password'
  );
END;
/

Dabei ist das Passwort das neue Passwort.

Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiter, 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 auf Nicht-Oracle-Datenbanken aus einer autonomen KI-Datenbank mit Oracle Database Gateway zu.

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

Verwandte Inhalte

DBMS_CLOUD_ADMIN-Package