【发布时间】:2021-08-31 19:52:10
【问题描述】:
我正在尝试从 OCI 中的 PL/SQL 发出 REST/HTTP 请求。
在尝试 UTL_HTTP 时我很困惑(但使用 APEX_WEB_SERVICE 包成功)。
有人在 OCI AutonomousDB 上使用 UTL_HTTP 成功了吗?
BEGIN
UTL_HTTP.SET_WALLET('');
http_request := UTL_HTTP.begin_request(UTL_URL.Escape([url]), 'GET');
http_response := UTL_HTTP.get_response(http_request);
UTL_HTTP.read_text(http_response, return_text);
DBMS_OUTPUT.put_line (return_text);
END;
错误报告 – ORA-01031: 权限不足 ORA-06512: at “SYS.UTL_HTTP”,第 136 行 ORA-06512:在“SYS.UTL_HTTP”,第 1410 行
ORA-06512:在第 7 行
01031. 00000 - “权限不足”
*原因:试图执行数据库操作,但没有 必要的特权。
*行动:询问您的数据库管理员或指定的安全 管理员授予您必要的权限
我已按如下方式设置 ACL,因此授予 http 权限:
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '[domain]',
lower_port => 443,
upper_port => 443,
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => '[name]',
start_date => SYSTIMESTAMP,
principal_type => xs_acl.ptype_db));
END;
/
【问题讨论】:
-
来自doc 一定是https,所以你是尝试http还是https?
-
是的,这是一个 https - 需要 SSL 证书。所以我'SET_Wallet' - 期望亚马逊根证书自动从缓存的证书中进行身份验证?
标签: oracle plsql oracle-cloud-infrastructure oracle-autonomous-db