我正在使用Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production并尝试使用 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
我在这里读到了类似的错误,并检查了 ACL 的设置,但我无法弄清楚为什么登录后网络访问被拒绝。
提前感谢任何建议。