Oracleデータベースのホワイトリストを設定する方法
Oracleデータベースにおいて、ホワイトリストは通常データベースインスタンス、あるいは特定のユーザへのアクセスを制限するために利用されます。ホワイトリストの設定方法を以下に示します。
- Oracleデータベースのシステム管理アカウント(例: sys)にログインします。
- 以下のコマンドでデータベースアクセス制御リスト(ACL)を作成します。
- BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
acl => ‘my_acl.xml’, — ACL名の指定
description => ‘My ACL’, — ACLの説明
principal => ‘MY_USER’, — 権限を付与するユーザーの指定
is_grant => TRUE, — 権限付与の指定
privilege => ‘connect’); — connect権限の指定
END;
/ - 「my_acl.xml」という名前のACLを作成し、ユーザー「MY_USER」に対して許可し接続の権限を制限します。
- ACLにホストネットワークを許可するエントリを追加するには、以下のコマンドを使用します。
- DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => ‘my_acl.xml’, principal => ‘MY_USER’, is_grant => TRUE, privilege => ‘resolve’);
- このコマンドによって、ユーザー「MY_USER」に、すべてのウェブホストに対するホスト名解決権限が付与されます。
- 次のコマンドを使用して、ACLをデータベースインスタンスにバインドします
- BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
acl => ‘my_acl.xml’, — ACL名
host => ‘*’, — すべてのホストにバインド
lower_port => NULL, — 最小ポート番号(オプション)
upper_port => NULL); — 最大ポート番号(オプション)
END;
/ - このコマンドはすべてのホストにACLをバインドし、どのポートからでも接続を許可します。
- 最後に、次のコマンドでネットワークACLキャッシュの更新を行います。
- DBMS_NETWORK_ACL_ADMIN.FLUSH_ACL_CACHE();
- このコマンドは、新しいACL設定を有効にするためにネットワークアクセス制御リストキャッシュを更新します。
設定が完了すると、指定ユーザーにデータベースへのアクセス権が付与され、接続が可能なネットワークホストの範囲が制限されます。