Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-24247:достъпът до мрежата е отказан от списъка за контрол на достъпа (ACL)

Имам редовно планирана работа в база данни на Oracle RAC, която ще ми изпрати предупреждение по имейл за състояние. Това се случва на всеки 30 минути. Работата е неуспешна на един от възлите, но не и на другите. Работата изхвърля следните грешки:

ORA-12012: error on auto execute of job "OWNER"."JOB_NAME"
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_TCP", line 17
ORA-06512: at "SYS.UTL_TCP", line 267
ORA-06512: at "SYS.UTL_SMTP", line 161
ORA-06512: at "SYS.UTL_SMTP", line 197
ORA-06512: at "SYS.UTL_MAIL", line 386
ORA-06512: at "SYS.UTL_MAIL", line 599
ORA-06512: at line 41

Това, което е странно в този, е, че следното работи на всички случаи:

SQL> exec utl_mail.send(sender=>'[email protected]', -
> recipients=>'[email protected]', -
> subject=>'test from orcl1', -
> message=>'test from orcl1', -
> mime_type=>'text; charset=us-ascii');
PL/SQL procedure successfully completed.

Така че, когато изпратя имейла на екземпляра, той работи добре. Но собственикът на работата получава грешката. Така че създайте ACL и задайте privs.

SQL> exec dbms_network_acl_admin.create_acl ( -
> acl=>'utl_mail_acl.xml', -
> description=>'ACL for using UTL_MAIL', -
> principal=>'OWNER', -
> is_grant=>TRUE, -
> privilege=>'connect', -
> start_date=>SYSTIMESTAMP, -
> end_date=>NULL);
PL/SQL procedure successfully completed.
SQL> exec dbms_network_acl_admin.assign_acl( -
> acl=>'utl_mail_acl.xml', -
> host=>'smtprelay.acme.com', -
> lower_port=>25, upper_port=>NULL);
PL/SQL procedure successfully completed.
SQL> commit;
Commit complete.

Сега процедурата работи според указанията.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016 на Linux

  2. Ако изявление в рамките на клауза Къде

  3. Създайте електронна таблица на Excel от база данни на Oracle

  4. Oracle получава външни ключове

  5. Нулирайте последователност според годината, а не с минимална или максимална стойност