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_HTTP
,UTL_TCP
,UTL_SMTP
eUTL_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.
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;
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:
GRANT XDBADMIN TO Scott;
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
- Resolvendo o erro ORA-24247: negação de acesso à rede pela lista de controle de acesso (ACL)
- Erro ao enviar e-mail no Oracle 11g – ORA-24247: acesso à rede negado pela ACL
- Fórum Profissional Oracle: ORA-24247: acesso à rede negado pela ACL