ORA-46059: Invalid ACL identifier错误求助:数据库REST API调用ACL问题
ORA-46059: Invalid ACL identifier specified 错误排查与解决
我帮你分析下这个报错的核心原因,大概率是一个细节疏忽导致的:
1. 最可能的问题:ACL名称中的多余空格
你创建ACL时用的名称是 'test_sx_acl_file.xml',但在执行assign_acl的时候,acl参数写成了 'test_sx_acl_file.xml '——注意末尾多了一个空格!Oracle对ACL名称是严格匹配的,这个空格会让系统认为你指定的是一个不存在的ACL,直接触发ORA-46059错误。
修正后的分配语句
把末尾的空格去掉,执行下面的代码应该就能解决:
BEGIN DBMS_NETWORK_ACL_ADMIN.assign_acl ( acl => 'test_sx_acl_file.xml', host => '*.testapi.com', lower_port => NULL, upper_port => NULL ); END; /
额外排查步骤(如果修正后仍有问题)
如果去掉空格还是报错,可以通过以下方式验证ACL是否存在:
- 查询系统视图确认ACL的准确名称:
SELECT acl, principal, privilege FROM DBA_NETWORK_ACLS JOIN DBA_NETWORK_ACL_PRIVILEGES USING (acl) WHERE acl LIKE '%test_sx_acl_file%';
如果查询结果里没有你创建的ACL,说明之前的create_acl可能存在隐性问题(比如权限不足,但你用SYSDBA执行的话概率很低),需要重新执行创建语句。
内容的提问来源于stack exchange,提问作者Anish Gopinath
相关产品推荐
相关产品推荐

