尝试创建 ACL 时出现 ORA-46212

Getting ORA-46212 while trying to create ACL

对于一项任务,我需要使用 PL/SQL 调用 Web 服务,所以当我尝试使用 "normal" 用户时,我想首先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建 ACL甚至无法识别 DBMS_NETWORK_ACL_ADMIN,当我尝试将它与系统用户一起使用时,我得到 XS entity with this name already exists (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 数据库(版本 12.2.0)以防它可能相关。

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