Oracle
Oracle:如何在 Oracle 11 中將使用者添加到 HTTP ACL?
如何將使用者添加到網路 ACL(訪問控制列表)?
執行此程式碼時
declare req utl_http.req; begin req := utl_http.begin_request('http://example.com'); end;
我收到此錯誤。
ORA-24247: network access denied by access control list (ACL)
首先,查看您是否有針對埠 80(HTTP 埠)的 ACL。如果你這樣做,它應該看起來像這樣。
select * from dba_network_acls; HOST LOWER_PORT UPPER_PORT ACL ACLID --- ---------- ---------- --- ----- * 80 80 /sys/acls/www.xml 1FBEC09C32D78F5AE05335D6488A7883
如果需要重新創建它,可以使用以下命令刪除它:
dbms_network_acl_admin.drop_acl('www.xml');
創建 ACL:
dbms_network_acl_admin.create_acl( acl => 'www.xml', description => 'WWW ACL', principal => 'SCOTT', is_grant => true, privilege => 'connect' );
將主機和埠分配給 ACL:
dbms_network_acl_admin.assign_acl( acl => 'www.xml', host => '*', lower_port => 80 );
將使用者添加到 ACL:
dbms_network_acl_admin.add_privilege( acl => 'www.xml', principal => 'OE', is_grant => true, privilege => 'connect' );
版本說明: kevinsky指出這適用於 Oracle 11,但在 Oracle 12 中已更改。