sql >> Database teknologi >  >> RDS >> Oracle

ORA-24247:netværksadgang nægtet af adgangskontrolliste (ACL) under afsendelse af e-mail-oracle

Du behøver ikke nogen commit , da eksplicitte DML-operationer ikke udføres for disse operationer. Og ved at bruge begin..end blokke er heller ikke nødvendige for hver metode, der påberåber sig.

Dit problem stammer fra det faktum, at det er nødvendigt at påkalde Dbms_Network_Acl_Admin.Add_Privilege metode med privilege => 'connect' mulighed også. Så du kan bruge følgende :

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;

Med følgende forespørgsel kunne alle privilegerede adgange kontrolleres (gennem SYS- eller SYSTEM-skemaer ):

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. SQL:Find det gennemsnitlige antal dage mellem løbene for hver løber

  2. Entity Framework:Der er allerede en åben DataReader tilknyttet denne kommando

  3. Hvordan udfører man en lokal procedure ved hjælp af execute immedate?

  4. Vil du erstatte værdi inden for en kommasepareret streng i MySQL?