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 Por ejemplo: 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-configurationOCI 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 | Nº | No aplicable OCI IAM está activado con DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION y no utiliza CREATE_IDP. |
| ID de Microsoft Entra (Azure) | Sí | https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration |
| AWS Cognito | Sí | https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration |
| Google Cloud Platform (GCP) | Sí | https://accounts.google.com/.well-known/openid-configuration |
| Okta | Sí | Servidor de organización: https://<okta-domain>/.well-known/openid-configurationServidor 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 proporcionarclient_secret. Si proporcionaclient_secret, también debe proporcionarclient_id. - El valor
idp_idse 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-IDes el identificador de proveedor de identidad generado. -
AZURE_ADes el nombre del proveedor de identidad registrado. -
CLIENT_IDes el ID de cliente de aplicación del ID de Microsoft Entra. -
El valor
PARAMScontiene el valordiscovery_urlque se utiliza para localizar la configuración de OpenID Connect para el inquilino de Entra ID.