我正在使用 Oracle Database 12c企业版12.2.0.1.0版-64位生产版本,并尝试使用ftp软件包(UTL_TCP)。步骤如下:
declare
l_conn UTL_TCP.connection;
l_list ftp.t_string_table := ftp.t_string_table();
begin
l_conn := ftp.login('ftp.myhost.com', 21, 'user', 'password');
ftp.nlst(p_conn => l_conn,p_dir => 'outbox',p_list => l_list);
ftp.logout(l_conn);
end;
ftp.nlst 引发错误。
我以这种方式配置了ACL:select * from dba_network_acls;
返回
HOST | LOWER_PORT | UPPER_PORT | ACL | ACLID | ACL_OWNER
-----------------------------------------------------------------------------------------------
ftp.myhost.com | null | null | /myaclspath/myacl.xml | 00000000800027C5 | SYS
* | null | null | NETWORK_ACL_5A1900... | 0000000080002724 | SYS
和select * from dba_network_acl_privileges
返回
ACL | ACLID | PRINCIPAL | PRIVILEGE | IS_GRANT | INVERT | START_DATE | END_DATE | ACL_OWNER
------------------------------------------------------------------------------------------------------------------------
/myaclspath/myacl.xml | 00000000800027C5 | MYDBUSER | resolve | true | false | | |SYS
/myaclspath/myacl.xml | 00000000800027C5 | MYDBUSER | connect | true | false | | |SYS
我读到类似的错误here,并将ACL的设置检查为here,但我无法弄清为什么登录后拒绝访问网络。
在此表示感谢。