How can a add acl rules for Oracle 11g to allow pl/sql upload file - oracle

In Oracle 11g ,the database has an Fine-Grained network access control list, so when i use pl/sql to upload a file to the ftp_server,it gives me a network access error.
The error information like this:
error at 1 line:
ORA-29260: network error:not connected
ORA-06512: at "SYS.UTL_TCP", line 212
ORA-06512: at "SYS.UTL_TCP", line 432
ORA-06512: at "SCOTT.FTP", line 413
ORA-24247: Network access rejected by acl
ORA-06512: at "SCOTT.FTP", line 491
ORA-06512: at line 6
I want to know how can i do about creating acl rules so that i can get the privilege.
Thanks

Here's a tutorial about ACL in Oracle.

Related

Oracle Cloud, access Flask Server on Compute Instance from Autonomous Database

I build a Flask Python REST app on a Oracle Cloud compute instance. The REST Call works from my client just fine. (I added Ingress Rule for 0.0.0.0/0).
My plan is to have the Comupute Instance only accesible from my ATP Database and call the REST Service from PL/SQL. When I try to call the Webservice, I get the following error:
DECLARE
l_clob CLOB;
BEGIN
l_clob := apex_web_service.make_rest_request(
p_url => 'https://130.zz.yy.xx:5000/test',
--p_url=> 'https://httpbin.org/get',
p_http_method => 'GET'
);
END;
Error report -
ORA-29273: HTTP request failed
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 1182
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 782
ORA-01031: insufficient privileges
ORA-06512: at "SYS.UTL_HTTP", line 380
ORA-06512: at "SYS.UTL_HTTP", line 1209
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 756
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 1023
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 1371
ORA-06512: at "APEX_220100.WWV_FLOW_WEBSERVICES_API", line 568
ORA-06512: at line 5
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.
Normal REST Calls work just fine. What could be the problem?
The ATP can not access the compute instance because of some network settings?
ATP is not happy with the SSL settings or some other nasty HTTPS stuff?
The restrictions of calling REST APIs from APEX on autonomous database are outlined here:
https://docs.oracle.com/en/cloud/paas/atp-cloud/atpgs/autonomous-apex-web-services.html
So ...
must be a public endpoint, and the SSL certificate must be provided by a public CA.
For HTTPS, only the default port (443) is allowed; other ports raise the error message you're seeing.
configuring a proxy server in APEX is not supported on ADB; you then also
get the "Insufficient Privileges" error.

Resolving ORA-02019 error during DBMS_FILE_TRANSFER.PUT_FILE()

I am using DBMS_FILE_TRANSFER.PUT_FILE() on a local Oracle Express instance to transfer a local file to a remote AWS RDS Oracle instance, but I am receiving the following error:
ERROR at line 1:
ORA-02019: connection description for remote database not found
ORA-06512: at "SYS.DBMS_FILE_TRANSFER", line 60
ORA-06512: at "SYS.DBMS_FILE_TRANSFER", line 168
ORA-06512: at line 2
I receive this error while executing the following SQL script:
BEGIN
DBMS_FILE_TRANSFER.PUT_FILE(
'DATA_PUMP_DIR',
'some_file.txt',
'DATA_PUMP_DIR',
'some_file.txt',
'MY_DATABASE_LINK'
);
END;
/
MY_DATABASE_LINK is a public database link located in my local Oracle Express instance:
CREATE PUBLIC DATABASE LINK MY_DATABASE_LINK CONNECT TO example_schema IDENTIFIED BY "example_user" USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=example_host_info)(PORT=1521))(CONNECT_DATA=(SID=example_sid)))';
I'm fairly confident that the connection string behind the database link is correct, but I'm not sure how to be 100% sure.
The ORA-02019: connection description for remote database not found error does not make sense because the connection description is defined by the database link. It is not present in tnsnames.ora, and I am confident that it doesn't have to be for DBMS_FILE_TRANSFER.PUT_FILE() to work.

Oracle Database Job run issue-ora01031, insufficient privileges ora06512

I am very new to oracle and dont have much of an idea of how to resolve this problem.
I have two schema ERM22_TEST and ERM22_TEST_CUSTOM
One package exists in RM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS
and another package in ERM22_TEST_CUSTOM.C_PSP_INTERFACE
I have a job scheduler in ERM22_TEST_CUSTOM schema, which exports the data from a view in to CSV file, but when I click on run job it gives me the error:
ORA-01031: insufficient privileges
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 101
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 106
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 39
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 95
But it same export I do form my application than it export the data in csv file. Both user name are not same which run the database job and run the job from application client.
I just know it has some issue of granting the access but I have no idea how to grant access to ERM22_TEST_CUSTOM schema which run a package in another schema ERM22_TEST.
ORA-01031: insufficient privileges
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 101
ORA-06512: at "ERM22_TEST.ASYNC_JOB_QUEUE_COMMAND_BAS", line 106
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 39
ORA-06512: at "ERM22_TEST_CUSTOM.C_PSP_INTERFACE", line 95

Issue with UTL_MAIL Oracle

I'm trying to send email using oracle 11g as below.
begin
utl_mail.send(
sender => 'user#xxx.com',
recipients => 'user#gmail.com',
message => 'Hello World'
);
but i got below error.
ORA-29279: SMTP permanent error: 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 ph1sm17301835pbb.45
ORA-06512: at "SYS.UTL_MAIL", line 654
ORA-06512: at "SYS.UTL_MAIL", line 671
ORA-06512: at line 2
29279. 00000 - "SMTP permanent error: %s"
*Cause: A SMTP permanent error occurred.
*Action: Correct the error and retry the SMTP operation.
how could i solve this ?
According to the GMail documentation, you need SMTP/Auth to send E-Mails via GMail.
Unfortunately, utl_mail doesn't support this - you'll have to use utl_smtp.
See Oracle Forums for an example.

error: 553 sorry, that domain isn't in my list of allowed rcpthosts

I want send the email from oracle database.
So I did the following steps
#F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlmail.sql
#F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\prvtmail.plb
alter system set smtp_out_server = 'webmail.vilsoft.co.in:25' scope=both;
exec utl_mail.send(sender=> 'Id1#vilsoft.co.in',
recipients=>'Id2#vilsoft.co.in',
subject=>'test mail',message=>'hi');
PL/SQL procedure successfully completed.
So the mail is send to Destination Correctly.
But When I want to send the mail from one server to another server So i execute the following query
SQL> exec utl_mail.send(sender=> 'ID1#vilsoft.co.in',recipients=>'Id2#gmail.com',
subject=>'test mail',message=>'hi');
then following error occurs....
BEGIN utl_mail.send(sender=> 'ID1#vilsoft.co.in',recipients=>'Id2#gmail.com',
subject=>'test mail',message=>'hi');
END;
*
ERROR at line 1:
ORA-29279: SMTP permanent error: 553 sorry, that domain isn't in my list of
allowed rcpthosts (#5.7.1)
ORA-06512: at "SYS.UTL_SMTP", line 20
ORA-06512: at "SYS.UTL_SMTP", line 98
ORA-06512: at "SYS.UTL_SMTP", line 240
ORA-06512: at "SYS.UTL_MAIL", line 424
ORA-06512: at "SYS.UTL_MAIL", line 594
ORA-06512: at line 1
So Please help me to resolve this error ...
This is not an Oracle error per se - Oracle is simply reporting back an error it received from the mail system. The error message itself (SMTP 553) can mean several things, among them that your ISP does not allow unauthenticated sending of mail outside your domain, or that your local network security policy does not allow mail to be sent from your mail server to addresses in the gmail.com domain, or that the mail server you're sending to sees your domain or address on a blacklist. Talk to your ISP to verify.

Resources