Observações do Pacote PL/SQL para o Autonomous Database

Observações sobre pacotes PL/SQL do Oracle Database no Autonomous Database.

Pacotes Não Disponíveis para PL/SQL

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP Observações do Pacote PL/SQL

Fornece observações para o pacote DBMS_LDAP:

  • Não é permitido especificar um endereço IP no nome do host.

  • A única porta permitida é a 636.

  • Os argumentos SSLWRL e SSLWALLETPASSWD para o procedimento OPEN_SSL são ignorados. O valor padrão da propriedade SSLWRL é definido como a wallet usada por UTL_HTTP e DBMS_CLOUD para fazer solicitações web de saída no Autonomous Database.

  • Os subprogramas DBMS_LDAP.SIMPLE_BIND_S e DBMS_LDAP.BIND_S executam a autenticação no servidor de diretórios.

    Os subprogramas DBMS_LDAP.SIMPLE_BIND_S e DBMS_LDAP.BIND_S são modificados para aceitar objetos de credencial como argumento.

    Veja a seguir as notas de uso e exemplos desses subprogramas modificados:

    • Os subprogramas SIMPLE_BIND_S e BIND_S modificados permitem que você passe objetos de credencial para definir a autenticação do servidor de diretórios. Os objetos de credenciais são objetos de esquema; portanto, eles só podem ser acessados por usuários privilegiados e permitem que você configure privilégios no nível do esquema para controlar as credenciais. Informar credenciais do scheduler é uma maneira apropriada e segura de armazenar e gerenciar nome de usuário/senha/chaves para autenticação.

    • Os subprogramas SIMPLE_BIND_S e BIND_S modificados são uma alternativa segura e conveniente para os subprogramas SIMPLE_BIND_S e BIND_S existentes anteriormente.

      Para obter mais informações, consulte FUNCTION simple_bind_s e FUNCTION bind_s.

    • O argumento CREDENTIAL das funções SIMPLE_BIND_S e BIND_S é usado para executar a autenticação baseada em credencial no servidor de diretórios.

    • Por exemplo:
      • Crie um objeto de credencial:

        BEGIN DBMS_CLOUD.CREATE_CREDENTIAL (
            credential_name => 'LDAP_CRED',
            username        => 'web_app_user',
            password        => 'password' );
        END;

        Isso cria um objeto de credencial que cria um par de nome de usuário/senha armazenado.

        Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

        Consulte Especificando Credenciais de Job do Scheduler para obter mais informações.

      • Chame DBMS_LDAP.SIMPLE_BIND_S:

        DECLARE
              l_mail_conn DBMS_LDAP.INIT;
            BEGIN 
              l_ldap_conn   := DBMS_LDAP.INIT('ldap.example.com', 636);
              l_auth_result := DBMS_LDAP.SIMPLE_BIND_S(l_ldap_conn, 'LDAP_CRED');
              ...
        END;
        

        O código neste exemplo primeiro chama a função DBMS_LDAP.INIT, que inicializa uma sessão com um servidor LDAP e estabelece uma conexão com o servidor LDAP ldap.example.com na porta número 636. O valor l_ldap_conn na função SIMPLE_BIND_S é o identificador da sessão LDAP e LDAP_CRED é o nome das credenciais.

      • O function bind_s executa autenticação complexa no servidor de diretórios. Por exemplo:

        DECLARE
              l_mail_conn DBMS_LDAP.INIT;
            BEGIN 
              l_ldap_conn   := DBMS_LDAP.INIT('ldap.example.com', 636);
              l_auth_result := DBMS_LDAP.BIND_S(l_ldap_conn, 'LDAP_CRED', METH => DBMS_LDAP.AUTH_SIMPLE);
              ...
        END;
        

        O código neste exemplo primeiro chama a função DBMS_LDAP.INIT, que inicializa uma sessão com um servidor LDAP e estabelece uma conexão com o servidor LDAP ldap.example.com na porta número 636. O valor l_ldap_conn na função BIND_S é o identificador da sessão LDAP e LDAP_CRED é o nome das credenciais. METH é o método de autenticação. O único valor válido é DBMS_LDAP_UTL.AUTH_SIMPLE.

    • Os privilégios EXECUTE em DBMS_CLOUD ou DWROLE são necessários para criar credenciais do scheduler.

    • A credencial informada deve estar presente no esquema atual ou ter um sinônimo apontando para uma credencial no esquema e estar no estado ativado.

    • Um sinônimo público ou privado que aponta para uma credencial em outro esquema de usuário pode ser fornecido como um valor para o parâmetro CREDENTIAL, desde que você tenha o privilégio EXECUTE no objeto de credencial base apontado pelo sinônimo. Para obter mais informações, consulte Visão Geral de Sinônimos.

  • O SSL/TLS é obrigatório em toda a comunicação entre o servidor LDAP e o Autonomous Database.

  • Quando a instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro de banco de dados ROUTE_OUTBOUND_CONNECTIONS como 'PRIVATE_ENDPOINT' para especificar que todas as conexões LDAP de saída estejam sujeitas às regras de saída da VCN do ponto final privado da instância do Autonomous Database. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

  • Para usar DBMS_LDAP para uma conexão em um ponto final privado, use DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE e especifique o parâmetro private_target com o valor TRUE.

    Observação

    Se você definir ROUTE_OUTBOUND_CONNECTIONS como PRIVATE_ENDPOINT, não será necessário definir o parâmetro private_target como TRUE nessa API. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.
  • DBMS_LDAP Erro

    Mensagem de Erro Possível Causa

    ORA-31400: Missing or invalid scheduler credential

    As credenciais informadas são NULL ou inválidas.

Consulte DBMS_LDAP em Referência de Tipos e Pacotes PL/SQL para obter mais informações.

DBMS_NETWORK_ACL_ADMIN Observações do Pacote PL/SQL

Fornece observações para o pacote DBMS_NETWORK_ACL_ADMIN:

  • Não é permitido conceder privilégios de ACL em endereços IP.

  • A ACL HTTP_PROXY é permitida em pontos finais privados.

Consulte DBMS_NETWORK_ACL_ADMIN em Referência de Tipos e Pacotes PL/SQL para obter mais informações.

UTL_HTTP Observações do Pacote PL/SQL

Fornece observações para o pacote UTL_HTTP:

  • Não são permitidas conexões por meio de endereços IP.

  • Somente HTTPS é permitido quando a instância do Autonomous Database está em um ponto final público. Quando a instância do Autonomous Database está em um ponto final privado, as conexões HTTPS e HTTP_PROXY são permitidas (as conexões HTTP não são permitidas para pontos finais públicos e privados).

  • A API UTL_HTTP.set_proxy é permitida quando a instância do Autonomous Database está em um ponto final privado.

  • Quando a instância do Autonomous Database está em um ponto final privado e você usa HTTP_PROXY ou a API UTL_HTTP.SET_PROXY:

    • As solicitações DBMS_CLOUD não respeitam o servidor proxy definido com UTL_HTTP.SET_PROXY. Isso inclui DBMS_CLOUD.SEND_REQUEST e todo o acesso de armazenamento de objetos para tabelas externas DBMS_CLOUD que você define com DBMS_CLOUD.CREATE_EXTERNAL_TABLE, DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE ou DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    • As solicitações APEX_WEB_SERVICE não respeitam o servidor proxy definido com UTL_HTTP.SET_PROXY.

  • Todos os web services devem ser protegidos. A única porta permitida é a 443 quando a instância do Autonomous Database está em um ponto final público. Quando a instância do Autonomous Database está em um ponto final privado, essa restrição não se aplica.

    Sua instância do Autonomous Database é pré-configurada com uma Oracle Wallet que contém mais de 90 dos certificados SSL intermediários e raiz confiáveis mais comuns. O Oracle Wallet é gerenciado centralmente. Você pode configurar UTL_HTTP para usar uma wallet para um site protegido usando certificados SSL autoassinados. Consulte Usar uma Wallet Gerenciada pelo Cliente para Chamadas Externas com UTL_HTTP para obter mais informações.

  • O procedimento SET_AUTHENTICATION_FROM_WALLET não é permitido.

  • Os argumentos WALLET_PATH e WALLET_PASSWORD dos procedimentos CREATE_REQUEST_CONTEXT, REQUEST e REQUEST_PIECES são ignorados.

  • O argumento CREDENTIAL do procedimento SET_CREDENTIAL é usado para informar o objeto de credencial como uma entrada para o procedimento. Consulte Especificando Credenciais do Job do Scheduler e Procedimento CREATE_CREDENTIAL para obter mais informações.

  • Os privilégios EXECUTE em DBMS_CLOUD ou DWROLE são necessários para criar objetos de credencial.

  • As credenciais informadas devem estar presentes no esquema do usuário atual e estar no estado ativado.

  • Um sinônimo público ou privado que aponta para uma credencial em outro esquema de usuário pode ser fornecido como um valor para o parâmetro CREDENTIAL, desde que você tenha o privilégio EXECUTE no objeto de credencial base apontado pelo sinônimo. Para obter mais informações, consulte Visão Geral de Sinônimos.

  • A configuração da Oracle Wallet não pode ser alterada. Todos os argumentos do procedimento SET_WALLET são ignorados.

  • Quando a instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro de banco de dados ROUTE_OUTBOUND_CONNECTIONS como 'PRIVATE_ENDPOINT' para especificar que todas as conexões UTL_HTTP de saída estejam sujeitas às regras de saída da VCN do ponto final privado da instância do Autonomous Database. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

  • UTL_HTTP Erros

    A tabela a seguir mostra mensagens de erro e as possíveis causas dessas mensagens ao usar UTL_HTTP:

    Mensagem de Erro Possível Causa

    ORA-12545: Connect failed because target host or object does not exist

    O host ou o objeto de destino não existe ou é privado.

    ORA-24247: network access denied by access control list (ACL)

    Não foi possível encontrar a lista de controle de acesso (ACL) para o host especificado.

    ORA-29024: Certificate validation failure

    O certificado do host não existe ou não está entre os certificados suportados.

    ORA-29261: Bad argument

    As credenciais informadas são inválidas ou desativadas ou o usuário não tem privilégios suficientes na credencial.

Consulte UTL_HTTP em Referência de Tipos e Pacotes PL/SQL para obter mais informações.

UTL_INADDR Observações do Pacote PL/SQL

Fornece observações para o pacote UTL_INADDR:

  • O pacote UTL_INADDR está disponível para uso em uma instância do Autonomous Database com um ponto final privado (PE).

  • A função GET_HOST_ADDRESS está disponível.

  • A função GET_HOST_NAME não está disponível.

Consulte UTL_INADDR em Referência de Tipos e Pacotes PL/SQL para obter mais informações.

UTL_SMTP Observações do Pacote PL/SQL

Fornece observações para o pacote UTL_SMTP:

  • Os pontos finais SMTP públicos podem ser usados desde que o roteamento seja feito por meio do ponto final de conexão reversa (RCE) do cliente.

  • Não são permitidos e-mails com um endereço IP no nome do host.

  • As únicas portas permitidas são 25 e 587.

  • O argumento CREDENTIAL da função SET_CREDENTIAL é usado para informar o objeto de credenciais do scheduler como uma entrada para a função. Consulte Especificando Credenciais do Job do Scheduler e Procedimento CREATE_CREDENTIAL para obter mais informações.

  • Os privilégios EXECUTE em DBMS_CLOUD ou DWROLE são necessários para criar objetos de credencial.

  • O argumento CREDENTIAL do procedimento SET_CREDENTIAL é usado para transmitir o objeto de objetos de credencial como uma entrada para o procedimento. Consulte Especificando Credenciais de Job do Scheduler para obter mais informações.

  • As credenciais informadas devem estar presentes no esquema do usuário atual e estar no estado ativado.

  • Um sinônimo público ou privado que aponta para uma credencial em outro esquema de usuário pode ser fornecido como um valor para o parâmetro CREDENTIAL, desde que você tenha o privilégio EXECUTE no objeto de credencial base apontado pelo sinônimo. Para obter mais informações, consulte Visão Geral de Sinônimos.

  • Quando a instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro de banco de dados ROUTE_OUTBOUND_CONNECTIONS como 'PRIVATE_ENDPOINT' para especificar que todas as conexões UTL_SMTP de saída estejam sujeitas às regras de saída da VCN do ponto final privado da instância do Autonomous Database. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

  • UTL_SMTP Erro

    Mensagem de Erro Possível Causa

    ORA-29261: Bad argument

    As credenciais informadas são inválidas ou desativadas ou o usuário não tem privilégios suficientes na credencial.

Consulte UTL_SMTP em Referência de Tipos e Pacotes PL/SQL para obter mais informações.

UTL_TCP Observações do Pacote PL/SQL

Fornece observações para o pacote UTL_TCP:

  • O endereço IP não é permitido no nome do host.

  • As únicas portas permitidas são: 443 (HTTP) 25 e 587 (SMTP).

  • Para a porta 443, somente URLs HTTPS são permitidos.

  • Os argumentos WALLET_PATH e WALLET_PASSWORD do procedimento OPEN_CONNECTION são ignorados. O valor padrão da propriedade WALLET_PATH e WALLET_PASSWORD é definido com a wallet usada por UTL_HTTP e DBMS_CLOUD para fazer solicitações web de saída no Autonomous Database.

  • O SSL/TLS é obrigatório a toda comunicação que ocorre por meio de conexões TCP/IP.

  • Quando a instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro de banco de dados ROUTE_OUTBOUND_CONNECTIONS como 'PRIVATE_ENDPOINT' para especificar que todas as conexões UTL_TCP de saída estejam sujeitas às regras de saída da VCN do ponto final privado da instância do Autonomous Database. Consulte Segurança Avançada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

Consulte UTL_TCP em Referência de Tipos e Pacotes PL/SQL para obter mais informações.