【问题标题】:PL/SQL UTL_HTTP request returns "ORA-01031: insufficient privileges" on OCI AutonomousDBPL/SQL UTL_HTTP 请求在 OCI AutonomousDB 上返回“ORA-01031:权限不足”
【发布时间】: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;
/

【问题讨论】:

标签: oracle plsql oracle-cloud-infrastructure oracle-autonomous-db


【解决方案1】:

OCI 自治数据库不支持 UTL_HTTP -

Oracle Database Features That Are Not Supported

自治数据库不支持以下 Oracle 数据库功能、选项和包。

UTL_SMTP、UTL_HTTP 和 UTL_TCP PL/SQL 包


现在我知道了..

【讨论】:

    【解决方案2】:

    说“OCI 自治数据库不支持 UTL_HTTP”具有误导性。首先,您应该澄清您使用的是什么风格的 ADB。您引用的文档链接适用于专用 Exadata 基础架构上的自治数据库 (ADB-D)。 共享 Exadata 基础架构 (ADB-S) 上的自治数据库支持 UTL_HTTP,如 ADB-S doc 中所述。

    【讨论】:

    • 感谢您澄清“ctuzla”。事实上,它在 Shared 上可用。
    猜你喜欢
    • 2014-10-24
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2019-05-29
    相关资源
    最近更新 更多