sql >> データベース >  >> RDS >> Oracle

ORA-24247:電子メールOracleの送信中にアクセス制御リスト(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. Accessのクロス集計クエリで欠落しているフィールドを修正する方法

    2. Oracle MERGEステートメントエラー(ORA-30926)

    3. phpmysql_connectリソースは常に同じです

    4. PHPのMySQL接続の詳細を配置するための最も安全な場所はどこですか