调用Oracle发邮件,抛出异常:ORA-24247: 网络访问被访问控制列表 (ACL) 拒绝
原因:链接邮件服务器未授权
解决方案:1.创建访问控制列表(ACL) 2.将 ACL 与邮件服务器相关联 3.ACL 为用户授与连接邮件服务器的权限
BEGIN
--1.创建访问控制列表(ACL)
dbms_network_acl_admin.create_acl(acl => 'email_server_permissions.xml',
description => 'Enables network permissions for the e-mail server',
principal => 'oracle_user', --授权用户
is_grant => TRUE,
privilege => 'connect');
--COMMIT;
--2.将 ACL 与邮件服务器相关联
dbms_network_acl_admin.assign_acl(acl => 'email_server_permissions.xml',
host => '*.*.*.*', --主机名要做ip映射;SMTP服务器地址
lower_port => 25,
upper_port => NULL);
--COMMIT;
--3.ACL 为用户授与连接邮件服务器的权限
dbms_network_acl_admin.add_privilege(acl => 'email_server_permissions.xml',
principal => 'oracle_user', --授权用户
is_grant => TRUE,
privilege => 'resolve');
--COMMIT;
END;
------查询acl配置信息
SELECT host, lower_port, upper_port, acl FROM dba_network_acls;
SELECT acl,
principal,
privilege,
is_grant,
to_char(start_date, 'DD-MON-YYYY') AS start_date,
to_char(end_date, 'DD-MON-YYYY') AS end_date
FROM dba_network_acl_privileges;
BEGIN
--删除acl配置
dbms_network_acl_admin.drop_acl(acl => 'email_server_permissions.xml');
--COMMIT;
END;