デフォルトでは繋がりません
デフォルトの状態(当環境は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;
/

