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

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

Нямате нужда от commit , тъй като за тези операции не се изпълняват изрични DML операции. И използвайки begin..end блокове също не са необходими за всяко извикване на метод.

Вашият проблем произтича от факта, че е необходимо да извиквате Dbms_Network_Acl_Admin.Add_Privilege метод с privilege => 'connect' опция също. Така че можете да използвате следното:

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;

Със следната заявка всички привилегировани достъпи могат да бъдат проверени ( чрез SYS или SYSTEM схеми ):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle.ManagedDataAccess.EntityFramework - ORA-01918:потребител 'dbo' не съществува

  2. Oracle изрязва празното пространство от вътрешната страна на низ

  3. Вземане на запис с максимална дата

  4. Как да напиша pandas dataframe в база данни на oracle с помощта на to_sql?

  5. ПРОМЕНИ КОЛОНА в оракул - Как да проверим дали колона е нула, преди да се зададе на нула?