运行 Oracle Database 12c 企业版 12.2.0.1.0 - 64 位生产。有一个包含基本身份验证凭据的钱包设置。
PL/sql 包正在通过 https 向外部服务器执行请求。acl 似乎设置正确,因为当我发出如下请求并执行一些操作时,我得到了结果。
D_Request_context := UTL_HTTP.CREATE_REQUEST_CONTEXT(
wallet_path => D_Path,
wallet_password => NULL,
enable_cookies => FALSE
);
D_Req := UTL_HTTP.BEGIN_REQUEST(
url => D_Url,
method => C_METHOD,
http_version => C_VERSION,
request_context => D_Request_context )
如果我调用相同的代码,但包含此调用
UTL_HTTP.SET_AUTHENTICATION_FROM_WALLET(
r => D_Req,
alias => 'myalias',
scheme => C_SCHEME,
for_proxy => false
);
我收到此错误:
ORA-29273: HTTP request failed
ORA-06512: at line 52
ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_HTTP", line 450
ORA-06512: at "SYS.UTL_HTTP"
那么为什么对 BEGIN_REQUEST 的调用通过了 ACL,而 SET_AUTHENTICATION_FROM_WALLET 却报错了呢?