После того, как привет скроллировали пример следующей страницы https://oracle-base.com/articles/9i/consuming-web-services-9i
oracle developer производит мне ошибку с acl, что скажи себе следующее:
ORA-29273: fallo de la solicitud HTTP
ORA-06512: en "SYS.UTL_HTTP", línea 1130
ORA-24247: acceso de red denegado por la lista de control de acceso (ACL)
ORA-06512: en "xxxxxx.SOAP_API", línea 150
ORA-06512: en "xxxxx.ADD_NUMBERS", línea 34
29273. 00000 - "HTTP request failed"
*Cause: The UTL_HTTP package failed to execute the HTTP request.
*Action: Use get_detailed_sqlerrm to check the detailed error message.
Fix the error and retry the HTTP request.
Как я могу решать это? Что они рекомендуют мне?
Первое: Я не понимаю из-за qué ты продолжаешь пример Oracle 9i, если estÃ: s используя Oracle 11g.
Ошибка автообъяснительная. Ты должен строить контрольный перечень доступа и распределять вышеупомянутое разрешение пользователю, которому ты хочешь позволить доступ к внешним ресурсам через HTTP.
В Oracle 11g, использовать любой из этих пакетов требует этого configuraci¦n:
UTL_TCP
UTL_SMTP
UTL_MAIL
UTL_HTTP
UTL_INADDR
, Чтобы санкционировать, что этот configuraci¦n не был сделан, один выполняет эту консультацию:
SELECT * FROM dba_network_acls;
creaci¦n ACL - процедура с двумя шагами. Первый шаг состоит в том, чтобы создавать ACL и определять привилегии, которые ему нужно давать. Синтаксис estÃ: ndar он:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => "file_name.xml",
description => "file description",
principal => "user_or_role",
is_grant => TRUE|FALSE,
privilege => "connect|resolve",
start_date => null|timestamp_with_time_zone,
end_date => null|timestamp_with_time_zone);
END;
Стоимость connect
для parÃ: метр privilege
включает resolve!
, который необходим для пакета UTL_INTADDR.
principal
определяет первый username, который распределяет ему ACL и есть вступите в брак sensitive! Пример creaci¦n ACL с данными:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'sysdba-ch-permissions.xml',
description => "Permissions for sysdba network',
principal => "LUTZ',
is_grant => TRUE,
privilege => 'connect');
END;
Это создает файл xml со списком пользователей и привилегий. Он помещен под /sys/acl/
в BD XML. Â: Какой c¦mo я узнал, что ты используешь Oracle 11g? Потому что эта ошибка не происходит в Oracle 9i, нет BD XML в 9i и нет умрите - grained access контроль (контроль доступа к внешним ресурсам используя HTTP).
Второй шаг состоит в том, чтобы распределять network hosts ACL. Синтаксис estÃ: ndar он:
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => "file_name.xml",
host => "network_host",
lower_port => null|port_number,
upper_port => null|port_number);
END;
И пример с данными:
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'sysdba-ch-permissions.xml',
host => "*.sysdba.ch',
lower_port => 80,
upper_port => null);
END;
Aquà - нужно иметь в виду, что:
hosts
. Позволь доступ ко всем hosts в данном домене.