在oracle11gR2里发送邮件的时候报错:
ORA-24247: 网络访问被访问控制列表 (ACL) 拒绝
ORA-06512: 在 "SYS.PROCSENDEMAIL", line 730
ORA-06512: 在 "SC.ISC_UTIL", line 452
ORA-06512: 在 line 1
这是因为Oracle 数据库 11g有一个新的解决方案:您可以将执行权限程序包授予任何人,但要控制他们可以调用的资源。例如,utl_tcp 可限制为仅调用几个 IP地址,这种机制称为访问控制列表 (ACL)。如果主机在 ACL 中,用户可以在 utl_tcp 中使用;但是仅仅拥有对 utl_tcp的执行权限是不够的。因此,恶意进程不可能取代 utl_tcp 程序包和建立非法连接。
[@more@]解决步骤:
1、创建一个 ACL:
begin
dbms_network_acl_admin.create_acl (
acl => 'NEWACL.xml',
description => 'news',
principal => 'CONNECT',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null
);
end;
2、为该 ACL 增加一个权限
begin
dbms_network_acl_admin.add_privilege (
acl => 'NEWACL.xml',
principal => 'SC',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null);
end;
3、添加主机:
begin
dbms_network_acl_admin.assign_acl (
acl => 'NEWACL.xml',
host => '*',
lower_port => 1,
upper_port => 1000);
end;
4、问题解决
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10130206/viewspace-1059192/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10130206/viewspace-1059192/