【发布时间】:2020-05-19 06:21:15
【问题描述】:
我正在关注this tutorial 从 PL/SQL 访问安全的 Web 服务。以下代码有效(作为用户 SYSTEM):
select utl_http.request(
'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson',
wallet_path => 'file:c:\oracle\wallet\https_wallet',
wallet_password => '******'
) from dual;
但是,我需要使用apex_web_service.make_rest_request API 来代替utl_http.request 来获得它的附加功能:
select apex_web_service.make_rest_request(
p_url => 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson',
p_http_method => 'GET',
p_wallet_path => 'file:c:\oracle\wallet\https_wallet') from dual;
这会返回:
ORA-24247: network access denied by access control list (ACL)
我配置的 ACL:
select privilege, host, lower_port, upper_port
from dba_network_acl_privileges p
join dba_network_acls a on a.aclid = p.aclid
where principal = 'SYSTEM';
PRIVILEGE HOST LOWER_PORT UPPER_PORT
------------------------ ----- ---------- ----------
resolve *
connect *
use-client-certificates *
use-passwords *
http *
除了utl_http.request 之外,apex_web_service.make_rest_request 还需要哪些额外的 ACL 或特权?
使用 Oracle XE 18c / Windows 10
【问题讨论】:
标签: oracle web-services oracle-apex acl privileges