Как решить ORA-24247: доступ к сети запрещен списком контроля доступа (ACL) в хранимой процедуре Oracle - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть хранимая процедура Oracle 11g, которая принимает текстовый адрес и возвращает широту и долготу, используя Google API. Эта процедура использует функцию оракула utl_http.

Читая документацию Oracle по использованию этой функции, я увидел, что необходимо создать кошелек и связать сертификат URL HTTPS Google. Уже сделал это.

Мне также нужно создать ресурсы ACL, добавить привилегии и назначить ACL. Уже сделал это.

Но когда я выполняю процедуру, она всегда выдает ошибку ORA-24247

create or replace procedure test_procedure(p_address IN VARCHAR2, p_lat out number, p_long out number) is
l_http_request   UTL_HTTP.req;
...
begin
l_address := REPLACE(TRIM('TRAV. JOAQUIM A. SILVA, 286 - ALVORADA - GUANHÃES/MG CEP: 39740-000'), ' ', '+');
...
UTL_HTTP.set_wallet('file:/MY_ORACLE_HOME/admin/MY_SCHEMA/wallet', NULL);
l_request := 'https://maps.googleapis.com/maps/api/geocode/json?address=' ||
             l_address || chr(38) || 'language=pt-BR'||'&key=MyGoogleKey';
l_http_request := utl_http.begin_request(l_request,'GET','HTTP/1.1'); -- this line presents ORA-24247 error
...

Мои команды ACL

begin
DBMS_NETWORK_ACL_ADMIN.create_acl(
acl => 'www_google.xml', 
description => 'Google Maps Access', 
principal => 'MY_DB_USER', 
is_grant => TRUE, 
privilege => 'connect', 
start_date => NULL, 
end_date => NULL
); 

dbms_network_acl_admin.add_privilege (
acl        => 'www_google.xml',
principal  => 'MY_DB_USER',
is_grant   => TRUE,
privilege  => 'connect',
start_date => null,
end_date   => null
);

dbms_network_acl_admin.add_privilege (
acl        => 'www_google.xml',
principal  => 'MY_DB_USER',
is_grant   => TRUE,
privilege  => 'resolve',
start_date => null,
end_date   => null
);

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'www_google.xml',
host => '*.google.com',
lower_port => 25,
upper_port => 8080
);
end;

1 Ответ

0 голосов
/ 14 октября 2019

Проблема в неверном URL в параметре хоста в блоке DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...