请求解决PL/SQL调试时ORA-24247等报错问题
解决ORA-24247: 访问控制列表(ACL)拒绝网络访问的方法
原因说明
该错误是Oracle的ACL(访问控制列表)机制限制了DBMS_DEBUG_JDWP包向指定IP(192.168.1.28)的4000端口发起网络连接,需要为执行该语句的数据库用户配置对应网络访问权限。
具体操作步骤
以DBA权限用户登录数据库
使用SYS或其他具备DBA权限的用户,通过SQL*Plus或数据库客户端登录Oracle。配置访问控制列表
执行以下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; /验证权限配置
执行以下SQL确认配置是否生效:SELECT host, lower_port, upper_port, principal, privilege FROM dba_network_acls JOIN dba_network_acl_privileges USING (acl);检查结果中是否包含目标IP、端口及对应用户的
connect权限。重新执行调试语句
切换回原用户会话,重新执行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
相关产品推荐
相关产品推荐

