デフォルトでは繋がりません
デフォルトの状態(当環境はOracle12c)では利用できません。利用を試みた場合以下のようなエラーになります。
データベースvm013に接続中です。
PL/SQLの実行中: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( ‘192.168.3.8’, ‘52172’ )
ORA-01031: 権限が不足しています。
ORA-06512: “SYS.DBMS_DEBUG_JDWP”, 行68
ORA-06512: 行1
このセッションでは、DEBUG CONNECT SESSIONおよびDEBUG ANY PROCEDUREユーザー権限が必要です。
プロセスが終了しました。
データベースvm013から切断中です。
権限を付与します
デバッグ実施ユーザに以下2つのシステム権限を付与します。
GRANT DEBUG CONNECT SESSION to SCOTT; GRANT DEBUG ANY PROCEDURE to SCOTT;
-- 接続確認 SQL> select * from DBA_SYS_PRIVS p where p.GRANTEE = 'SCOTT' and p.PRIVILEGE like 'DEBUG%'; GRANTEE PRIVILEGE ADMIN_OPTION COMMON ___________ ________________________ _______________ _________ SCOTT DEBUG ANY PROCEDURE NO NO DCOTT DEBUG CONNECT SESSION NO NO SQL>
再度試みます
データベースvm013に接続中です。
PL/SQLの実行中: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( ‘192.168.3.8’, ‘52205’ )
ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました
ORA-06512: “SYS.DBMS_DEBUG_JDWP”, 行68
ORA-06512: 行1
プロセスが終了しました。
データベースvm013から切断中です。
クライアントアドレスを追加します
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACEを使い、デバッグ用接続を許可するクライアントのIPを登録します。
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE ( host => '192.168.3.*', --接続を許可するのIPやホスト lower_port => null, upper_port => null, ace => xs$ace_type(privilege_list => xs$name_list('jdwp'), principal_name => 'SCOTT', principal_type => xs_acl.ptype_db) ); END; /
追加した内容を確認する
ホストアドレス確認
SELECT * FROM DBA_HOST_ACES t order by t.HOST ;
不要になった場合の削除(取り消し)の仕方
BEGIN DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( host => '192.168.3.*', ace =>xs$ace_type( privilege_list => xs$name_list('jdwp'), principal_name => 'SCOTT', principal_type => xs_acl.ptype_db) ); end; /