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

请求解决PL/SQL调试时ORA-24247等报错问题

解决ORA-24247: 访问控制列表(ACL)拒绝网络访问的方法

原因说明

该错误是Oracle的ACL(访问控制列表)机制限制了DBMS_DEBUG_JDWP包向指定IP(192.168.1.28)的4000端口发起网络连接,需要为执行该语句的数据库用户配置对应网络访问权限。

具体操作步骤

  1. 以DBA权限用户登录数据库
    使用SYS或其他具备DBA权限的用户,通过SQL*Plus或数据库客户端登录Oracle。

  2. 配置访问控制列表
    执行以下PL/SQL语句,为目标用户分配网络访问权限:

    BEGIN
      -- 创建ACL(若已存在可跳过此步)
      DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
        acl          => 'debug_jdwp_acl.xml',
        description  => '允许DBMS_DEBUG_JDWP连接调试端',
        principal    => '你的数据库用户名', -- 替换为执行CALL语句的实际用户
        is_grant     => TRUE,
        privilege    => 'connect'
      );
    
      -- 将ACL绑定到目标IP和端口
      DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
        acl          => 'debug_jdwp_acl.xml',
        host         => '192.168.1.28',
        lower_port   => 4000,
        upper_port   => 4000
      );
    
      COMMIT;
    END;
    /
    
  3. 验证权限配置
    执行以下SQL确认配置是否生效:

    SELECT host, lower_port, upper_port, principal, privilege
    FROM dba_network_acls
    JOIN dba_network_acl_privileges USING (acl);
    

    检查结果中是否包含目标IP、端口及对应用户的connect权限。

  4. 重新执行调试语句
    切换回原用户会话,重新执行CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '192.168.1.28', '4000' );即可正常连接。

补充提示

  • 若ACL已存在,只需执行ASSIGN_ACL及权限授予部分,无需重复创建ACL。
  • 如需允许访问多个IP或端口范围,可调整host、lower_port和upper_port参数。
  • 所有操作必须提交事务,否则配置不会生效。

内容的提问来源于stack exchange,提问作者Nassim 94

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:05:08