Oracle DEBUG PROCEDURE时报错ORA-24247: network access denied by access control list (ACL)

1.首选赋予用户debug权限 
(1)以管理员登录:conn sys/xxxxx as sysdba 
(2)赋权:grant DEBUG CONNECT SESSION , DEBUG ANY PROCEDURE to c##scott;

2.但是在Oracle12c中, 如果仅有此权限, 在debug时还会报如下错误: 
Connecting to the database USERXXX. 
Executing PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE 
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( ‘192.168.10.101’, ‘61116’ ) 
ORA-24247: network access denied by access control list (ACL) 
ORA-06512: at “SYS.DBMS_DEBUG_JDWP”, line 68 
ORA-06512: at line 1 
Process exited. 
Disconnecting from the database USERXXX.

3.登录SYS用户执行以下语句即可

BEGIN  
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE  
    (  
        host => '127.0.0.1', --指定host
        lower_port => null,  
        upper_port => null,  
        ace => xs$ace_type(privilege_list => xs$name_list('jdwp'),  
        principal_name => 'c##scott', --指定user  
        principal_type => xs_acl.ptype_db)  
    );  
END;

4.原因 
从Oracle 12c开始,如果通过基于JDWP(Java Debug Wire Protocol)协议的调试器(如SQL Developer, JDeveloper)调试PL/SQL存储过程, 需要给用户赋予JDWP ACL权限,允许其通过某台主机用调试工具连接数据库

5.参考 
https://galobalda.wordpress.com/2014/02/17/sql-developers-plsql-debugger-and-oracle-12c/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值