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 host_name:port_number.

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

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-configuration

O 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-configuration
Servidor 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á fornecer client_secret. Se você fornecer client_secret, também deverá fornecer client_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 PARAMS contém o discovery_url usado para localizar a configuração do OpenID Connect para o tenant Entra ID.