Datenbanklinks zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt mit vom Kunden verwalteter heterogener Konnektivität erstellen

Sie können Datenbanklinks aus einer autonomen KI-Datenbank auf einer dedizierten Exadata-Infrastruktur zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden.

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 Nicht-Oracle-Datenbanken auf einem privaten Endpunkt 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.

Zusätzlich ist Folgendes möglich:

Vom Kunden verwaltete heterogene Konnektivität zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt (ohne Wallet)

Sie können Datenbanklinks von einer autonomen KI-Datenbank zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden, entweder mit einem Wallet (TCPS) oder ohne ein Wallet (TLS). In diesem Abschnitt wird beschrieben, wie Sie einen Datenbanklink ohne Wallet erstellen.

Um Datenbanklinks von einer autonomen KI-Datenbankinstanz auf einem privaten Endpunkt mit Datenbanklinks und einer TLS-Verbindung zu einem Zielgateway zu erstellen, gehen Sie folgendermaßen vor:

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

  2. 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 =>      NULL,
             gateway_link =>        TRUE,
             private_target =>      TRUE,
             gateway_params =>      NULL
         );
     END;/
    

    Der Parameter ssl_server_cert_dn ist optional, wenn die Verbindung als TCP-basierter Datenbanklink (ohne Wallet) erstellt wird.

    Wenn directory_name NULL ist, wird die Verbindung als TCP-basierter Datenbanklink (ohne Wallet) erstellt.

    Der Parameter private_target muss auf TRUE gesetzt werden, wenn sich das Nicht-Oracle Database-Ziel auf einem privaten Endpunkt befindet (das heißt, der Datenbanklink greift auf einen Hostnamen zu, der in einem VCN-DNS-Server aufgelöst werden muss). Wenn private_target TRUE ist, muss der Parameter hostname ein einzelner Hostname sein (auf einem privaten Endpunkt, der eine IP-Adresse, eine SCAN-IP oder einen SCAN-Hostnamen verwendet, wird nicht unterstützt).

    Wenn gateway_link TRUE und gateway_params NULL ist, gibt dies an, dass der Datenbanklink zu einem vom Kunden verwalteten Oracle Gateway gehört.

    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.

  3. Verwenden Sie den Datenbanklink, den Sie erstellt haben, um auf Daten im Zielgateway zuzugreifen.

    Beispiel:

     SELECT * FROM employees@SALESLINK;
    

Für die in Schritt 1 erstellten Zugangsdaten, die Oracle Database Gateway-Zugangsdaten, können Sie die Zugangsdaten, die die Zugangsdaten des Zielbenutzers enthalten, 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;
/

Wobei das Kennwort das neue Kennwort ist

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.

Vom Kunden verwaltete heterogene Konnektivität zu Nicht-Oracle-Datenbanken auf einem privaten Endpunkt (mit einem Wallet)

Sie können Datenbanklinks von einer autonomen KI-Datenbank zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen, die sich auf einem privaten Endpunkt befinden, entweder mit einem Wallet (TCPS) oder ohne ein Wallet (TLS). In diesem Abschnitt wird beschrieben, wie Sie einen Datenbanklink mit einem Wallet erstellen.

Um Datenbanklinks von einer autonomen KI-Datenbankinstanz auf einem privaten Endpunkt zu einem Zielgateway zu erstellen und eine Verbindung mit einem Wallet herzustellen, gehen Sie wie folgt vor:

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

    Die Wallet-Datei bietet zusammen mit der Datenbankbenutzer-ID und dem Kennwort 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 in der autonomen KI-Datenbank Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die cwallet.sso speichern.

    Informationen zu den Benutzernamen- und Kennwortparametern für verschiedene Object Storage-Services finden Sie unter CREATE_CREDENTIAL Procedure.

  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.

    Hinweis: 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 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,
             private_target =>TRUE,
             gateway_params =>NULL
         );
     END;
     /
    

    Wenn directory_name nicht NULL ist, wird ein TCPS-basierter Datenbanklink erstellt.

    Der Parameter private_target muss auf TRUE gesetzt werden, wenn sich das Nicht-Oracle Database-Ziel auf einem privaten Endpunkt befindet (das heißt, der Datenbanklink greift auf einen Hostnamen zu, der in einem VCN-DNS-Server aufgelöst werden muss). Wenn private_target TRUE ist, muss der Parameter hostname ein einzelner Hostname sein (auf einem privaten Endpunkt, der eine IP-Adresse, eine SCAN-IP oder einen SCAN-Hostnamen verwendet, wird nicht unterstützt).

    Wenn gateway_link TRUE und gateway_params NULL ist, gibt dies an, dass der Datenbanklink zu einem vom Kunden verwalteten Oracle Gateway gehört.

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

    Weitere Informationen finden Sie unter CREATE_DATABASE_LINK-Prozedur.

  7. Verwenden Sie den Datenbanklink, den Sie erstellt haben, 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;
/

Wobei das Kennwort das neue Kennwort ist

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.

Verwandte Inhalte

DBMS_CLOUD-Package