Oracle Apex 异常:未经授权 URL
Oracle Apex exception: Unauthorized URL
我有一个 Oracle Apex 应用程序,我正在尝试发出 REST 请求,但我收到错误未授权 URL。
这是我的代码:
declare
l_clob clob;
begin
l_clob := APEX_WEB_SERVICE.make_rest_request(
p_url => 'http://oracle-base.com/webservices/add-numbers.php',
p_http_method => 'GET',
p_parm_name => APEX_UTIL.string_to_table('p_int_1:p_int_2'),
p_parm_value => APEX_UTIL.string_to_table(1 || ':' || 2)
) ;
return l_clob;
end;
错误:
Unauthorized URL: http://oracle-base.com/webservices/add-numbers.php
Contact your application administrator.
请问有人知道这是怎么回事吗?
谢谢。
您需要一个网络 ACL
如果您使用的是 Oracle 数据库 11g 或更高版本,您将需要一个 ACL 以允许访问外部网络服务。
下面是创建 ACL 以允许 MY_USER 用户访问 "oracle-base.com":
的 11g 示例
CONN / AS SYSDBA
BEGIN
DBMS_NETWORK_ACL_ADMIN.create_acl (
acl => 'oracle_base_acl.xml',
description => 'An ACL for the oracle-base.com website',
principal => 'MY_USER',
is_grant => TRUE,
privilege => 'connect',
start_date => SYSTIMESTAMP,
end_date => NULL);
DBMS_NETWORK_ACL_ADMIN.assign_acl (
acl => 'oracle_base_acl.xml',
host => 'oracle-base.com',
lower_port => 80,
upper_port => 80);
COMMIT;
END;
/
相反,如果您使用的是 12c:
CONN / AS SYSDBA
BEGIN
DBMS_NETWORK_ACL_ADMIN.append_host_ace (
host => 'oracle-base.com',
lower_port => 80,
upper_port => 80,
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'MY_USER',
principal_type => xs_acl.ptype_db));
END;
/
此致
我有一个 Oracle Apex 应用程序,我正在尝试发出 REST 请求,但我收到错误未授权 URL。
这是我的代码:
declare
l_clob clob;
begin
l_clob := APEX_WEB_SERVICE.make_rest_request(
p_url => 'http://oracle-base.com/webservices/add-numbers.php',
p_http_method => 'GET',
p_parm_name => APEX_UTIL.string_to_table('p_int_1:p_int_2'),
p_parm_value => APEX_UTIL.string_to_table(1 || ':' || 2)
) ;
return l_clob;
end;
错误:
Unauthorized URL: http://oracle-base.com/webservices/add-numbers.php
Contact your application administrator.
请问有人知道这是怎么回事吗?
谢谢。
您需要一个网络 ACL
如果您使用的是 Oracle 数据库 11g 或更高版本,您将需要一个 ACL 以允许访问外部网络服务。 下面是创建 ACL 以允许 MY_USER 用户访问 "oracle-base.com":
的 11g 示例CONN / AS SYSDBA
BEGIN
DBMS_NETWORK_ACL_ADMIN.create_acl (
acl => 'oracle_base_acl.xml',
description => 'An ACL for the oracle-base.com website',
principal => 'MY_USER',
is_grant => TRUE,
privilege => 'connect',
start_date => SYSTIMESTAMP,
end_date => NULL);
DBMS_NETWORK_ACL_ADMIN.assign_acl (
acl => 'oracle_base_acl.xml',
host => 'oracle-base.com',
lower_port => 80,
upper_port => 80);
COMMIT;
END;
/
相反,如果您使用的是 12c:
CONN / AS SYSDBA
BEGIN
DBMS_NETWORK_ACL_ADMIN.append_host_ace (
host => 'oracle-base.com',
lower_port => 80,
upper_port => 80,
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'MY_USER',
principal_type => xs_acl.ptype_db));
END;
/
此致