30 Dec 2019

ACL dalam oracle 11g

Pernah nggak ketika query url menggunakan prosedur oracle kemudian error . Contoh hasilnya seperti di bawah ini :

Procedure execution failed

ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1130
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "HANANG.PROC_UPD_TEST", line 17
ORA-06512: at line 1


Time: 0.003s

Terlihat dari error diatas pada prosedur HANANG.PROC_UPD_TEST tidak dapat dilakukan karena network access denied by access control list.

Untuk mengeceknya caranya :

SQL> SELECT any_path FROM resource_view WHERE any_path like '/sys/acls/%.xml';

ANY_PATH
--------------------------------------------------------------------------------
/sys/acls/all_all_acl.xml
/sys/acls/all_owner_acl.xml
/sys/acls/bootstrap_acl.xml
/sys/acls/ro_all_acl.xml

ANY_PATH
--------------------------------------------------------------------------------
/sys/acls/ro_anonymous_acl.xml
/sys/acls/utl_http.xml
/sys/acls/utl_json.xml

14 rows selected.

Membuat ACL Baru

begin
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
acl => 'http_permissions.xml',
description => 'Network Access Untuk User HANANG',
principal => 'HANANG',
is_grant => true, privilege => 'connect');
end;
/
commit;


Menambah ACL pada file yang telah ada

begin
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'http_permissions.xml',
principal => 'FINANCE',
is_grant => true, privilege => 'connect');
end;
/
commit;

Menetapkan ACL

BEGIN

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'http_permissions.xml',
principal => 'HANANG',
is_grant => true,
privilege => 'resolve');
end;
/
commit;

Referensi
https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_networkacl_adm.htm#BABCJDGC

Leave a Reply