Home > Oracle Handling Error > ORA-24227: Network Access denied by Access Control list (ACL)

ORA-24227: Network Access denied by Access Control list (ACL)

January 13, 2010 Leave a comment Go to comments

Ketika saya baru saja memulai belajar coding mengirim email lewat Oracle,  ternyata ada kendala setelah menjalankan perintah pengirimannya yaitu muncul error ORA-24227: Network Access denied by Access Control list (ACL), kepikir mau diterusin atau gak belajar mengirim emailnya, akhirnya coba dilanjutin.

Dan akhirnya ketemu juga permasalahannya, ternyata error tersebut muncul dari Oracle Database 11gnya yang tidak mengenail webmail untuk mengirimnya sehingga perlu di assign terlebih dahulu. Dan  ternyata itulah Salah satu keunggulan dari Oracle Database 11g, jadi untuk membatasi / memberi grant user dalam memanggil  beberapa IP address aja, dan inilah yang disebut Access Control list (ACL)

Berikut solusi yang saya lakukan, kita buat Create list dahulu, yang berarti memberikan grant ACL untuk melakukan koneksi role sebagaimana berikut :

begin
dbms_network_acl_admin.create_acl (
acl => ‘utlpkg.xml’,
description => ‘Normal Access’,
principal => ‘CONNECT’,
is_grant => TRUE,
privilege => ‘connect’,
start_date => null,
end_date => null
);
end;

Setelah itu kita bisa cek ACL yang telah kita buat (cek acl yang dibuat -> utlpkg.xml) sudah terbuat atau tidak, dengan script berikut :

SELECT any_path
FROM resource_view
WHERE any_path like ‘/sys/acls/%.xml’;

Setelah ACL   berhasil dibuat, selanjutnya jalankan script untuk membatasi user yang dapat menjalankan ACL tersebut, User pada contoh dibawah yaitu SCOTT yang saya beri akses. berikut scriptnya

begin
dbms_network_acl_admin.add_privilege (
acl => ‘utlpkg.xml’,
principal => ‘SCOTT’,
is_grant => TRUE,
privilege => ‘connect’,
start_date => null,
end_date => null);
end;

Tambahkan host dan detail tambahan mengenai port yang bisa lewati, dari 1 hingga 10000, atau Anda bisa tentukan sendiri port yang diinginkan :

1 begin
2 dbms_network_acl_admin.assign_acl (
3 acl => ‘utlpkg.xml’,
4 host => ‘mail.test.com’,
5 lower_port => 1,
6 upper_port => 10000);
7* end;
8 /

Setelah itu beri grant ke user scott untuk utl_http :

SQL> grant execute on utl_http to scott

Grant succeeded.

PL/SQL procedure successfully completed.

Login ke user yang Scott, dan coba jalankan Query berikut :

SQL> conn scott/tiger
Connected.
SQL> select utl_http.request(‘http://www.pratesis.com’) from dual;

Untuk melihat detail dari ACL, kita query DBA_NETWORK_ACLS

select host, lower_port, upper_port, acl, aclid
from dba_network_acls
where ACL=’/sys/acls/utlpkg.xml’;

Categories: Oracle Handling Error
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: