配置ACL報ORA-24247的解決方案

來源:互聯網
上載者:User

配置ACL報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 => '<mail_server_ip>');

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位 遷移到 64位 方法 

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機器中安裝步驟

Debian 下 安裝 Oracle 11g XE R2

Oracle RAC 11.2(12C)正確關閉順序 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.