Datenbanklinks aus einer autonomen KI-Datenbank zu einer öffentlich zugänglichen Oracle Database mit einem Wallet (mTLS) erstellen

Sie können Datenbanklinks aus einer autonomen KI-Datenbank zu einer Oracle-Zieldatenbank erstellen, die sich auf einem öffentlichen Endpunkt befindet.

Um Datenbanklinks mit autonomen KI-Datenbank zu verwenden, muss die Zieldatenbank so konfiguriert sein, dass TCP/IP mit SSL-(TCPS-)Authentifizierung verwendet wird. Autonome KI-Datenbanken verwenden standardmäßig TCP/IP mit SSL-(TCPS-)Authentifizierung, sodass Sie keine zusätzliche Konfiguration in der Zieldatenbank vornehmen müssen, um eine Verbindung zu einer anderen autonomen KI-Datenbank herzustellen. Andere Oracle-Datenbanken müssen für die Verwendung von TCP/IP mit SSL-(TCPS-)Authentifizierung konfiguriert sein. Weitere Informationen finden Sie unter Secure Sockets Layer Authentication konfigurieren im Oracle Database 19c Security Guide oder im Oracle Database 26ai Security Guide.

Um Datenbanklinks zu einem öffentlichen Ziel zu erstellen, muss auf das Oracle Database-Ziel zugegriffen werden können. Einige Datenbanken können den Zugriff einschränken (z.B. mit Access Control-Listen). Stellen Sie sicher, dass die Zieldatenbank den Zugriff von der Quelldatenbank aus ermöglicht, damit der Datenbanklink funktioniert. Wenn Sie den Zugriff mit Access Control-Listen (ACLs) einschränken, können Sie die ausgehende IP-Adresse der autonomen KI-Quelldatenbank ermitteln und zulassen, dass diese IP-Adresse eine Verbindung zur Zieldatenbank herstellt.

Weitere Informationen finden Sie unter Datenbanklink von einer autonomen KI-Datenbank zu einer Database Cloud Service-Instanz erstellen.

So erstellen Sie Datenbanklinks zu einer Ziel-Oracle-Datenbank mit einem Wallet (mTLS):

  1. Kopieren Sie das Wallet der Zieldatenbank cwallet.sso mit den Zertifikaten für die Zieldatenbank in den Objektspeicher.

    Beachten Sie Folgendes für die Wallet-Datei:

    • Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten in der Ziel-Oracle Database. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.

    • Benennen Sie die Wallet-Datei nicht um. Die Wallet-Datei in Object Storage muss den Namen cwallet.sso haben.

  2. Erstellen Sie Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die Wallet-Datei cwallet.sso speichern. Informationen zu den Parametern für Benutzername und Kennwort für verschiedene Objektspeicherservices finden Sie unter 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 Wallet der Zieldatenbank in das Verzeichnis DBLINK_WALLET_DIR hochzuladen, das Sie im vorherigen Schritt 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:

    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 die Zieldatenbank.
  5. Erstellen Sie in der Autonomous AI Database-Instanz Zugangsdaten für den Zugriff auf die Zieldatenbank. Die mit DBMS_CLOUD.CREATE_CREDENTIAL angegebenen Zugangsdaten username und password sind die Zugangsdaten für die Zieldatenbank, mit der Sie den Datenbanklink erstellen.

    Hinweis:

    Sie müssen den Parameter credential_name angeben.

    Beispiel:

    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 einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden.

  6. Erstellen Sie den Datenbanklink zur Zieldatenbank mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Beispiel:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '1522',
            service_name => 'example_medium.atpc.example.oraclecloud.com',
            ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

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

    Wenn die Wallet-Datei in dem mit directory_name angegebenen Verzeichnis nicht cwallet.sso lautet, meldet die Prozedur einen Fehler wie: ORA-28759: failure to open file.

  7. Verwenden Sie den erstellten Datenbanklink, um auf Daten in der Zieldatenbank zuzugreifen.

    Beispiel:

    SELECT * FROM employees@SALESLINK;
                

Wenn sich für die Zugangsdaten, die Sie in Schritt 5 erstellt haben (die Zugangsdaten der Zieldatenbank), 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.

Weitere Informationen finden Sie hier:

Verwandte Themen

Hinweise zu Datenbanklinks mit einer Oracle Database-Zielinstanz

Bietet Hinweise zum Erstellen von Datenbanklinks zu einer Oracle-Zieldatenbank (wenn das Ziel keine autonome KI-Datenbank ist)

Hinweise zu Datenbanklinks zu anderen Oracle-Datenbanken:

  • Pro Verzeichnis ist nur eine Wallet-Datei zur Verwendung mit Datenbanklinks gültig. Sie können jeweils nur eine cwallet.sso-Datei in das Verzeichnis hochladen, das Sie für Wallet-Dateien ausgewählt haben (Beispiel: DBLINK_WALLET_DIR). Das bedeutet, dass Sie mit einer cwallet.sso-Datei in DBLINK_WALLET_DIR nur Datenbanklinks zu den Datenbanken erstellen können, für die das Wallet in diesem Verzeichnis gültig ist. Um mehrere cwallet.sso-Dateien mit Datenbanklinks zu verwenden, müssen Sie zusätzliche Verzeichnisse erstellen und jede cwallet.sso-Datei in einem anderen Verzeichnis ablegen. Wenn Sie Datenbanklinks mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK erstellen, geben Sie das Verzeichnis mit dem Wallet mit dem Parameter directory_name an.

    Informationen zum Erstellen von Verzeichnissen finden Sie unter Verzeichnis in Autonomous AI Database erstellen.

  • Folgende Oracle-Zieldatenbankversionen werden für Datenbanklinks zu einer anderen Oracle Database unterstützt: 19c, 12.2.0 und 12.1.0.

    Hinweis:

    Vollständige Informationen zu unterstützten Versionen finden Sie unter Client Server Interoperability Support Matrix for Different Oracle Versions (Dok.-ID 207303.1)
  • Autonome KI-Datenbank setzt den Parameter SEC_CASE_SENSITIVE_LOGON auf true, und dieser Wert kann nicht geändert werden. Wenn die Zieldatenbank keine autonome KI-Datenbank ist, müssen Sie den Parameter SEC_CASE_SENSITIVE_LOGON in der Zieldatenbank auf true setzen. Wenn SEC_CASE_SENSITIVE_LOGON in der Zieldatenbank auf false gesetzt ist, wird der Fehler ORA-28040: No matching authentication protocol ausgelöst.

  • Um die Datenbanklinks aufzulisten, verwenden Sie die Ansicht ALL_DB_LINKS. Weitere Informationen finden Sie unter ALL_DB_LINKS in Oracle Database 19c Database Reference oder Oracle Database 26ai Database Reference.

  • Die Wallet-Datei ermöglicht zusammen mit der Datenbankbenutzer-ID und dem Kennwort Zugriff auf Daten in der Ziel-Oracle-Datenbank. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.

  • Wenn sich die Autonomous AI Database-Instanz auf einem privaten Endpunkt befindet, gibt es zwei Optionen zur Angabe der Zieldatenbank: Verwenden Sie entweder den Parameter hostname oder den Parameter rac_hostnames:

    • Bei einem Ziel auf einem privaten Endpunkt unterstützt DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK die Angabe eines einzelnen Hostnamens mit dem Parameter hostname. Auf einem privaten Endpunkt wird die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens nicht unterstützt (wenn sich das Ziel auf einem öffentlichen Endpunkt befindet, unterstützt CREATE_DATABASE_LINK die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens).

    • Wenn das Ziel eine Oracle RAC-Datenbank ist, geben Sie mit dem Parameter rac_hostnames einen oder mehrere Hostnamen mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK an. Auf diese Weise können Sie die High Availability-Funktionen von Oracle RAC nutzen. Die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens im Wert rac_hostnames wird nicht unterstützt.

      Wenn Sie eine Liste der Hostnamen im Parameter rac_hostnames angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts nicht in der Oracle RAC-Zieldatenbank verfügbar ist, versucht Autonomous Database automatisch, eine Verbindung mit einem anderen Hostnamen aus der Liste herzustellen.
    • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK unterstützt keinen Wert von localhost für den Parameter hostname oder rac_hostnames.