视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
配置ACL报ORA-24247的解决方法
2020-11-09 12:54:02 责编:小采
文档

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

前言:

在通过Oracle 11往外部发送邮件的时候,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的时候就会报这个错误,,通过以上配置之后终于可以发送邮件了。

Oracle 单实例 从32位 迁移到 位 方法

在CentOS 6.4下安装Oracle 11gR2(x)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle RAC 11.2(12C)正确关闭顺序

本文永久更新链接地址:

下载本文
显示全文
专题