2017-06-21 150 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

你是对的,这似乎是现在的工作 –

相关问题