2017-06-21 149 views
0

對於需要使用PL/SQL調用Web服務的任務,所以我想從使用DBMS_NETWORK_ACL_ADMIN.CREATE_ACL創建ACL開始,當我嘗試使用它的「普通」用戶時甚至不承認DBMS_NETWORK_ACL_ADMIN,當我嘗試使用系統用戶時,我得到了XS entity with this name already exists(ORA-46212)。嘗試創建ACL時獲取ORA-46212

我正在使用的代碼如下:

BEGIN 
    DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl   => 'www.xml', 
            description => 'WWW ACL', 
            principal => 'CLOCKGEAR', 
            is_grant => true, 
            privilege => 'connect'); 

    DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl  => 'www.xml', 
             principal => 'CLOCKGEAR', 
             is_grant => true, 
             privilege => 'resolve'); 

    DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'www.xml', 
            host => 'wsf.cdyne.com'); 
END; 
/

我不知道我做錯了,我希望有人能幫助我解決這個問題。

在此先感謝。

編輯:

只想何況這是在情況下,本地Oracle DB(版本12.2.0)也可能是相關的。

回答

2
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host => 'wsf.cdyne.com', 
    ace => xs$ace_type(privilege_list => xs$name_list('connect', 'resolve'), 
         principal_name => 'CLOCKGEAR' 
         principal_type => xs_acl.ptype_db)); 

Oracle 12c已經改變了acl的方法。您在代碼中使用的所有方法都被棄用。立即嘗試。

檢查這些鏈接。

Example

XS_ACL Package

Security Packages Guide

+0

你是對的,這似乎是現在的工作 –

相關問題