尝试创建 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 的方法。您代码中使用的所有方法均已弃用。现在尝试方法。
检查这些链接。
对于一项任务,我需要使用 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 的方法。您代码中使用的所有方法均已弃用。现在尝试方法。
检查这些链接。