You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行DBMS_NETWORK_ACL_ADMIN.CREATE_ACL遇ORA-31024错误求助

解决ORA-31024 + LPX-266错误:DBMS_NETWORK_ACL_ADMIN操作失败

我碰到过好几次这个错误,本质上是XML解析层面的问题,结合你给出的代码,大概率是ACL重复创建或者未提交变更导致的XML解析异常。给你一步步的解决办法:

  • 第一步:检查并清理已存在的同名ACL
    重复创建同一个ACL会触发XML解析冲突,先查一下是否已经有www.xml这个ACL:

    SELECT acl FROM dba_network_acls WHERE acl = 'www.xml';
    

    如果查询返回结果,先删除它再重新创建:

    BEGIN
      DBMS_NETWORK_ACL_ADMIN.DROP_ACL('www.xml');
      COMMIT;
    END;
    /
    
  • 第二步:确保执行代码时提交变更
    很多人容易忽略COMMIT,未提交的ACL创建操作会让XML解析器无法正确处理临时数据,导致LPX-266错误。修改你的代码加上提交语句:

    BEGIN
      DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
        acl          => 'www.xml',
        description  => 'www ACL',
        principal    => 'SYS',
        is_grant     => TRUE,
        privilege    => 'connect'
      );
      
      DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
        acl          => 'www.xml',
        host         => '*',
        lower_port   => 80
      );
      
      COMMIT; -- 这一步绝对不能少
    END;
    /
    
  • 第三步:验证数据库XML组件状态
    如果上面两步都没用,检查XDB组件(Oracle负责XML处理的核心组件)是否正常:

    SELECT comp_id, status FROM dba_registry WHERE comp_id = 'XDB';
    

    如果状态不是VALID,说明XDB组件损坏,需要在SYSDBA权限下执行catxdb.sql脚本修复(建议操作前先备份数据库)。

另外提个小建议:生产环境里尽量别用host => '*',限制到具体的业务域名会更安全;如果是给普通用户授权,要确保principal参数指定的用户存在且有对应的权限。

内容的提问来源于stack exchange,提问作者Filip Milinkovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:10:03