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

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

Pacotes PL/SQL Não Disponíveis

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP Observações do Pacote PL/SQL

Fornece notas para o pacote DBMS_LDAP:

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

  • A única porta permitida é 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 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.

    A seguir estão as notas de uso e exemplos desses subprogramas modificados:

    • Os subprogramas SIMPLE_BIND_S e BIND_S modificados permitem que você informe objetos de credencial para definir a autenticação do servidor de diretórios. Os objetos de credencial 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 acessar as credenciais. A aprovação de 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.

      Consulte FUNCTION simple_bind_s e FUNCTION bind_s para obter mais informações.

    • 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 CREATE_CREDENTIAL Procedures para obter mais informações.

        Consulte Especificando Credenciais do 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 handle de sessão LDAP e LDAP_CRED é o nome das credenciais.

      • O function bind_s executa uma 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 handle de 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 no 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 um esquema de usuário diferente 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. Consulte Visão Geral de Sinônimos para obter mais informações.

  • O SSL/TLS é imposto para todas as comunicações que ocorrem entre o servidor LDAP e o Autonomous Database.

  • Quando sua instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro do banco de dados ROUTE_OUTBOUND_CONNECTIONS como 'PRIVATE_ENDPOINT' para especificar que todas as conexões LDAP de saída estão sujeitas às regras de saída da VCN do ponto final privado da instância do Autonomous Database. Consulte Segurança Aprimorada 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 nesta API. Consulte Segurança Aprimorada para Conexões de Saída com Pontos Finais Privados para obter mais informações.
  • DBMS_LDAP Erro

    Mensagem de Erro Causa Potencial

    ORA-31400: Missing or invalid scheduler credential

    As credenciais especificadas são NULAS 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 notas 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.

DBMS_SCHEDULER Notas do Pacote

Fornece notas para o pacote DBMS_SCHEDULER.

No Autonomous Database, o procedimento DBMS_SCHEDULER.CREATE_JOB suporta os tipos de job PLSQL_BLOCK e STORED_PROCEDURE para o parâmetro job_type.

Usando um job_type não suportado, você pode ver mensagens como as seguintes:

ORA-27399: job type EXECUTABLE requires the CREATE EXTERNAL JOB privilege
ORA-27369: JOB OF TYPE EXECUTABLE FAILED WITH EXIT CODE: OPERATION NOT PERMITTED

Consulte Classes de Job Predefinidas com o Oracle Scheduler e DBMS_SCHEDULER para obter mais informações.

UTL_HTTP Observações do Pacote PL/SQL

Fornece notas 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, são permitidas conexões HTTPS e HTTP_PROXY (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 ao 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 é 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 raiz e intermediários mais confiáveis. O Oracle Wallet é gerenciado centralmente. Você pode configurar o 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 o UTL_HTTP para obter mais informações.

  • O procedimento SET_AUTHENTICATION_FROM_WALLET não é permitido.

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

  • O argumento CREDENTIAL do procedimento SET_CREDENTIAL é usado para passar 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 especificadas 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 um esquema de usuário diferente 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. Consulte Visão Geral de Sinônimos para obter mais informações.

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

  • Quando sua instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro do 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 Aprimorada 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 possíveis causas para essas mensagens de erro ao usar UTL_HTTP:

    Mensagem de Erro Causa Potencial

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

    O host ou 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) do 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 notas 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 notas 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 é permitido e-mail com um endereço IP no nome do host.

  • Os únicos portos permitidos 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 passar o objeto de objetos de credencial como uma entrada para o procedimento. Consulte Especificando Credenciais do Job do Scheduler para obter mais informações.

  • As credenciais especificadas 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 um esquema de usuário diferente 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. Consulte Visão Geral de Sinônimos para obter mais informações.

  • Quando sua instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro do 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 Aprimorada para Conexões de Saída com Pontos Finais Privados para obter mais informações.

  • UTL_SMTP Erro

    Mensagem de Erro Causa Potencial

    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 notas 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 como a wallet usada por UTL_HTTP e DBMS_CLOUD para fazer solicitações Web de saída no Autonomous Database.

  • O SSL/TLS é aplicado a todas as comunicações que acontecem em conexões TCP/IP.

  • Quando sua instância do Autonomous Database estiver configurada com um ponto final privado, defina o parâmetro do 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 Aprimorada 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.