Paquete DBMS_CLOUD_FUNCTION_ADMIN

El paquete DBMS_CLOUD_FUNCTION_ADMIN soporta la llamada a scripts genéricos desde una instancia de base de datos de IA autónoma y el registro de proveedores de identidad para la autenticación externa con Database Tools.

Resumen de Subprogramas DBMS_CLOUD_FUNCTION_ADMIN

En esta tabla se resumen los subprogramas incluidos en el paquete DBMS_CLOUD_FUNCTION_ADMIN.

Subprograma Descripción
Procedimiento DEREGISTER_REMOTE_EXECUTION_ENV Este procedimiento elimina un punto final que se registró anteriormente.
Procedimiento GRANT_REMOTE_EXECUTION_ENV Este procedimiento permite al usuario ADMIN otorgar privilegios en un punto final registrado a un usuario que no sea el usuario ADMIN.
Procedimiento REGISTER_REMOTE_EXECUTION_ENV Este procedimiento registra un entorno de punto final remoto.
Procedimiento REVOKE_REMOTE_EXECUTION_ENV Este procedimiento permite al usuario ADMIN revocar privilegios en un punto final registrado de un usuario que no sea ADMIN.
Procedimiento CREATE_IDP Este procedimiento permite al usuario ADMIN crear un nuevo proveedor de identidad para la autenticación externa. Este procedimiento no se utiliza para el registro del proveedor de identidad de OCI IAM.
Procedimiento UPDATE_IDP Este procedimiento permite al usuario ADMIN actualizar una entrada de proveedor de identidad existente identificada por idp_id.
Procedimiento DELETE_IDP Este procedimiento permite al usuario ADMIN eliminar un registro de proveedor de identidad de la base de datos.

DEREGISTER_REMOTE_EXECUTION_ENV Procedimiento

Este procedimiento elimina un punto final que se registró anteriormente.

Sintaxis

DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
   remote_endpoint_name IN VARCHAR2
);

Parámetros

Parámetro Descripción
remote_endpoint_name

Especifica el punto final remoto que se debe eliminar.

Este parámetro es obligatorio.

Ejemplo

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

Notas de uso

  • Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN.

GRANT_REMOTE_EXECUTION_ENV Procedimiento

Este procedimiento permite al usuario ADMIN otorgar privilegios en un punto final registrado a un usuario que no sea el usuario ADMIN.

Sintaxis

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

Parámetros

Parámetro Descripción
remote_endpoint_name

Especifica el nombre del punto final remoto registrado.

Este parámetro es obligatorio.

user_name

Especifica el nombre de usuario.

Este parámetro es obligatorio.

Ejemplo

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

Notas de uso

  • Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN.

REGISTER_REMOTE_EXECUTION_ENV Procedimiento

Este procedimiento registra un punto final remoto.

Sintaxis

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

Parámetros

Parámetro Descripción
remote_endpoint_name

Especifica el punto final remoto que se registrará.

Este parámetro es obligatorio.

remote_endpoint_url

Especifica la ubicación remota de la biblioteca.

El parámetro acepta un valor de cadena en formato host_name:port_number.

Por ejemplo: EHRPMZ_DBDOMAIN.adb-us-phoenix1.com:16000

Este parámetro es obligatorio.

wallet_dir

Especifica el directorio en el que se almacena la cartera autofirmada.

Este parámetro es obligatorio.

remote_cert_dn

Especifica el nombre distintivo (DN) del certificado de servidor.

Este parámetro es obligatorio.

Ejemplo

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

Notas de uso

  • Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN.

REVOKE_REMOTE_EXECUTION_ENV Procedimiento

Este procedimiento permite al usuario ADMIN revocar privilegios en un punto final registrado de un usuario que no sea ADMIN.

Sintaxis

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

Parámetros

Parámetro Descripción
remote_endpoint_name

Especifica el nombre del punto final remoto registrado.

Este parámetro es obligatorio.

user_name

Especifica el nombre de usuario.

Este parámetro es obligatorio.

Ejemplo

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

Notas de uso

  • Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN.

Procedimiento CREATE_IDP

Este procedimiento registra un proveedor de identidad externo (IDP) con su base de datos de IA autónoma. Este procedimiento no se utiliza para registrar la información del proveedor de identidad de OCI IAM.

Sintaxis

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

Parámetros

Parámetro Descripción
idp_name Especifica un nombre único para el registro del proveedor de identidad. Este parámetro es obligatorio.
client_id Especifica el identificador de cliente de la aplicación registrada con el proveedor de identidad. Este parámetro es obligatorio.
client_secret Especifica el secreto de cliente para la aplicación registrada. Este parámetro es obligatorio.
params Especifica un objeto JSON que contiene valores de configuración de proveedor de identidad. Este parámetro es obligatorio.

Parámetros JSON soportados

Parámetro Descripción
discovery_url Punto final de detección de OpenID Connect utilizado para recuperar metadatos de autenticación.

Para Microsoft Entra ID:

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

OCI IAM no necesita el registro de CREATE_IDP ni un valor discovery_url en este procedimiento.

Ejemplo: registro de ID de Microsoft Entra

En este ejemplo se muestra cómo registrar Microsoft Entra ID como proveedor de identidad externo mediante la URL de detección de OpenID Connect específica del inquilino.

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

Ejemplo: registro de AWS Cognito

En este ejemplo, se muestra cómo registrar AWS Cognito como proveedor de identidad externo mediante una URL de detección de Amazon Cognito OpenID Connect.

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

Ejemplo: Registro de Google Cloud Platform (GCP)

En este ejemplo se muestra cómo registrar Google Cloud como proveedor de identidad externo mediante la URL de detección de Google OpenID Connect.

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

Ejemplo: registro de Okta

En este ejemplo se muestra cómo registrar Okta como proveedor de identidad externo mediante la URL de detección de OpenID Connect del servidor de autorización de Okta.

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

Debe registrar un proveedor de identidad una vez para una base de datos a menos que necesite actualizar o sustituir el registro.

Proveedor ¿Se necesita CREATE_IDP? Patrón de URL de detección
IAM de OCI No aplicable OCI IAM está activado con DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION y no utiliza CREATE_IDP.
ID de Microsoft Entra (Azure) https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration
AWS Cognito https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration
Google Cloud Platform (GCP) https://accounts.google.com/.well-known/openid-configuration
Okta Servidor de organización: https://<okta-domain>/.well-known/openid-configuration
Servidor predeterminado/personalizado: https://<okta-domain>/oauth2/<authorization-server-id>/.well-known/openid-configuration

Procedimiento UPDATE_IDP

Este procedimiento modifica un registro de proveedor de identidad existente. Puede actualizar las credenciales de cliente, los metadatos del proveedor de identidad o ambos.

Sintaxis

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

Parámetros

Parámetro Descripción
idp_id Especifica el identificador único del registro del proveedor de identidad que se va a actualizar.
client_id Especifica el identificador de cliente actualizado. Este parámetro es opcional.
client_secret Especifica el secreto de cliente actualizado. Este parámetro es opcional.
params Especifica los parámetros de configuración de JSON actualizados. Este parámetro es opcional.

Ejemplo

En este ejemplo se muestra cómo actualizar las credenciales de cliente y la URL de detección de OpenID Connect para un registro de proveedor de identidad existente.

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

Notas de uso

  • Si proporciona client_id, también debe proporcionar client_secret. Si proporciona client_secret, también debe proporcionar client_id.
  • El valor idp_id se devuelve cuando se crea el proveedor de identidad.
  • Cualquier parámetro que se omite conserva su valor actual.
  • La actualización de un proveedor de identidad no afecta a los usuarios de base de datos existentes configurados para la autenticación externa.

Procedimiento DELETE_IDP

Este procedimiento elimina un proveedor de identidad registrado de la base de datos.

Sintaxis

DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
   idp_id IN VARCHAR2
);

Parámetros

Parámetro Descripción
idp_id Especifica el identificador único del registro del proveedor de identidad que se va a eliminar. Este parámetro es obligatorio.

Ejemplo

En este ejemplo se muestra cómo eliminar un registro de proveedor de identidad existente mediante su idp_id.

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

Notas de uso

  • Al suprimir un proveedor de identidad, se elimina la información de registro que utilizan las herramientas de base de datos para la autenticación externa.
  • Antes de suprimir un proveedor de identidad, asegúrese de que ninguna aplicación o usuario dependa de ese registro para la autenticación.
  • Los usuarios configurados para la autenticación de base de datos tradicional pueden seguir autenticándose con su nombre de usuario y contraseña de base de datos después de suprimir el registro de un proveedor de identidad.

Vista DBA_LIST_IDP

La vista DBA_LIST_IDP muestra los proveedores de identidad registrados para la autenticación externa en la base de datos de IA autónoma. Utilice esta vista para revisar el nombre del proveedor de identidad, el identificador de cliente y los metadatos de detección de OpenID Connect utilizados por las herramientas de base de datos y los flujos de autenticación externos.

Columnas

Columna Descripción
idp_id Identificador único del proveedor de identidad registrado. El valor se genera cuando se registra el proveedor de identidad.
idp_name Nombre del proveedor de identidad. Por ejemplo, AZURE_AD identifica el ID de Microsoft Entra como proveedor de identidad.
client_id Identificador de cliente para la aplicación registrada con el proveedor de identidad. Las herramientas de base de datos utilizan este valor cuando redirigen a los usuarios para la autenticación externa.
params Objeto JSON que almacena los parámetros de configuración del proveedor de identidad. El parámetro discovery_url identifica el punto final de detección de OpenID Connect para el proveedor de identidad.

Atributos JSON de PARAMS

Atributo Descripción
discovery_url URL de detección de OpenID Connect para el proveedor de identidad. La URL de detección devuelve metadatos como el punto final de autorización, el punto final de token, el emisor y las claves de firma. Para el ID de Microsoft Entra, esta URL utiliza el punto final .well-known/openid-configuration específico del inquilino.

Ejemplo

En este ejemplo se muestran las columnas seleccionadas para los proveedores de identidad registrados:

SELECT idp_id,
       idp_name,
       client_id,
       params
FROM dba_list_idp;

Salida de ejemplo:

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"}

En este ejemplo:

  • AZURE-ID es el identificador de proveedor de identidad generado.

  • AZURE_AD es el nombre del proveedor de identidad registrado.

  • CLIENT_ID es el ID de cliente de aplicación del ID de Microsoft Entra.

  • El valor PARAMS contiene el valor discovery_url que se utiliza para localizar la configuración de OpenID Connect para el inquilino de Entra ID.