【问题标题】:Getting an 'ORA-53203: security violation' when attempting to test HTTP connection尝试测试 HTTP 连接时收到“ORA-53203:安全违规”
【发布时间】:2019-06-07 13:09:42
【问题描述】:

我一直在尝试让 Oracle 调用 REST API。在进行设置和运行时,我们遇到了一个问题,即我们的代码会生成 ORA-53203:安全违规。在隔离问题的过程中,我们设置了一个程序来测试连接,这也会产生相同的错误。

我们使用的是 Oracle 12c,并且我们已经为我们正在测试的主机设置了 ACE/ACL 条目以获得“连接”和“解析”权限。

create or replace procedure showTitleTag ( i_url in varchar2 )
AS
    l_httpreq   UTL_HTTP.req;
    l_httpresp  UTL_HTTP.resp;
    l_text      varchar2(32767);
    l_response  CLOB;
    l_title     varchar2(32767);
BEGIN

    l_httpreq   := UTL_HTTP.begin_request(i_url);
    l_httpresp  := UTL_HTTP.get_response(l_httpreq);

    BEGIN
        LOOP
            UTL_HTTP.read_text(l_httpresp, l_text, 32766);
            l_response := l_response || l_text;
        END LOOP;
    EXCEPTION
        WHEN UTL_HTTP.end_of_body THEN
            UTL_HTTP.end_response(l_httpresp);
    END;

    l_title := REGEXP_REPLACE(l_response, '.*<title> ?(.+) ?</title>.*', '\1', 1, 1, 'in');
    DBMS_OUTPUT.put_line(l_title);

EXCEPTION
    WHEN OTHERS THEN
        UTL_HTTP.end_response(l_httpresp);
        RAISE;
END;

这段代码应该为我们提供网页标题标签的内容(我们使用“http://www.redhat.com”作为我们的测试 URL)。相反,我们收到以下错误:

ORA-29273: HTTP request failed
ORA-53203: security violation
ORA-06512: at "APPS.SHOWTITLETAG", line 29
ORA-06512: at line 1

【问题讨论】:

  • 我在 redhat.com 上尝试了您的代码,但由于我的 12.1 数据库中的证书错误而失败。我使用了foo.com,它起作用了-返回“Foo.com”

标签: oracle rest plsql


【解决方案1】:
  1. 您需要确保the related access control list (ACL) assigned and the right privilege has been granted to your target host.
  2. 如果第一个没问题,再看

    (select a.lower_port, a.upper_port from dba_network_acls a where a.host like '%i_url%')

    您是否为URL 的端口定义了间隔,以及 包含目标主机的端口。

【讨论】:

    猜你喜欢
    • 2011-06-22
    • 2019-08-12
    • 2011-08-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2021-05-15
    相关资源
    最近更新 更多