作りたてのスキーマで、SQL Developerでデバッグ実行すると、以下のようなエラーが出る。
データベースhoge_dbに接続中です。
PL/SQLの実行中: ALTER SESSION SET PLSQL_DEBUG=TRUE
PL/SQLの実行中: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '192.168.111.27', '60901' )
ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました
ORA-06512: "SYS.DBMS_DEBUG_JDWP", 行68
ORA-06512: 行1
プロセスが終了しました。
データベースhoge_dbから切断中です。
これは、12cからアクセス制御リストにないIPからのデバックセッションの確立を拒否するような設定が入ったからだ。
開発スキーマとかで、特にセキュリティを気にする必要がなければsysで以下のプロシージャを実行して、指定IPからのデバックセッションの確立を許可できる。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE
(
host => '192.168.10.*', -- ホスト名、ドメイン('*.XXX.com')、サブネット('192.168.*.*')、特定のIPアドレス('192.168.10.021')で指定可能。
lower_port => null,
upper_port => null,
ace => xs$ace_type(privilege_list => xs$name_list('jdwp'),
principal_name => 'HOGESCHEMA', -- スキーマ名
principal_type => xs_acl.ptype_db)
);
END;
hostのところを'*.*.*.*'
にすれば、どこからつないでもデバッグできるようにできます。