Pular para o conteúdo

Erro ORA-24247: Negado Acesso à Rede pela Lista de Controle de Acesso (ACL)

Erro ORA-24247: Negado Acesso à Rede pela Lista de Controle de Acesso (ACL)

O erro ORA-24247 é um problema comum no Oracle Database e está relacionado ao controle de acesso à rede por meio de Listas de Controle de Acesso (ACLs). Neste artigo, exploraremos as causas desse erro, suas circunstâncias e como resolvê-lo. Além disso, forneceremos exemplos práticos e referências úteis.

Causas do Erro ORA-24247

Listas de Controle de Acesso (ACLs):
  • Antes do Oracle 11g, o acesso a serviços de rede era controlado por meio da concessão direta de privilégios em pacotes como UTL_HTTPUTL_TCPUTL_SMTP e UTL_MAIL.
  • A partir do Oracle 11.1, as ACLs foram introduzidas como parte da segurança de aplicativos. Elas substituíram a abordagem anterior e agora controlam o acesso a serviços de rede.
  • O erro ORA-24247 ocorre quando o acesso à rede é negado por uma ACL.

    Soluções para o Erro ORA-24247

    Criar uma Entrada de Controle de Acesso (ACE):
    • A melhor solução é criar uma ACE usando o procedimento DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE. Isso concede privilégios de controle de acesso a um usuário específico.
      PLSQL
      BEGIN
          DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
              HOST => 'mailhost.com',
              LOWER_PORT => NULL,
              UPPER_PORT => NULL,
              ACE => XS$ACE_TYPE(
                  PRIVILEGE_LIST => xs$name_list('smtp'),
                  PRINCIPAL_NAME => 'Scott',
                  PRINCIPAL_TYPE => xs_acl.ptype_db
              )
          );
      END;

      PLSQL
      SQL> BEGIN
        2      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
        3          HOST => 'mailhost.com',
        4          LOWER_PORT => NULL,
        5          UPPER_PORT => NULL,
        6          ACE => XS$ACE_TYPE(
        7              PRIVILEGE_LIST => xs$name_list('smtp'),
        8              PRINCIPAL_NAME => 'Scott',
        9              PRINCIPAL_TYPE => xs_acl.ptype_db
       10          )
       11      );
       12  END;
       13  /
      
      Procedimento PL/SQL concluído com êxito.
      
      SQL> GRANT XDBADMIN TO Scott;

      Conceder a Função XDBADMIN (não recomendado):
      • Embora não seja recomendado, você pode conceder a função XDBADMIN ao usuário que solicita acesso à rede:
      PLSQL
      GRANT XDBADMIN TO Scott;

      PLSQL
      SQL> GRANT XDBADMIN TO Scott;
      Grant succeeded.

      Circunstâncias em que o Erro ORA-24247 Ocorre:

      Configuração Incorreta de ACLs:
      • O erro pode ocorrer se a ACL não estiver configurada corretamente para permitir o acesso necessário.
      • Certifique-se de definir ACEs apropriadas para usuários específicos ou hosts.
      Falta de Privilégios:
      • Se um usuário não tiver privilégios suficientes para executar operações de rede, o erro ORA-24247 será gerado.
      • Verifique se o usuário tem as permissões adequadas para usar pacotes como UTL_HTTP.

        Conclusão

        O erro ORA-24247 é um desafio comum enfrentado por administradores e desenvolvedores Oracle. Ao entender suas causas e soluções, você estará melhor preparado para lidar com esse problema quando ele surgir.

        Lembre-se de sempre seguir as melhores práticas de segurança ao configurar ACLs e conceder privilégios aos usuários. A criação cuidadosa de ACEs e a concessão seletiva de funções são essenciais para manter a integridade e a segurança do seu banco de dados Oracle.

        Abs

        Referências

        Quão útil foi este post ?

        Clique em uma estrela para classificar o post

        nota média 4.9 / 5. Contagem de votos: 9

        Sem votos ! Seja o primeiro a classificar !

        Deixe um comentário

        O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

        plugins premium WordPress