如何解決ORACLE11G裡面ORA-24247 網路訪問被訪問控制列表 (ACL) 拒絕 錯誤

lhrbest發表於2016-03-30
在應用中直接上報資料時,獲取ORACLE 11G(10g 沒事)主機IP和例項時候,執行下列SQL語句出現錯誤:
SELECT lower(utl_inaddr.get_host_address||':'||SYS_CONTEXT ('USERENV', 'DB_NAME'))

FROM dual ;

如何解決ORACLE11G裡面ORA-24247 網路訪問被訪問控制列表 (ACL) 拒絕 錯誤

 

試圖連線到超級使用者,給當前使用者授予select any dictionary ,錯誤依舊

grant select any dictionary to test;

查詢了下網上,有說用ORACLE發郵件也出類似錯誤的,解決方法都差不多,找了個類似的:

 

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

ERROR at line 1:

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

ORA-06512: at "SYS.'UTL_INADDR", line 654

ORA-06512: at "SYS.'UTL_INADDR", line 671

ORA-06512: at line 1

按照其解決方案做了下,果然解決問題,在此記錄下:

首先連線到超級使用者:

SQL>Conn / as sysdba;

已連線。

SQL>

1 建立 ACL

SQL> begin

  2  dbms_network_acl_admin.create_acl (

  3  acl => 'UTL_INADDR.xml',

  4  description => 'utl_inaddr',

  5  principal => 'TEST',   --此為將來要進行操作的使用者

  6  is_grant => TRUE,

  7  privilege => 'resolve'

  8  );

  9  commit;

 10  end;

 11  /

PL/SQL 過程已成功完成。

2  增加許可權

begin

  2  dbms_network_acl_admin.add_privilege (

  3  acl => 'UTL_INADDR.xml',

  4  principal => 'TEST',

  5  is_grant => TRUE,

  6  privilege => 'connect'

  7  );

  8  commit;

  9  end;

 10  /

PL/SQL 過程已成功完成。

3  授予使用者許可權

SQL> begin

  2  dbms_network_acl_admin.assign_acl(

  3  acl => 'UTL_INADDR.xml',

  4  host => '*'

  5  );

  6  commit;

  7  end;

  8  /

  PL/SQL 過程已成功完成。

4  再次訪問相應的表

SELECT lower(utl_inaddr.get_host_address||':'||SYS_CONTEXT ('USERENV', 'DB_NAME'))

FROM dual ;

fe80::645d:7021:9c8e:419a%11:sq

能夠返回相應的資訊,只不過此處沒有返回正確的IP,而是IPV6的地址

C:\Users\lxy>ipconfig

……

乙太網介面卡 本地連線:

   連線特定的 DNS 字尾 . . . . . . . :

   本地連結 IPv6 地址. . . . . . . . : fe80::645d:7021:9c8e:419a%11

   IPv4 地址 . . . . . . . . . . . . : 10.198.1.104

   子網掩碼  . . . . . . . . . . . . : 255.255.0.0

   預設閘道器. . . . . . . . . . . . . : 10.198.1.254

…..

5 在需要的時候,可執行過程摘除相應的ACL

BEGIN

DBMS_NETWORK_ACL_ADMIN.drop_acl (

acl => 'UTL_INADDR.xml');

COMMIT;

END;

/


用ORACLE發郵件也會遇到這個問題,貌似11G新增了什麼限制所致,為何建庫的時候沒有執行相關指令碼呢,在此記錄一下!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2072163/,如需轉載,請註明出處,否則將追究法律責任。

相關文章