Hello, when running an example of the following page https://oracle-base.com/articles/9i/consuming-web-services-9i
The oracle developer generates an error with the acl that says the following:
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.
How can I solve it? What dou you recommend?
First things first: I don't understand why you're following an Oracle 9i example if you're using Oracle 11g.
The error is self explanatory. You have to build an access control list and assign that permission to the user you want to allow access to external resources over HTTP.
In Oracle 11g, using any of these packages requires that configuration:
To validate that such configuration has not been done, one executes this query:
Creating ACLs is a two-step procedure. The first step is to create the ACL and define the privileges to give it. The standard syntax is:
The value for the includes
connect
parameter , which is required for the UTL_INTADDR package.privilege
resolve!
principal
specifies the first username assigned to the ACL and is case sensitive!An example of creating ACL with data is:
This creates an xml file with a list of users and privileges. It is located low
/sys/acl/
in the XML DB. How did I know you use Oracle 11g? Because this error does not happen in Oracle 9i, there is no XML DB in 9i and there is no fine-grained access control (control of access to external resources using HTTP).The second step is to assign network hosts to the ACL. The standard syntax is:
And an example with data:
Here you have to take into account that:
hosts
. Allows access to all hosts in a given domain.