配置ACL报ORA-24247的解决方法

简介: 配置ACL报ORA-24247的解决方法前言: 在通过ORACLE11往外部发送邮件的时候,ORA-24247的错误,详细的错误错误信息如下:ERROR at line 1:ORA-24247: network access denied by access control list (ACL)ORA-06512: at "SYS.

配置ACL报ORA-24247的解决方法

前言:

在通过ORACLE11往外部发送邮件的时候,ORA-24247的错误,详细的错误错误信息如下:

ERROR at line 1:

ORA-24247: network access denied by access control list (ACL)

ORA-06512: at "SYS.UTL_TCP", line 17

ORA-06512: at "SYS.UTL_TCP", line 246

ORA-06512: at "SYS.UTL_SMTP", line 127

ORA-06512: at "SYS.UTL_SMTP", line 150

ORA-06512: at "MIS_PKG", line 1175

ORA-06512: at "MIS_PKG", line 1207

ORA-06512: at line 1

 

在oracle的metalink查找的详细的介绍如下:

  1. 原因:因为Oracle 数据库 11g有一个新的解决方案:您可以将执行权限程序包授予任何人,但要控制他们可以调用的资源。例如,utl_tcp 可限制为仅调用几个 IP地址,这种机制称为访问控制列表 (ACL)。如果主机在 ACL 中,用户可以在 utl_tcp 中使用;但是仅仅拥有对 utl_tcp的执行权限是不够的。因此,恶意进程不可能取代 utl_tcp 程序包和建立非法连接。

    Fine grained auditing, enhanced in Oracle 11g, means access to certain packages (UTL_TCP, UTL_SMTP, UTL_MAIL, UTL_HTTP, or UTL_INADDR) now require specific access lists to be defined for security reasons instead of granting this access to PUBLIC and allowing all users access to them.

     

    二、解决方法

    为了允许访问任何上述包,您需要明确赋予其通过访问控制列表。比如创建一个,并分配用户USER1特权使用UTL_SMTP pacakge,因而发送电子邮件。

    In order to allow access to any of the above mentioned packages, you will need to explicitly grant it via Access Control Lists. Below is an example of how to create one, and assign the user USER1 the privilege to use the UTL_SMTP pacakge, and therefore send email.

     

    执行脚本:

    BEGIN

    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (

    acl => 'UTL_SMTP.xml',

    description => 'ACL for utl_smtp package',

    principal => 'USER1',

    is_grant => TRUE,

    privilege => 'connect');

     

    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (

    acl => 'UTL_SMTP.xml',

    host => '');

    END;

    /

     

    三、管理acl的配置

    3.1 查看acl的配置

    SELECT host, lower_port, upper_port, acl FROM dba_network_acls;

     

    3.2 删除acl的配置

    BEGIN

    DBMS_NETWORK_ACL_ADMIN.drop_acl(acl => ' UTL_SMTP.xml');

    COMMIT;

    END;

    /

     

    总结:ACL是从11G后才有的功能,很多企业发送邮件的设置都是从10G或之前开始的,但是在11G的时候就会报这个错误,通过以上配置之后终于可以发送邮件了。

    *********************************************************************************************************************

    本文作者:JOHN QQ:1916066696 (请备注数据库)

    ORACLE技术博客:ORACLE 猎人笔记 http://blog.itpub.net/12679300/

    请扫描加微信号!

    ********************************************************************************************************************

相关文章
|
Oracle 关系型数据库 数据库
sqlnet.ora文件中AUTHENTICATION_SERVICES参数对密码的控制
用os的oracle用户登录sysdba时,默认不需要输入密码,随便输入个密码都可以登录oracle数据库。登录验证是在sqlnet.ora文件中有个AUTHENTICATION_SERVICES参数控制的,但对这个参数缺有歧义,在 samples/sqlnet.ora 文件中:
159 0
|
关系型数据库 数据库 Windows
[20171211]检查dg配置参数.txt
[20171211]检查dg配置参数.txt --//写一个脚本,用来检查dg配置参数. col name    for a30 col value   for a120 col ses_mod for a10 col sys_mod for ...
1018 0
|
Oracle 网络协议 关系型数据库
listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例(转载:http://blog.chinaunix.net/uid-83572-id-5510.ht)
listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例 ====================最近看到好多人说到tns或者数据库不能登录等问题,就索性总结了下面的文档。    首先来说Oracle的网络结构,往复杂处说能加上加密、LDAP等等。。这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况    三个配置文件    listene
1356 0
|
关系型数据库 Oracle
ora-12154 TNS:"无法处理服务名"的一个解决方法
http://www.cnblogs.com/xh3/archive/2007/04/21/722217.html 很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机了,看了不少帖子,大多数都是修  改tnsnames.
1159 0
|
网络协议 关系型数据库 Linux
rac11g错误:远程连接报错:ORA-12545: 因目标主机或对象不存在, 连接失败
描述: 刚搭建起来的rac环境,通过监听连接:sqlplus system/oracle@11grac 发现报了如下错误: ORA-12545: 因目标主机或对象不存在, 连接失败 查看两个节点的tnsnames.
1548 0