sql >> Database >  >> RDS >> Oracle

ORA-24247:netwerktoegang geweigerd door toegangscontrolelijst (ACL) tijdens het verzenden van e-mail orakel

Je hebt geen commit nodig , aangezien expliciete DML-bewerkingen voor deze bewerkingen niet worden uitgevoerd. En met behulp van begin..end blokken ook niet nodig voor elke methode die wordt aangeroepen.

Uw probleem komt voort uit de noodzaak om Dbms_Network_Acl_Admin.Add_Privilege aan te roepen methode met privilege => 'connect' optie ook. U kunt dus het volgende gebruiken:

BEGIN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
                                    acl         => 'apex_user.xml',
                                    description => 'access to apex email',
                                    principal   => 'DBUSER',
                                    is_grant    => TRUE,
                                    privilege   => 'connect',
                                    start_date  => SYSTIMESTAMP,
                                    end_date    =>Null
                                    );
  DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
                                       acl       => 'apex_user.xml',
                                       principal => 'DBUSER',
                                       is_grant  => true,
                                       privilege => 'connect'
                                       );

  DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
                                       acl       => 'apex_user.xml',
                                       principal => 'DBUSER',
                                       is_grant  => true,
                                       privilege => 'resolve'
                                       );


  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
                                    acl         => 'apex_user.xml',
                                    host        => 'smtp.gmail.com',
                                    lower_port  =>587,
                                    upper_port  =>587
                                    );
 END;

Met de volgende query konden alle geprivilegieerde toegangen worden gecontroleerd ( via SYS- of SYSTEM-schema's ):

select a.host,p.*
  from dba_network_acl_privileges p
  join dba_network_acls a on a.aclid = p.aclid
 order by a.host, p.principal, p.privilege;


  1. IF ELSE verklaring toevoegen

  2. JShell gebruiken in Java 9 in NetBeans 9.0, deel 2

  3. PHP-script om MySQL-database te back-uppen

  4. MySQL-tabel met onjuist gecodeerde gegevens converteren naar UTF-8