DBMS_CLOUD_FUNCTION_ADMIN-Package

Das Package DBMS_CLOUD_FUNCTION_ADMIN unterstützt das Aufrufen generischer Skripte aus einer autonomen KI-Datenbankinstanz und das Registrieren von Identitätsprovidern für die externe Authentifizierung mit Datenbanktools.

Zusammenfassung der DBMS_CLOUD_FUNCTION_ADMIN-Unterprogramme

In dieser Tabelle werden die Unterprogramme zusammengefasst, die im Package DBMS_CLOUD_FUNCTION_ADMIN enthalten sind.

Unterprogramm Beschreibung
Prozedur DEREGISTER_REMOTE_EXECUTION_ENV Mit dieser Prozedur wird ein Endpunkt entfernt, der zuvor registriert wurde.
Prozedur GRANT_REMOTE_EXECUTION_ENV Mit dieser Prozedur kann der ADMIN-Benutzer einem anderen Benutzer als dem ADMIN Berechtigungen für einen registrierten Endpunkt erteilen.
Prozedur REGISTER_REMOTE_EXECUTION_ENV Diese Prozedur registriert eine Remote-Endpunktumgebung.
Prozedur REVOKE_REMOTE_EXECUTION_ENV Mit dieser Prozedur kann der ADMIN-Benutzer Berechtigungen für einen registrierten Endpunkt einem anderen Benutzer als dem ADMIN entziehen.
Prozedur CREATE_IDP Mit dieser Prozedur kann der ADMIN-Benutzer einen neuen Identitätsprovider für die externe Authentifizierung erstellen. Diese Prozedur wird nicht für die OCI IAM-Identitätsproviderregistrierung verwendet.
Prozedur UPDATE_IDP Mit dieser Prozedur kann der ADMIN-Benutzer einen vorhandenen Identitätsprovidereintrag aktualisieren, der mit idp_id identifiziert wird.
DELETE_IDP-Prozedur Mit dieser Prozedur kann der ADMIN-Benutzer eine Identitätsproviderregistrierung aus der Datenbank entfernen.

Prozedur DEREGISTER_REMOTE_EXECUTION_ENV

Mit dieser Prozedur wird ein Endpunkt entfernt, der zuvor registriert wurde.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2
);

Parameter

Parameter Beschreibung
remote_endpoint_name

Gibt den Remoteendpunkt an, der entfernt werden soll.

Dieser Parameter ist obligatorisch.

Beispiel

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE');
END;
/

Hinweise zur Verwendung

  • Um diese Prozedur ausführen zu können, müssen Sie als Benutzer ADMIN angemeldet sein.

Prozedur GRANT_REMOTE_EXECUTION_ENV

Mit dieser Prozedur kann der ADMIN-Benutzer einem anderen Benutzer als dem ADMIN Berechtigungen für einen registrierten Endpunkt erteilen.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   user_name            IN VARCHAR2
);

Parameter

Parameter Beschreibung
remote_endpoint_name

Gibt den Namen des registrierten Remoteendpunkts an.

Dieser Parameter ist obligatorisch.

user_name

Gibt den Benutzernamen an.

Dieser Parameter ist obligatorisch.

Beispiel

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      user_name            => '<username>');
END;
/

Hinweise zur Verwendung

  • Um diese Prozedur ausführen zu können, müssen Sie als Benutzer ADMIN angemeldet sein.

Prozedur REGISTER_REMOTE_EXECUTION_ENV

In diesem Verfahren wird ein Remoteendpunkt registriert.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   remote_endpoint_url  IN CLOB,
   wallet_dir           IN VARCHAR2,
   remote_cert_dn       IN CLOB
);

Parameter

Parameter Beschreibung
remote_endpoint_name

Gibt den zu registrierenden Remoteendpunkt an.

Dieser Parameter ist obligatorisch.

remote_endpoint_url

Gibt die Remote-Position der Bibliothek an.

Der Parameter akzeptiert einen Zeichenfolgenwert im Format host_name:port_number.

Beispiel: EHRPMZ_DBDOMAIN.adb-us-phoenix1.com:16000

Dieser Parameter ist obligatorisch.

wallet_dir

Gibt das Verzeichnis an, in dem das selbstsignierte Wallet gespeichert ist.

Dieser Parameter ist obligatorisch.

remote_cert_dn

Gibt den Distinguished Name (DN) des Serverzertifikats an.

Dieser Parameter ist obligatorisch.

Beispiel

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      remote_endpoint_url  => 'remote_hostname:16000',
      wallet_dir           => 'WALLET_DIR',
      remote_cert_dn       => 'CN=VM Hostname');
END;
/

Hinweise zur Verwendung

  • Um diese Prozedur ausführen zu können, müssen Sie als Benutzer ADMIN angemeldet sein.

Prozedur REVOKE_REMOTE_EXECUTION_ENV

Mit dieser Prozedur kann der ADMIN-Benutzer Berechtigungen für einen registrierten Endpunkt einem anderen Benutzer als dem ADMIN entziehen.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2,
   user_name            IN VARCHAR2
);

Parameter

Parameter Beschreibung
remote_endpoint_name

Gibt den Namen des registrierten Remoteendpunkts an.

Dieser Parameter ist obligatorisch.

user_name

Gibt den Benutzernamen an.

Dieser Parameter ist obligatorisch.

Beispiel

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
      remote_endpoint_name => 'REM_EXECUTABLE',
      user_name            => '<username>');
END;
/

Hinweise zur Verwendung

  • Um diese Prozedur ausführen zu können, müssen Sie als Benutzer ADMIN angemeldet sein.

Prozedur CREATE_IDP

Bei dieser Prozedur wird ein externer Identitätsprovider (IDP) bei Ihrer autonomen KI-Datenbank registriert. Diese Prozedur wird nicht zum Registrieren von OCI IAM-Identitätsproviderinformationen verwendet.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
   idp_name        IN VARCHAR2,
   client_id       IN VARCHAR2,
   client_secret   IN VARCHAR2,
   params          IN JSON
);

Parameter

Parameter Beschreibung
idp_name Gibt einen eindeutigen Namen für die Identitätsproviderregistrierung an. Dieser Parameter ist obligatorisch.
client_id Gibt die Client-ID aus der beim Identitätsprovider registrierten Anwendung an. Dieser Parameter ist obligatorisch.
client_secret Gibt das Client Secret für die registrierte Anwendung an. Dieser Parameter ist obligatorisch.
params Gibt ein JSON-Objekt an, das Konfigurationswerte für Identitätsprovider enthält. Dieser Parameter ist obligatorisch.

Unterstützte JSON-Parameter

Parameter Beschreibung
discovery_url OpenID Connect-Discovery-Endpunkt zum Abrufen von Authentifizierungsmetadaten.

Für Microsoft Entra-ID:

https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration

OCI IAM erfordert in diesem Beispiel keine CREATE_IDP-Registrierung oder einen discovery_url-Wert.

Beispiel: Microsoft Entra ID registrieren

In diesem Beispiel wird gezeigt, wie Sie die Microsoft Entra-ID mit der mandantenspezifischen OpenID Connect-Discovery-URL als externen Identitätsprovider registrieren.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name      => 'AZURE_AD',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE
                         'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/

Beispiel: AWS Cognito registrieren

Dieses Beispiel zeigt, wie Sie AWS Cognito als externen Identitätsprovider mit einer Amazon Cognito OpenID Connect-Discovery-URL registrieren.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'AWS',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration'
                           ));
END;
/

Beispiel: Google Cloud Platform (GCP) registrieren

Dieses Beispiel zeigt, wie Sie Google Cloud mit der Discovery-URL von Google OpenID Connect als externen Identitätsprovider registrieren.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'GCP',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://accounts.google.com/.well-known/openid-configuration'
                           ));
END;
/

Beispiel: Okta registrieren

In diesem Beispiel wird gezeigt, wie Sie Okta mit der OpenID Connect-Discovery-URL des Okta-Autorisierungsservers als externen Identitätsprovider registrieren.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name       => 'OKTA',
      client_id      => '<client-id>',
      client_secret  => '<client-secret>',
      params         => JSON_OBJECT(
                           'discovery_url' VALUE
                           'https://<okta-domain>/oauth2/default/.well-known/openid-configuration'
                           ));
END;
/

Sie müssen einen Identitätsprovider einmalig für eine Datenbank registrieren, es sei denn, Sie müssen die Registrierung aktualisieren oder ersetzen.

Provider CREATE_IDP erforderlich? Discovery-URL-Muster
OCI-IAM Nein Nicht anwendbar. OCI IAM ist mit DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION aktiviert und verwendet nicht CREATE_IDP.
Microsoft Entra-ID (Azure) Ja https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration
AWS Cognito Ja https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration
Google Cloud Platform (GCP) Ja https://accounts.google.com/.well-known/openid-configuration
Okta Ja Org.-Server: https://<okta-domain>/.well-known/openid-configuration
Standard-/benutzerdefinierter Server: https://<okta-domain>/oauth2/<authorization-server-id>/.well-known/openid-configuration

Prozedur UPDATE_IDP

Mit diesem Verfahren wird eine vorhandene Identitätsproviderregistrierung geändert. Sie können die Clientzugangsdaten, Identitätsprovider-Metadaten oder beides aktualisieren.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
   idp_id          IN VARCHAR2,
   client_id       IN VARCHAR2 DEFAULT NULL,
   client_secret   IN VARCHAR2 DEFAULT NULL,
   params          IN JSON DEFAULT NULL
);

Parameter

Parameter Beschreibung
idp_id Gibt die eindeutige ID der zu aktualisierenden Identitätsproviderregistrierung an.
client_id Gibt die aktualisierte Client-ID an. Dieser Parameter ist optional.
client_secret Gibt das aktualisierte Client Secret an. Dieser Parameter ist optional.
params Gibt die aktualisierten JSON-Konfigurationsparameter an. Dieser Parameter ist optional.

Beispiel

In diesem Beispiel wird gezeigt, wie Sie die Clientzugangsdaten und die OpenID Connect-Discovery-URL für eine vorhandene Identitätsproviderregistrierung aktualisieren.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
      idp_id        => '<idp-id>',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE
                         'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/

Hinweise zur Verwendung

  • Wenn Sie client_id angeben, müssen Sie auch client_secret angeben. Wenn Sie client_secret angeben, müssen Sie auch client_id angeben.
  • Der Wert idp_id wird zurückgegeben, wenn der Identitätsprovider erstellt wird.
  • Jeder ausgelassene Parameter behält seinen aktuellen Wert bei.
  • Die Aktualisierung eines Identitätsproviders wirkt sich nicht auf vorhandene Datenbankbenutzer aus, die für die externe Authentifizierung konfiguriert sind.

DELETE_IDP-Prozedur

Mit dieser Prozedur wird ein registrierter Identitätsprovider aus der Datenbank entfernt.

Syntax

DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
   idp_id IN VARCHAR2
);

Parameter

Parameter Beschreibung
idp_id Gibt die eindeutige ID der Identitätsproviderregistrierung an, die entfernt werden soll. Dieser Parameter ist obligatorisch.

Beispiel

In diesem Beispiel wird gezeigt, wie Sie eine vorhandene Identitätsproviderregistrierung mit der zugehörigen idp_id entfernen.

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
      idp_id => 'AZURE-ID');
END;
/

Hinweise zur Verwendung

  • Wenn Sie einen Identitätsprovider löschen, werden die Registrierungsinformationen entfernt, die von Datenbanktools für die externe Authentifizierung verwendet werden.
  • Stellen Sie vor dem Löschen eines Identitätsproviders sicher, dass keine Anwendungen oder Benutzer zur Authentifizierung von dieser Registrierung abhängig sind.
  • Benutzer, die für die traditionelle Datenbankauthentifizierung konfiguriert sind, können sich weiterhin mit ihrem Datenbankbenutzernamen und -kennwort authentifizieren, nachdem eine Identitätsproviderregistrierung gelöscht wurde.

Ansicht - DBA_LIST_IDP

In der Ansicht DBA_LIST_IDP werden die Identitätsprovider angezeigt, die für die externe Authentifizierung in der autonomen KI-Datenbank registriert sind. In dieser Ansicht können Sie den Namen des Identitätsproviders, die Client-ID und die OpenID Connect-Discovery-Metadaten prüfen, die von Datenbanktools und externen Authentifizierungsflüssen verwendet werden.

Säulen

Spalte Beschreibung
idp_id Eindeutige ID für den registrierten Identitätsprovider. Der Wert wird generiert, wenn der Identitätsprovider registriert wird.
idp_name Name des Identitätsproviders. Beispiel: AZURE_AD identifiziert die Microsoft Entra-ID als Identitätsprovider.
client_id Client-ID für die beim Identitätsprovider registrierte Anwendung. Datenbanktools verwenden diesen Wert, wenn sie Benutzer zur externen Authentifizierung umleiten.
params JSON-Objekt, das Konfigurationsparameter des Identitätsproviders speichert. Der Parameter discovery_url identifiziert den OpenID Connect-Discovery-Endpunkt für den Identitätsprovider.

PARAMS-JSON-Attribute

Attribut Beschreibung
discovery_url OpenID Connect-Discovery-URL für den Identitätsprovider. Die Discovery-URL gibt Metadaten wie Autorisierungsendpunkt, Tokenendpunkt, Aussteller und Signaturschlüssel zurück. Bei der Microsoft Entra-ID verwendet diese URL den mandantenspezifischen .well-known/openid-configuration-Endpunkt.

Beispiel

In diesem Beispiel werden ausgewählte Spalten für registrierte Identitätsprovider aufgelistet:

SELECT idp_id,
       idp_name,
       client_id,
       params
FROM dba_list_idp;

Beispielausgabe:

IDP_ID     IDP_NAME   CLIENT_ID              PARAMS
---------- ---------- ---------------------- ------------------------------------------------------------
AZURE-ID   AZURE_AD   5691bae2-XXX-YYY-ZZZ   {"discovery_url":"https://login.microsoftonline.com/XXXX-YYYY-ZZZ-KKK-/v2.0/.well-known/openid-configuration"}

In diesem Beispiel gilt:

  • AZURE-ID ist die generierte Identitätsprovider-ID.

  • AZURE_AD ist der Name des registrierten Identitätsproviders.

  • CLIENT_ID ist die Anwendungsclient-ID der Microsoft Entra-ID.

  • Der Wert PARAMS enthält discovery_url, mit dem die OpenID Connect-Konfiguration für den Entra-ID-Mandanten gesucht wird.