oracle 发送邮件(job,ORA-24247: network access denied by access control list (ACL))

需求:oracle中监测job的执行,job完成后自动发送邮件至指定邮箱。

           1. 用了上一篇文章的存储过程sendmail_proc以system登录进去,test 是 发邮件正常,

            2. 但是用其它存储过程Call_proc调用就不行了。报 24247错误。发现是权限问题

            3. 于是在调用的存储过程Call_proc 的AS前面加 :AUTHID CURRENT_USER。 test正常

            4. 但是在Job的what里面调用Call_proc,依然提示 24247 错误。

             5. 这时候我想死了。但是经过一段时间的研究发现了解决方案,供遇到同一问题的同学们参考。
每一步创建 ACL
begin
dbms_network_acl_admin.create_acl (
acl             => 'utlpkg_SENDMAIL.xml',
description     => 'Normal Access',
principal       => 'CONNECT',
is_grant        => TRUE,
privilege       => 'connect',
start_date      => null,
end_date        => null
);
end;/

第二步添加权限,假如这里我们是给SYSTEM用户添加connect权限

begin
dbms_network_acl_admin.add_privilege (
acl  => 'utlpkg_SENDMAIL.xml',
principal => 'SYSTEM',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null);
end;/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值