Mengatasi ORA-24247: network access denied by access control list (ACL) ORA-06512

Diposting pada

Di posting kali ini saya akan membagikan cara bagaimana mengatasi error saat melakukan exec pada UTL_MAIL di database Oracle yaitu error ORA-24247: network access denied by access control list (ACL) ORA-06512 hal cukup mudah saat proses konfigurasi send mail di database oracle pada level user SYS, kadang kita lupa untuk mendaftar user pada table dba_network_acl_privileges , table tersebut hanya bisa di akses menggunakan user yang mempunyai privilege contohnya user SYS.

Pertama-tama kita pastikan dahulu user yang akan melakukan exec UTL_MAIL di table dba_network_acl_privileges

SELECT * FROM DBA_NETWORK_ACL_PRIVILEGES

Kemudian cek ada datanya tidak di table tersebut, jika ada datanya silahkan cek di kolom PRINCIPAL user yang akan melakukan exec UTL_MAIL sudah ada atau belum. Jika belum kita akan akan menambahkannya

BEGIN
   DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILAGE (
      acl         => '/sys/acls/acl_bbo_sendmail_emapdrc.xml',
      principal   => 'NAMA_USER_AGAN',
      is_grant    => TRUE,
      privilage   => 'connect');
END;
COMMIT;


begin DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILAGE(acl=>’/sys/acls/acl_bbo_sendmail_emapdrc.xml’, principal => ‘NAMA_USER_AGAN’, is_grant => true, privilage => ‘connect’) end; commit;

acl database

Coba exec kembali function send mailnya, contoh script send email seperti berikut :

BEGIN
UTL_MAIL.SEND (
            SENDER       => 'asf@codeitworld.cm',
            recipients   => 'acep.sopian@gmail.co.id',
            subject      =>  'Test email database'
            MESSAGE      =>  'Hore Berhasil');
END;

Pastikan user yang akan melakukan exec sudah di mendapatkan grant SYS.UTL_HTTP, SYS.UTL_MAIL dan SYS.UTL_TCP

jika belum silahkan grant terlebih dahulu untuk ketiga function tersebut, code untuk grantnya :

1. GRANT EXECUTE ON SYS.UTL_HTTP TO NAMA_USER_AGAN;
2. GRANT EXECUTE ON SYS.UTL_MAIL TO NAMA_USER_AGAN;
3. GRANT EXECUTE ON SYS.UTL_TCP TO NAMA_USER_AGAN;

yang dapat memberikan hak akses grant hanya beberapa user tertentu, yang paling sakti user SYS.

Sekian tutorial kali ini happy coding 🙂

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *