ネットワーク利用の有効化

Oracle11gにしたら、mod_plsqlで使用してる utl_http.begin_request で以下エラーがでるようになった。

ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました

詳しくは以下に書かれてるが、ストアドからネットワーク接続するためにはあらかじめ権限を付与しなければならなくなったとのこと
http://d.hatena.ne.jp/seraphy/20111225

システムユーザで下記処理を行うことで解決。

BEGIN
	DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
		acl => 'test1.xml',
		description => 'test1 ACL',
		principal => 'スキーマ名1',
		is_grant => true,
		privilege => 'connect'
	);
	DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
		acl => 'test1.xml',
		principal => 'スキーマ名2',
		is_grant => true,
		privilege => 'connect'
	);
	DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
		acl => 'test1.xml',
		host => '172.16.1.26'
	);
END;
/

削除は以下のとおり

BEGIN
	DBMS_NETWORK_ACL_ADMIN.DROP_ACL(acl => 'test1.xml');
END;
/

設定状態の確認は以下を参照。

  • dba_network_acls
  • dba_network_acl_privileges