Pacote DBMS_CLOUD_FUNCTION_ADMIN
O pacote DBMS_CLOUD_FUNCTION_ADMIN suporta a chamada de scripts genéricos de uma instância do Autonomous AI Database e o registro de provedores de identidades para autenticação externa com o serviço Database Tools.
Resumo dos Subprogramas DBMS_CLOUD_FUNCTION_ADMIN
Esta tabela resume os subprogramas incluídos no pacote DBMS_CLOUD_FUNCTION_ADMIN.
| Subprograma | Descrição |
|---|---|
| Procedimento DEREGISTER_REMOTE_EXECUTION_ENV | Este procedimento remove um ponto final que foi registrado anteriormente. |
| Procedimento GRANT_REMOTE_EXECUTION_ENV | Este procedimento permite que o usuário ADMIN conceda privilégios em um ponto final registrado a um usuário diferente do ADMIN. |
| Procedimento REGISTER_REMOTE_EXECUTION_ENV | Este procedimento registra um ambiente de ponto final remoto. |
| Procedimento REVOKE_REMOTE_EXECUTION_ENV | Este procedimento permite que o usuário ADMIN revogue privilégios em um ponto final registrado de um usuário diferente do ADMIN. |
| Procedimento CREATE_IDP | Este procedimento permite que o usuário ADMIN crie um novo provedor de identidades para autenticação externa. Este procedimento não é usado para registro do provedor de identidades do OCI IAM. |
| Procedimento UPDATE_IDP | Este procedimento permite que o usuário ADMIN atualize uma entrada existente do provedor de identidades identificada por idp_id. |
| Procedimento DELETE_IDP | Este procedimento permite que o usuário ADMIN remova um registro de provedor de identidades do banco de dados. |
DEREGISTER_REMOTE_EXECUTION_ENV Procedimento
Este procedimento remove um ponto final que foi registrado anteriormente.
Sintaxe
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
remote_endpoint_name |
Especifica o ponto final remoto a ser removido. Este parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/Observações de Uso
- Para executar este procedimento, você deve estar conectado como o usuário
ADMIN.
GRANT_REMOTE_EXECUTION_ENV Procedimento
Este procedimento permite que o usuário ADMIN conceda privilégios em um ponto final registrado a um usuário diferente do ADMIN.
Sintaxe
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2,
user_name IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
remote_endpoint_name |
Especifica o nome do ponto final remoto registrado. Este parâmetro é obrigatório. |
user_name |
Especifica o nome de usuário. Este parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => '<username>');
END;
/Observações de Uso
- Para executar este procedimento, você deve estar conectado como o usuário
ADMIN.
REGISTER_REMOTE_EXECUTION_ENV Procedimento
Este procedimento registra um ponto final remoto.
Sintaxe
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 | Descrição |
|---|---|
remote_endpoint_name |
Especifica o ponto final remoto a ser registrado. Este parâmetro é obrigatório. |
remote_endpoint_url |
Especifica a localização remota da biblioteca. O parâmetro aceita um valor de string no formato Por exemplo: Este parâmetro é obrigatório. |
wallet_dir |
Especifica o diretório no qual a wallet autoassinada é armazenada. Este parâmetro é obrigatório. |
remote_cert_dn |
Especifica o DN (Distinguished Name - Nome Distinto) do certificado do servidor. Este parâmetro é obrigatório. |
Exemplo
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;
/Observações de Uso
- Para executar este procedimento, você deve estar conectado como o usuário
ADMIN.
REVOKE_REMOTE_EXECUTION_ENV Procedimento
Este procedimento permite que o usuário ADMIN revogue privilégios em um ponto final registrado de um usuário diferente do ADMIN.
Sintaxe
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2,
user_name IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
remote_endpoint_name |
Especifica o nome do ponto final remoto registrado. Este parâmetro é obrigatório. |
user_name |
Especifica o nome de usuário. Este parâmetro é obrigatório. |
Exemplo
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => '<username>');
END;
/Observações de Uso
- Para executar este procedimento, você deve estar conectado como o usuário
ADMIN.
Procedimento CREATE_IDP
Este procedimento registra um provedor de identidades externo (IDP) no seu Autonomous AI Database. Este procedimento não é usado para registrar informações do provedor de identidades do OCI IAM.
Sintaxe
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 | Descrição |
|---|---|
idp_name |
Especifica um nome exclusivo para o registro do provedor de identidades. Este parâmetro é obrigatório. |
client_id |
Especifica o identificador do cliente do aplicativo registrado no provedor de identidades. Este parâmetro é obrigatório. |
client_secret |
Especifica o segredo do cliente para o aplicativo registrado. Este parâmetro é obrigatório. |
params |
Especifica um objeto JSON que contém valores de configuração do provedor de identidades. Este parâmetro é obrigatório. |
Parâmetros JSON Suportados
| Parâmetro | Descrição |
|---|---|
discovery_url |
Ponto final de descoberta do OpenID Connect usado para recuperar metadados de autenticação. Para o ID do Microsoft Entra: https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configurationO OCI IAM não requer registro CREATE_IDP ou um valor discovery_url neste procedimento. |
Exemplo: Registrar ID do Microsoft Entra
Este exemplo mostra como registrar o ID do Microsoft Entra como um provedor de identidades externo usando o URL de descoberta do OpenID Connect específico do tenant.
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;
/Exemplo: Registrar AWS Cognito
Este exemplo mostra como registrar o AWS Cognito como um provedor de identidades externo usando um URL de descoberta do 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;
/Exemplo: Registrar o Google Cloud Platform (GCP)
Este exemplo mostra como registrar o Google Cloud como um provedor de identidades externo usando o URL de descoberta do OpenID Connect do Google.
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;
/Exemplo: Registrar Okta
Este exemplo mostra como registrar o Okta como um provedor de identidades externo usando o URL de descoberta do OpenID Connect do servidor de autorização 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;
/Você deve registrar um provedor de identidades uma vez para um banco de dados, a menos que precise atualizar ou substituir o registro.
| Provedor | CREATE_IDP obrigatório? |
Padrão de URL de descoberta |
|---|---|---|
| IAM do OCI | Não | Não aplicável. O OCI IAM está ativado com DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION e não usa CREATE_IDP. |
| ID do Microsoft Entra (Azure) | Sim | https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration |
| AWS Cognito | Sim | https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration |
| Google Cloud Platform (GCP) | Sim | https://accounts.google.com/.well-known/openid-configuration |
| Okta | Sim | Servidor organizacional: https://<okta-domain>/.well-known/openid-configurationServidor padrão/personalizado: https://<okta-domain>/oauth2/<authorization-server-id>/.well-known/openid-configuration |
Procedimento UPDATE_IDP
Este procedimento modifica um registro de provedor de identidades existente. Você pode atualizar as credenciais do cliente, os metadados do provedor de identidades ou ambos.
Sintaxe
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 | Descrição |
|---|---|
idp_id |
Especifica o identificador exclusivo do registro do provedor de identidades a ser atualizado. |
client_id |
Especifica o identificador do cliente atualizado. Esse parâmetro é opcional. |
client_secret |
Especifica o segredo do cliente atualizado. Esse parâmetro é opcional. |
params |
Especifica os parâmetros de configuração JSON atualizados. Esse parâmetro é opcional. |
Exemplo
Este exemplo mostra como atualizar as credenciais do cliente e o URL de descoberta do OpenID Connect para um registro de provedor de identidades 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;
/Observações de Uso
- Se você fornecer
client_id, também deverá fornecerclient_secret. Se você fornecerclient_secret, também deverá fornecerclient_id. - O valor
idp_idé retornado quando o provedor de identidades é criado. - Qualquer parâmetro omitido mantém seu valor atual.
- A atualização de um provedor de identidades não afeta os usuários existentes do banco de dados configurados para autenticação externa.
Procedimento DELETE_IDP
Este procedimento remove um provedor de identidades registrado do banco de dados.
Sintaxe
DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
idp_id IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
idp_id |
Especifica o identificador exclusivo do registro do provedor de identidades a ser removido. Este parâmetro é obrigatório. |
Exemplo
Este exemplo mostra como remover um registro de provedor de identidades existente usando seu idp_id.
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
idp_id => 'AZURE-ID');
END;
/Observações de Uso
- A exclusão de um provedor de identidades remove as informações de registro usadas pelo serviço Database Tools para autenticação externa.
- Antes de excluir um provedor de identidades, certifique-se de que nenhum aplicativo ou usuário dependa desse registro para autenticação.
- Os usuários configurados para autenticação tradicional do banco de dados podem continuar a autenticação com seu nome de usuário e senha do banco de dados após a exclusão do registro de um provedor de identidades.
Visualização DBA_LIST_IDP
A view DBA_LIST_IDP mostra os provedores de identidade registrados para autenticação externa no Autonomous AI Database. Use essa exibição para revisar o nome do provedor de identidades, o identificador do cliente e os metadados de descoberta do OpenID Connect usados por ferramentas de banco de dados e fluxos de autenticação externos.
Colunas
| Coluna | Descrição |
|---|---|
idp_id |
Identificador exclusivo do provedor de identidades registrado. O valor é gerado quando o provedor de identidades é registrado. |
idp_name |
Nome do Provedor de Identidades. Por exemplo, AZURE_AD identifica o ID do Microsoft Entra como o provedor de identidades. |
client_id |
Identificador do cliente do aplicativo registrado no provedor de identidades. As ferramentas de banco de dados usam esse valor quando redirecionam usuários para autenticação externa. |
params |
Objeto JSON que armazena parâmetros de configuração do provedor de identidades. O parâmetro discovery_url identifica o ponto final de descoberta do OpenID Connect para o provedor de identidades. |
PARAMS - Atributos JSON
| Atributo | Descrição |
|---|---|
discovery_url |
URL de descoberta do OpenID Connect para o provedor de identidades. O URL de descoberta retorna metadados como o ponto final de autorização, o ponto final do token, o emissor e as chaves de assinatura. Para o ID do Microsoft Entra, esse URL usa o ponto final .well-known/openid-configuration específico do tenant. |
Exemplo
Este exemplo lista as colunas selecionadas para provedores de identidade registrados:
SELECT idp_id,
idp_name,
client_id,
params
FROM dba_list_idp;Amostra de saída:
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"}Neste exemplo:
-
AZURE-IDé o identificador do provedor de identidades gerado. -
AZURE_ADé o nome do provedor de identidades registrado. -
CLIENT_IDé o ID do cliente do aplicativo do ID do Microsoft Entra. -
O valor
PARAMScontém odiscovery_urlusado para localizar a configuração do OpenID Connect para o tenant Entra ID.