113 DBMS_NETWORK_ACL_ADMIN
DBMS_NETWORK_ACL_ADMIN
パッケージは、ネットワークのアクセス制御リスト(ACL)を管理するためのインタフェースを提供します。
この章の内容は次のとおりです。
参照:
詳細は、『Oracle Databaseセキュリティ・ガイド』の外部ネットワーク・サービスへのファイングレイン・アクセスの管理に関する項を参照してください。
113.1 DBMS_NETWORK_ACL_ADMINの概要
DBMS_NETWORK_ACL_ADMIN
パッケージは、ネットワークのアクセス制御リスト(ACL)を管理するためのインタフェースを提供します。
ACLを使用することで、 UTL_TCP 、 UTL_HTTP 、 UTL_SMTP および UTL_INADDR などのPL/SQLネットワーク・ユーティリティ・パッケージを使用した、データベースから外部ネットワークのサービスおよびリソースへのユーザーのアクセスが制御されます。
113.2 DBMS_NETWORK_ACL_ADMINの推奨されないサブプログラム
新しいアプリケーションでは、推奨されないサブプログラムは使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。
Oracle Database 12cでは、次のサブプログラムの使用は推奨されていません。
113.3 DBMS_NETWORK_ACL_ADMINのセキュリティ・モデル
デフォルトでは、DBMS_NETWORK_ACL_ADMIN
パッケージのEXECUTE
権限は、DBA
ロールとEXECUTE_CATALOG_ROLE
に付与されています。
113.4 DBMS_NETWORK_ACL_ADMINの定数
DBMS_NETWORK_ACL_ADMIN
パッケージは、パラメータ値の指定に使用する定数を定義します。
これらを、次の表に示します。
表113-1 DBMS_NETWORK_ACL_ADMINの定数
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
IPアドレス・マスク: |
|
|
' |
IPサブネット・マスク: |
|
|
'[ |
ホスト名マスク: |
|
|
''\*(\.[^\.\:\/\*]+)*' |
ドメイン・マスク: |
113.5 DBMS_NETWORK_ACL_ADMINの例外
次の表に、DBMS_NETWORK_ACL_ADMIN
パッケージで発生する例外を示します。
表113-2 DBMS_NETWORK_ACL_ADMINの例外
例外 | エラー・コード | 説明 |
---|---|---|
|
|
ACEはすでに存在します。 |
|
|
ACLが空です。 |
|
|
ACLが見つかりません。 |
|
|
ACLはすでに存在します。 |
|
|
ACLのパスが無効です。 |
|
|
ホストが無効です。 |
|
|
権限が無効です。 |
|
|
ウォレットのパスが無効です。 |
|
|
引数が間違っています。 |
|
|
プリンシパルが未解決です。 |
|
|
権限が付与されていません。 |
113.6 DBMS_NETWORK_ACL_ADMINの例
ホストwww.us.example.com
に対するconnect
権限とresolve
権限をSCOTT
に付与します。
Example1
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => 'www.us.example.com', ace => xs$ace_type(privilege_list => xs$name_list('connect', 'resolve'), principal_name => 'scott', principal_type => xs_acl.ptype_db));
例2
SCOTT
のホストwww.us.example.com
に対するresolve
権限を取り消します。
dbms_network_acl_admin.remove_host_ace( host => 'www.us.example.com', ace => xs$ace_type(privilege_list => xs$name_list('resolve'), principal_name => 'scott', principal_type => xs_acl.ptype_db));
例3
ウォレットfile:/example/wallets/hr_wallet
に対するuse_client_certificates
権限とuse_passwords
権限をSCOTT
に付与します。
dbms_network_acl_admin.append_wallet_ace( wallet_path => 'file:/example/wallets/hr_wallet', ace => xs$ace_type(privilege_list => xs$name_list('use_client_certificates', 'use_passwords'), principal_name => 'scott', principal_type => xs_acl.ptype_db));
例4
SCOTT
からウォレットfile:/example/wallets/hr_wallet
に対するuse_passwords
権限を取り消します。
dbms_network_acl_admin.remove_wallet_ace( wallet_path => 'file:/example/wallets/hr_wallet', ace => xs$ace_type(privilege_list => xs$name_list('use_passwords'), principal_name => 'scott', principal_type => xs_acl.ptype_db));
例5
DBMS_NETWORK_ACL_UTLILITY
パッケージ内のCONTAINS_HOST
は、ドメインにホストが含まれるかどうかを判別します。DBA_HOST_ACE
ビューと一緒にこれを使用することで、ネットワーク・ホストにアクセスするユーザーとその権限の割当てを確認できます。たとえば、www.us.example.com
へのアクセスは次のようになります。
SELECT HOST, LOWER_PORT, UPPER_PORT, ACE_ORDER, PRINCIPAL, PRINCIPAL_TYPE, GRANT_TYPE, INVERTED_PRINCIPAL, PRIVILEGE, START_DATE, END_DATE FROM (SELECT ACES.*, DBMS_NETWORK_ACL_UTILITY.CONTAINS_HOST('www.us.example.com', HOST) PRECEDENCE FROM DBA_HOST_ACES ACES) WHERE PRECEDENCE IS NOT NULL ORDER BY PRECEDENCE DESC, LOWER_PORT NULLS LAST, UPPER_PORT NULLS LAST, ACE_ORDER; HOST LOWER_PORT UPPER_PORT ACE_ORDER PRINCIPAL PRINCIPAL_TYPE GRANT_TYPE INVERTED_PRINCIPAL PRIVILEGE START_DATE END_DATE ------------------ ---------- ---------- --------- --------- ---------------- ---------- ------------------ ---------- ---------- -------- www.us.example.com 80 80 1 SCOTT DATABASE USER GRANT NO HTTP www.us.example.com 80 80 2 ADAMS DATABASE USER GRANT NO HTTP * 1 HQ_DBA DATABASE USER GRANT NO CONNECT * 1 HQ_DBA DATABASE USER GRANT NO RESOLVE
例6
たとえば、www.us.example.com
にアクセスするためのHQ_DBA
独自の権限は次のようになります。
SELECT HOST, LOWER_PORT, UPPER_PORT, PRIVILEGE, STATUS FROM (SELECT ACES.*, DBMS_NETWORK_ACL_UTILITY.CONTAINS_HOST('www.us.example.com', HOST) PRECEDENCE FROM USER_HOST_ACES ACES) WHERE PRECEDENCE IS NOT NULL ORDER BY PRECEDENCE DESC, LOWER_PORT NULLS LAST, UPPER_PORT NULLS LAST; HOST LOWER_PORT UPPER_PORT PRIVILEGE STATUS ------------------ ---------- ---------- --------- ------- * CONNECT GRANTED * RESOLVE GRANTED
113.7 DBMS_NETWORK_ACL_ADMINサブプログラムの要約
この表では、DBMS_NETWORK_ACL_ADMIN
パッケージのサブプログラムをリストし、簡単に説明します。
表113-3 DBMS_NETWORK_ACL_ADMINパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
(非推奨)アクセス制御リスト(ACL)で、ネットワーク・アクセス権を付与または拒否する権限をユーザーに追加します。 |
|
アクセス制御エントリ(ACE)をネットワーク・ホストのアクセス制御リスト(ACL)に追加します。 |
|
アクセス制御リスト(ACL)のアクセス制御エントリ(ACE)をネットワーク・ホストのACLに追加します。 |
|
アクセス制御エントリ(ACE)をウォレットのアクセス制御リスト(ACL)に追加します。 |
|
アクセス制御リスト(ACL)のアクセス制御エントリ(ACE)をウォレットのACLに追加します。 |
|
(非推奨)アクセス制御リスト(ACL)をホスト・コンピュータ、ドメインまたはIPサブネットと、TCPポート範囲(指定されている場合)に割り当てます。 |
|
(非推奨)アクセス制御リスト(ACL)をウォレットに割り当てます。 |
|
(非推奨)アクセス制御リスト(ACL)で、権限がユーザーに付与または拒否されているかどうかを確認します。 |
|
(非推奨)アクセス制御リストのオブジェクトIDを指定することによって、ACLで権限がユーザーに付与または拒否されているかどうかを確認します。 |
|
(非推奨)初期権限設定を使用してアクセス制御リスト(ACL)を作成します。 |
|
(非推奨)アクセス制御リスト(ACL)で権限を削除します。 |
|
(非推奨)アクセス制御リスト(ACL)を削除します。 |
|
特定のACEに一致するネットワーク・ホストのアクセス制御リスト(ACL)に含まれるアクセス制御エントリ(ACE)から権限を削除します。 |
|
特定のACEに一致するウォレットのアクセス制御リスト(ACL)に含まれるアクセス制御エントリ(ACE)から権限を削除します。 |
|
データベースからネットワーク・ホストへのアクセスを制御するために、そのホストのアクセス制御リスト(ACL)を設定します。 |
|
データベースからウォレットへのアクセスを制御するために、そのウォレットのアクセス制御リスト(ACL)を設定します。 |
|
(非推奨)ネットワーク・ホストに現在割り当てられているアクセス制御リスト(ACL)の割当てを解除します。 |
|
(非推奨)ウォレットに現在割り当てられているアクセス制御リスト(ACL)の割当てを解除します。 |
113.7.1 ADD_PRIVILEGEプロシージャ
このプロシージャは、ネットワーク・アクセス権を付与または拒否する権限をユーザーに追加します。アクセス制御エントリ(ACE)が存在しない場合は、これを作成します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、APPEND_HOST_ACEプロシージャとAPPEND_WALLET_ACEプロシージャを使用することをお薦めします。
構文
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE ( acl IN VARCHAR2, principal IN VARCHAR2, is_grant IN BOOLEAN, privilege IN VARCHAR2, position IN PLS_INTEGER DEFAULT NULL, start_date IN TIMESTAMP WITH TIMESTAMP DEFAULT NULL, end_date IN TIMESTAMP WITH TIMESTAMP DEFAULT NULL );
パラメータ
表113-4 ADD_PRIVILEGEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は/sys/aclsとなります。 |
|
権限が付与または拒否されるプリンシパル(データベース・ユーザーまたはロール)。大/小文字が区別されます。 |
|
権限が付与されるか拒否されるかのいずれか。 |
|
付与または拒否されるネットワーク権限。 |
|
ACEの(1ベースの)位置。 |
|
アクセス制御エントリ(ACE)の開始日。指定した場合、ACEは指定された日以降にのみ有効になります。権限が既存のACEに追加される場合、 |
|
アクセス制御エントリ(ACE)の終了日。指定した場合、ACEは指定された日以降に期限切れになります。 |
使用上のノート
権限を削除するには、DELETE_PRIVILEGEプロシージャを使用します。
例
BEGIN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE( acl => 'us-example-com-permissions.xml', principal => 'ST_USERS', is_grant => TRUE, privilege => 'connect') END;
113.7.2 APPEND_HOST_ACEプロシージャ
このプロシージャは、アクセス制御エントリ(ACE)をネットワーク・ホストのアクセス制御リスト(ACL)に追加します。ACLはデータベースから特定のホストへのアクセスを制御し、ACEは特定のプリンシパルに付与または拒否される権限を指定します。
構文
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE ( host IN VARCHAR2, lower_port IN PLS_INTEGER DEFAULT NULL, upper_port IN PLS_INTEGER DEFAULT NULL, ace IN XS$ACE_TYPE);
パラメータ
表113-5 APPEND_HOST_ACEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
hostには、ホストの名前またはIPアドレスを指定できます。ワイルドカードを使用すると、ドメインやIPサブネットを指定できます。ホストまたはドメイン名は大/小文字が区別されません。 |
|
オプションのTCPポート範囲の下限です。 |
|
オプションのTCPポート範囲の上限です。 |
|
ACE。 |
使用上のノート
-
ホストACLの対応するACEに重複する権限が含まれている場合、それらはスキップされます。
-
ACEを削除するには、REMOVE_HOST_ACEプロシージャを使用します。
-
ホストのACLは、そのドメインのACLより優先されます。
www.us.example.com
などの特定のホストでは、優先順位の高い順に次のドメインがリストされます。-
www.us.example.com
-
*.us.example.com
-
*.example.com
-
*.com
-
*
-
-
IPアドレスのACLは、そのサブネットのACLより優先されます。
192.168.0.100
などの特定のIPアドレスでは、優先順位の高い順に次のサブネットがリストされます。-
192.168.0.100
-
192.168.0.*
-
192.168.*
-
192.*
-
*
-
-
resolve権限を持つACEは、ポート範囲が指定されていないホストのACLに対してのみ追加できます。
-
connect権限を持つACEが、ポート範囲が指定されたホストのACLと、ポート範囲が指定されていないホストのACLに追加された場合、ポート範囲が指定されたホストのACLが優先されます。
-
ホストのTCPポート範囲を指定する場合、そのホストの他の既存のポート範囲とオーバーラップする範囲は指定できません。
-
ACLを別のホストやウォレットと共有した場合、ACLが変更される前に、そのコピーが作成されます。
参照:
XS$ACE_TYPE
オブジェクト・タイプの詳細は、『Oracle Database Real Application Security管理者および開発者ガイド』を参照してください。
113.7.3 APPEND_HOST_ACLプロシージャ
このプロシージャは、アクセス制御リスト(ACL)のアクセス制御エントリ(ACE)をネットワーク・ホストのACLに追加します。
構文
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACL ( host IN VARCHAR2, lower_port IN PLS_INTEGER DEFAULT NULL, upper_port IN PLS_INTEGER DEFAULT NULL, acl IN VARCHAR2);
パラメータ
表113-6 APPEND_HOST_ACLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
hostには、ホストの名前またはIPアドレスを指定できます。ワイルドカードを使用すると、ドメインやIPサブネットを指定できます。ホストまたはドメイン名は大/小文字が区別されません。 |
|
オプションのTCPポート範囲の下限です。 |
|
オプションのTCPポート範囲の上限です。 |
|
追加元のACL |
使用上のノート
-
ホストACLの対応するACEに重複する権限が含まれている場合、それらはスキップされます。
-
ACEを削除するには、REMOVE_HOST_ACEプロシージャを使用します。
-
ホストのACLは、そのドメインのACLより優先されます。
www.us.example.com
などの特定のホストでは、優先順位の高い順に次のドメインがリストされます。-
www.us.example.com
-
*.us.example.com
-
*.example.com
-
*.com
-
*
-
-
IPアドレスのACLは、そのサブネットのACLより優先されます。
192.168.0.100
などの特定のIPアドレスでは、優先順位の高い順に次のサブネットがリストされます。-
192.168.0.100
-
192.168.0.*
-
192.168.*
-
192.*
-
*
-
-
resolve権限を持つACEは、ポート範囲が指定されていないホストのACLに対してのみ追加できます。
-
connect権限を持つACEが、ポート範囲が指定されたホストのACLと、ポート範囲が指定されていないホストのACLに追加された場合、ポート範囲が指定されたホストのACLが優先されます。
-
ホストのTCPポート範囲を指定する場合、そのホストの他の既存のポート範囲とオーバーラップする範囲は指定できません。ACLを別のホストやウォレットと共有した場合、ACLが変更される前に、そのコピーが作成されます。
113.7.4 APPEND_WALLET_ACEプロシージャ
このプロシージャは、アクセス制御エントリ(ACE)をウォレットのアクセス制御リスト(ACL)に追加します。ACLはデータベースから特定のウォレットへのアクセスを制御し、ACEは特定のプリンシパルに付与または拒否される権限を指定します。
構文
DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACE ( wallet_path IN VARCHAR2, ace IN XS$ACE_TYPE);
パラメータ
表113-7 APPEND_WALLET_ACEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ウォレットのディレクトリ・パスです。このパスでは大文字と小文字が区別され、形式は |
|
ACE。 |
使用上のノート
-
ホストACLの対応するACEに重複する権限が含まれている場合、それらはスキップされます。
-
ACEを削除するには、REMOVE_WALLET_ACEプロシージャを使用します。
-
ACLを別のホストやウォレットと共有した場合、ACLが変更される前に、そのコピーが作成されます。
参照:
XS$ACE_TYPE
オブジェクト・タイプの詳細は、『Oracle Database Real Application Security管理者および開発者ガイド』を参照してください。
113.7.5 APPEND_WALLET_ACLプロシージャ
このプロシージャは、アクセス制御リスト(ACL)のアクセス制御エントリ(ACE)をウォレットのACLに追加します。
構文
DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACL ( wallet_path IN VARCHAR2, acl IN VARCHAR2);
パラメータ
表113-8 APPEND_WALLET_ACLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ウォレットのディレクトリ・パスです。このパスでは大文字と小文字が区別され、形式は |
|
追加元のACL |
使用上のノート
-
ホストACLの対応するACEに重複する権限が含まれている場合、それらはスキップされます。
-
ACEを削除するには、REMOVE_WALLET_ACEを使用します。
-
ACLを別のホストやウォレットと共有した場合、ACLが変更される前に、そのコピーが作成されます。
113.7.6 ASSIGN_ACLプロシージャ
このプロシージャは、アクセス制御リスト(ACL)をホスト・コンピュータ、ドメインまたはIPサブネットと、TCPポート範囲(指定されている場合)に割り当てます。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、APPEND_HOST_ACEプロシージャとAPPEND_WALLET_ACEプロシージャを使用することをお薦めします。
構文
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL ( acl IN VARCHAR2, host IN VARCHAR2, lower_port IN PLS_INTEGER DEFAULT NULL, upper_port IN PLS_INTEGER DEFAULT NULL);
パラメータ
表113-9 ASSIGN_ACLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は |
|
ACLの割当て先のホスト。ホストは、ホスト名またはホストのIPアドレスによって指定できます。ワイルドカードを使用すると、ドメインやIPサブネットを指定できます。ホストまたはドメイン名は大/小文字が区別されません。 |
|
TCPポート範囲の下限( |
|
TCPポート範囲の上限。 |
使用上のノート
-
ホスト・コンピュータ、ドメインまたはIPサブネットと、TCPポート範囲(指定されている場合)に割り当てることができるACLは1つだけです。新しいアクセス制御リストをネットワーク・ターゲットに割り当てると、同じターゲットに割り当てられていた以前のアクセス制御リストの割当ては解除されます。ただし、アクセス制御リストは削除されません。アクセス制御リストを削除するには、DROP_ACLプロシージャを使用します。アクセス制御リストの割当てを削除するには、UNASSIGN_ACLプロシージャを使用します。
-
ドメインに割り当てられているACLの優先順位は、サブドメインに割り当てられている他のACLよりも低く、サブドメインに割り当てられているACLの優先順位は、個々のホストに割り当てられているACLよりも低くなります。このため、www.us.example.comなどの特定のホストでは、優先順位の高い順に次のドメインがリストされます。
- www.us.example.com
- *.us.example.com
- *.example.com
- *.com
- *
同様に、サブネットに割り当てられているACLの優先順位は、より小さいサブネットに割り当てられている他のACLよりも低く、より小さいサブネットに割り当てられているACLの優先順位は、個々のIPアドレスに割り当てられているACLよりも低くなります。このため、192.168.0.100などの特定のIPアドレスでは、優先順位の高い順に次のサブネットがリストされます。
- 192.168.0.100
- 192.168.0.*
- 192.168.*
- 192.*
- *
-
ポート範囲は、ACLのconnect権限の割当てにのみ適用できます。ACLのresolve権限の割当ては、ポート範囲なしでACLがホストに割り当てられている場合にのみ有効です。
connect権限の割当てでは、ポート範囲なしでホストに割り当てられているACLの優先順位は、ポート範囲を指定して同じホストに割り当てられている他のACLよりも低くなります。
-
TCPポート範囲を指定する場合は、
lower_port
とupper_port
の両方がNULL
ではなく、upper_port
がlower_port
以上である必要があります。ポート範囲は、同じホストですでに割り当てられている他のポート範囲とオーバーラップしないようにする必要があります。 -
割当てを削除するには、UNASSIGN_ACLプロシージャを使用します。
例
BEGIN DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL( acl => 'us-example-com-permissions.xml', host => '*.us.example.com', lower_port => 80); END;
113.7.7 ASSIGN_WALLET_ACLプロシージャ
このプロシージャは、アクセス制御リスト(ACL)をWalletに割り当てます。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、APPEND_HOST_ACEプロシージャとAPPEND_WALLET_ACEプロシージャを使用することをお薦めします。
構文
UTL_HTTP.ASSIGN_WALLET_ACL ( acl IN VARCHAR2, wallet_path IN VARCHAR2);
パラメータ
表113-10 ASSIGN_WALLET_ACLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は |
|
ACLの割当て先のWalletのディレクトリ・パス。このパスは大文字と小文字が区別され、形式は |
使用上のノート
割当てを削除するには、UNASSIGN_WALLET_ACLプロシージャを使用します。
例
BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL( acl => 'wallet-acl.xml', description => 'Wallet ACL', principal => 'SCOTT', is_grant => TRUE, privilege => 'use-client-certificates'); DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE( acl => 'wallet-acl.xml', principal => 'SCOTT', is_grant => TRUE, privilege => 'use-passwords'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_WALLET_ACL( acl => 'wallet-acl.xml', wallet_path => 'file:/example/wallets/test_wallet'); END;
113.7.8 CHECK_PRIVILEGEファンクション
このファンクションは、ACLで権限がユーザーに付与または拒否されているかどうかを確認します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このプロシージャは、下位互換性を維持する目的でのみ、引き続きパッケージで提供されます。
構文
DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE ( acl IN VARCHAR2, user IN VARCHAR2, privilege IN VARCHAR2) RETURN NUMBER;
パラメータ
表113-11 CHECK_PRIVILEGEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は/sys/aclsとなります。 |
|
チェック対象のユーザー。ユーザーが |
|
チェックするネットワーク権限。 |
戻り値
権限が付与された場合は1、権限が拒否された場合は0、権限が付与されず、かつ拒否されなかった場合には、NULL
が戻されます。
例
SELECT DECODE( DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE( 'us-example-com-permissions.xml', 'SCOTT', 'resolve'), 1, 'GRANTED', 0, 'DENIED', NULL) PRIVILEGE FROM DUAL;
113.7.9 CHECK_PRIVILEGE_ACLIDファンクション
このファンクションは、アクセス制御リストのオブジェクトIDを指定することによって、ACLで権限がユーザーに付与または拒否されているかどうかを確認します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このプロシージャは、下位互換性を維持する目的でのみ、引き続きパッケージで提供されます。
構文
DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID ( aclid IN RAW, user IN VARCHAR2 DEFAULT NULL) privilege IN VARCHAR2, RETURN NUMBER;
パラメータ
表113-12 CHECK_PRIVILEGE_ACLIDファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLのオブジェクトID |
|
チェック対象のユーザー。ユーザーが |
|
チェックするネットワーク権限。 |
戻り値
権限が付与された場合は1、権限が拒否された場合は0、権限が付与されず、かつ拒否されなかった場合には、NULL
が戻されます。
113.7.10 CREATE_ACLプロシージャ
この推奨されないプロシージャは、初期権限設定を使用してアクセス制御リスト(ACL)を作成します。ACLには、少なくとも1つの権限設定がある必要があります。ACLのアクセス制御は、ネットワーク・ターゲットに割り当てられるまで有効になりません。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、APPEND_HOST_ACEプロシージャとAPPEND_WALLET_ACEプロシージャを使用することをお薦めします。
構文
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL ( acl IN VARCHAR2, description IN VARCHAR2, principal IN VARCHAR2, is_grant IN BOOLEAN, privilege IN VARCHAR2, start_date IN TIMESTAMP WITH TIMEZONE DEFAULT NULL, end_date IN TIMESTAMP WITH TIMEZONE DEFAULT NULL );
パラメータ
表113-13 CREATE_ACLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は/sys/aclsとなります。 |
|
ACLの記述属性。 |
|
権限が付与または拒否されるプリンシパル(データベース・ユーザーまたはロール)。大/小文字が区別されます。 |
|
権限が付与されるか拒否されるかのいずれか。 |
|
付与または拒否されるネットワーク権限 - |
|
アクセス制御エントリ(ACE)の開始日。指定した場合、ACEは指定された日以降にのみ有効になります。 |
|
アクセス制御エントリ(ACE)の終了日。指定した場合、ACEは指定された日以降に期限切れになります。 |
使用上のノート
アクセス制御リストを削除するには、DROP_ACLプロシージャを使用します。
例
BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL( acl => 'us-example-com-permissions.xml', description => 'Network permissions for *.us.example.com', principal => 'SCOTT', is_grant => TRUE, privilege => 'connect'); END;
113.7.11 DELETE_PRIVILEGEプロシージャ
この推奨されないプロシージャは、アクセス制御リストの権限を削除します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、REMOVE_HOST_ACEプロシージャとREMOVE_WALLET_ACEプロシージャを使用することをお薦めします。
構文
DBMS_NETWORK_ACL_ADMIN.DELETE_PRIVILEGE ( acl IN VARCHAR2, principal IN VARCHAR2, is_grant IN BOOLEAN DEFAULT NULL, privilege IN VARCHAR2 DEFAULT NULL);
パラメータ
表113-14 DELETE_PRIVILEGEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は/sys/aclsとなります。 |
|
すべてのACEが削除されるプリンシパル(データベース・ユーザーまたはロール)。 |
|
権限が付与されるか拒否されるかのいずれか。 |
|
削除されるネットワーク権限。 |
例
BEGIN DBMS_NETWORK_ACL_ADMIN.DELETE_PRIVILEGE( acl => 'us-example-com-permissions.xml', principal => 'ST_USERS') END;
113.7.12 DROP_ACLプロシージャ
この推奨されないプロシージャは、アクセス制御リスト(ACL)を削除します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このプロシージャは、下位互換性を維持する目的でのみ、引き続きパッケージで提供されます。
構文
DBMS_NETWORK_ACL_ADMIN.DROP_ACL ( acl IN VARCHAR2);
パラメータ
表113-15 DROP_ACLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は/sys/aclsとなります。 |
例
BEGIN DBMS_NETWORK_ACL_ADMIN.DROP_ACL( acl => 'us-example-com-permissions.xml'); END;
113.7.13 REMOVE_HOST_ACEプロシージャ
このプロシージャは、特定のACEに一致するネットワーク・ホストのアクセス制御リスト(ACL)に含まれるアクセス制御エントリ(ACE)から権限を削除します。
構文
DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE ( host IN VARCHAR2, lower_port IN PLS_INTEGER DEFAULT NULL, upper_port IN PLS_INTEGER DEFAULT NULL, ace IN XS$ACE_TYPE, remove_empty_acl IN BOOLEAN DEFAULT FALSE);
パラメータ
表113-16 REMOVE_HOST_ACEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
hostには、ホストの名前またはIPアドレスを指定できます。ワイルドカードを使用すると、ドメインやIPサブネットを指定できます。ホストまたはドメイン名は大/小文字が区別されません。 |
|
オプションのTCPポート範囲の下限です。 |
|
オプションのTCPポート範囲の上限です。 |
|
ACE。 |
|
ACEが削除されてACLが空になったときに、そのACLを削除するかどうか |
使用上のノート
ACLを別のホストやウォレットと共有した場合、ACLが変更される前に、そのコピーが作成されます。
113.7.14 REMOVE_WALLET_ACEプロシージャ
このプロシージャは、特定のACEに一致するウォレットのアクセス制御リスト(ACL)に含まれるアクセス制御エントリ(ACE)から権限を削除します。
構文
DBMS_NETWORK_ACL_ADMIN.REMOVE_WALLET_ACE ( wallet_path IN VARCHAR2, ace IN XS$ACE_TYPE, remove_empty_acl IN BOOLEAN DEFAULT FALSE);
パラメータ
表113-17 REMOVE_WALLET_ACEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ウォレットのディレクトリ・パスです。このパスでは大文字と小文字が区別され、形式は |
|
ACE。 |
|
ACEが削除されてACLが空になったときに、そのACLを削除するかどうか |
使用上のノート
ACLを別のホストやウォレットと共有した場合、ACLが変更される前に、そのコピーが作成されます。
113.7.15 SET_HOST_ACLプロシージャ
このプロシージャは、データベースからネットワーク・ホストへのアクセスを制御するために、そのホストのアクセス制御リスト(ACL)を設定します。
構文
DBMS_NETWORK_ACL_ADMIN.SET_HOST_ACL ( host IN VARCHAR2, lower_port IN PLS_INTEGER DEFAULT NULL, upper_port IN PLS_INTEGER DEFAULT NULL, acl IN VARCHAR2);
パラメータ
表113-18 SET_HOST_ACLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
hostには、ホストの名前またはIPアドレスを指定できます。ワイルドカードを使用すると、ドメインやIPサブネットを指定できます。ホストまたはドメイン名は大/小文字が区別されません。 |
|
オプションのTCPポート範囲の下限です。 |
|
オプションのTCPポート範囲の上限です。 |
|
ACL。 |
使用上のノート
アクセス制御エントリ(ACE)がホストのACLに追加されると、そのホストのACLがオンデマンドで作成および設定されます。ホストのACLは手動で設定しないことをお薦めします。
113.7.16 SET_WALLET_ACLプロシージャ
このプロシージャは、データベースからウォレットへのアクセスを制御するために、そのウォレットのアクセス制御リスト(ACL)を設定します。
構文
DBMS_NETWORK_ACL_ADMIN.SET_WALLET_ACL ( wallet_path IN VARCHAR2, acl IN VARCHAR2);
パラメータ
表113-19 SET_WALLET_ACLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ウォレットのディレクトリ・パスです。このパスでは大文字と小文字が区別され、形式は |
|
ACL。 |
使用上のノート
アクセス制御エントリ(ACE)がウォレットのACLに追加されると、そのウォレットのACLがオンデマンドで作成および設定されます。ウォレットのACLは手動で設定しないことをお薦めします。
113.7.17 UNASSIGN_ACLプロシージャ
この推奨されないプロシージャは、ネットワーク・ホストに現在割り当てられているアクセス制御リスト(ACL)の割当てを解除します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、REMOVE_HOST_ACEプロシージャとREMOVE_WALLET_ACEプロシージャを使用することをお薦めします。
構文
DBMS_NETWORK_ACL_ADMIN.UNASSIGN_ACL ( acl IN VARCHAR2 DEFAULT NULL, host IN VARCHAR2 DEFAULT NULL, lower_port IN PLS_INTEGER DEFAULT NULL, upper_port IN PLS_INTEGER DEFAULT NULL);
パラメータ
表113-20 UNASSIGN_ACLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は/sys/aclsとなります。ACLが |
|
ACLが削除されるホスト。ホストは、ホスト名またはホストのIPアドレスによって指定できます。ワイルドカードを使用すると、ドメインやIPサブネットを指定できます。ホストまたはドメイン名は大/小文字が区別されません。hostが |
|
TCPポート範囲の下限( |
|
TCPポート範囲の上限。 |
例
BEGIN DBMS_NETWORK_ACL_ADMIN.UNASSIGN_ACL( host => '*.us.example.com', lower_port => 80); END;
113.7.18 UNASSIGN_WALLET_ACLプロシージャ
この推奨されないプロシージャは、Walletに現在割り当てられているアクセス制御リスト(ACL)の割当てを解除します。
ノート:
Oracle Database 12cでは、このプロシージャの使用は推奨されていません。このパッケージでは、下位互換性を維持する目的で、このプロシージャを使用できますが、REMOVE_HOST_ACEプロシージャとREMOVE_WALLET_ACEプロシージャを使用することをお薦めします。
構文
UTL_HTTP.UNASSIGN_WALLET_ACL ( acl IN VARCHAR2 DEFAULT NULL, wallet_path IN VARCHAR2 DEFAULT NULL);
パラメータ
表113-21 UNASSIGN_WALLET_ACLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ACLの名前。相対パスの起点は |
|
ACLの割当て先のWalletのディレクトリ・パス。このパスは大文字と小文字が区別され、形式は |
例
BEGIN DBMS_NETWORK_ACL_ADMIN.UNASSIGN_WALLET_ACL( acl => 'wallet-acl.xml', wallet_path => 'file:/example/wallets/test_wallet'); END;