23 Oracle Database VaultポリシーのAPI
DBMS_MACADM
PL/SQLパッケージを使用してOracle Database Vaultポリシーを管理できます。
DV_OWNER
ロールまたはDV_ADMIN
ロールを付与されているユーザーのみがこれらのプロシージャを使用できます。
- ADD_CMD_RULE_TO_POLICYプロシージャ
ADD_COMMAND_RULE_TO_POLICY
プロシージャでは、既存のコマンド・ルールをOracle Database Vaultポリシーに追加できます。 - ADD_OWNER_TO_POLICYプロシージャ
ADD_OWNER_TO_POLICY
プロシージャでは、既存のデータベース・ユーザーを所有者としてOracle Database Vaultポリシーに追加できます。 - ADD_REALM_TO_POLICYプロシージャ
ADD_REALM_TO_POLICY
プロシージャでは、既存のレルムをOracle Database Vaultポリシーに追加できます。 - CREATE_POLICYプロシージャ
CREATE_POLICY
プロシージャでは、Oracle Database Vaultポリシーを作成できます。 - DELETE_CMD_RULE_FROM_POLICYプロシージャ
DELETE_CMD_RULE_FROM_POLICY
プロシージャでは、既存のコマンド・ルールをOracle Database Vaultポリシーから削除できます。 - DELETE_OWNER_FROM_POLICYプロシージャ
DELETE_OWNER_FROM_POLICY
プロシージャでは、Oracle Database Vaultポリシーから所有者を削除できます。 - DELETE_REALM_FROM_POLICYプロシージャ
DELETE_REALM_FROM_POLICY
プロシージャでは、既存のレルムをOracle Database Vaultポリシーから削除できます。 - DROP_POLICYプロシージャ
DROP_POLICY
プロシージャでは、既存のOracle Database Vaultポリシーを削除できます。 - RENAME_POLICYプロシージャ
UPDATE_POLICY_DESCRIPTION
プロシージャでは、既存のOracle Database Vaultポリシーの名前を変更できます。 - UPDATE_POLICY_DESCRIPTIONプロシージャ
UPDATE_POLICY_DESCRIPTION
プロシージャでは、Oracle Database Vaultポリシー内のdescription
フィールドを更新できます。 - UPDATE_POLICY_STATEプロシージャ
UPDATE_POLICY_STATE
プロシージャでは、Oracle Database Vaultポリシー内のpolicy_state
フィールドを更新できます。
23.1 ADD_CMD_RULE_TO_POLICYプロシージャ
ADD_COMMAND_RULE_TO_POLICY
プロシージャでは、既存のコマンド・ルールをOracle Database Vaultポリシーに追加できます。
コマンド・ルールがどの状態であっても、コマンド・ルールをポリシーに追加できます。たとえば、無効になっているコマンド・ルールを有効になっているポリシーに追加できます。この場合、無効になっているコマンド・ルールは、ポリシーに追加されると自動的に有効になります。コマンド・ルールは、1つのポリシーのみに追加できます。つまり、同じコマンド・ルールを複数のポリシーに割り当てることはできません。
構文
DBMS_MACADM.ADD_CMD_RULE_TO_POLICY( policy_name IN VARCHAR2, command IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, clause_name IN VARCHAR2 DEFAULT, parameter_name IN VARCHAR2 DEFAULT, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT);
パラメータ
表23-1 ADD_CMD_RULE_TO_POLICYパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
コマンド・ルール名 現行のデータベース・インスタンスで既存のDatabase Vaultコマンド・ルールを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
コマンド・ルールを適用するデータベース・スキーマ このコマンド・ルールの既存のオブジェクト所有者を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
コマンド・ルールで保護されるオブジェクト このコマンド・ルールの既存のオブジェクトを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存の句を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のパラメータを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のイベント名を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のコンポーネント名を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のアクション名を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
次の例では、共通コマンド・ルールをDatabase Vaultポリシーに追加する方法を示します。このコマンド・ルールはマルチテナント環境のアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはアプリケーション・ルート内またはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているルールまたはルール・セットは、共通である必要があります。
BEGIN DBMS_MACADM.ADD_CMD_RULE_TO_POLICY( policy_name => 'HR_DV_Policy', command => 'ALTER SESSION', object_owner => '%', object_name => '%', clause_name => 'PARALLEL DDL', parameter_name => '', event_name => '', action_name => '', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
23.2 ADD_OWNER_TO_POLICYプロシージャ
ADD_OWNER_TO_POLICY
プロシージャでは、既存のデータベース・ユーザーを所有者としてOracle Database Vaultポリシーに追加できます。
有効になっているポリシーに所有者を追加すると、その変更内容がすぐに反映されます。ポリシーに追加するユーザーの数に制限はありません。
構文
DBMS_MACADM.ADD_OWNER_TO_POLICY( policy_name IN VARCHAR2, owner_name IN VARCHAR2);
パラメータ
表23-2 ADD_OWNER_TO_POLICYパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
ユーザー名。現在のインスタンス内の既存のデータベース・ユーザー(ロールではない)を確認するには、Oracle Databaseリファレンスで説明されている、 |
例
BEGIN DBMS_MACADM.ADD_OWNER_TO_POLICY( policy_name => 'HR_DV_Policy', owner_name => 'PSMITH'); END; /
23.3 ADD_REALM_TO_POLICYプロシージャ
ADD_REALM_TO_POLICY
プロシージャでは、既存のレルムをOracle Database Vaultポリシーに追加できます。
無効になっているレルムを有効になっているポリシーに追加できます。この場合、レルムは、追加されると自動的に有効になります。レルムは、1つのポリシーのみに追加できます。つまり、同じレルムを複数のポリシーに割り当てることはできません。
構文
DBMS_MACADM.ADD_REALM_TO_POLICY( policy_name IN VARCHAR2, realm_name IN VARCHAR2);
パラメータ
表23-3 ADD_REALM_TO_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現在のデータベース・インスタンスで既存のDatabase Vaultポリシーを検索するには、 |
|
レルム名。現在のデータベース・インスタンスで既存のDatabase Vaultレルムを検索します。 |
例
BEGIN DBMS_MACADM.ADD_REALM_TO_POLICY( policy_name => 'HR_DV_Policy', realm_name => 'HR Realm'); END; /
23.4 CREATE_POLICYプロシージャ
CREATE_POLICY
プロシージャでは、Oracle Database Vaultポリシーを作成できます。
ポリシーの作成後、少なくとも1つのレルムと1つのコマンド・ルールをポリシーに追加する必要があります。必要に応じて、これらのレルムおよびコマンド・ルールを個別に強制するよう設定するか、ポリシーで使用されている強制を使用できます。
ポリシーの所有者は必要ありませんが、ポリシーに所有者を割り当てない場合は、DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーがポリシーを管理する必要があります。
ポリシーを作成した後で、次のプロシージャを使用してポリシー定義を完了します。
-
ADD_REALM_TO_POLICY
は、レルムをポリシーに追加します。 -
ADD_CMD_RULE_TO_POLICY
は、コマンド・ルールをポリシーに追加します。 -
ADD_OWNER_TO_POLICY
は、指定したデータベース・ユーザーがポリシーを管理できるようにします。
構文
DBMS_MACADM.CREATE_POLICY( policy_name IN VARCHAR2, description IN VARCHAR2 DEFAULT, policy_state IN NUMBER, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表23-4 CREATE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名(大/小文字混在で最大128文字) 現行のデータベース・インスタンスで既存のポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
ポリシーの目的の説明(大/小文字混在で最大4000文字)。 |
|
ポリシーを有効にする方法を指定します。使用される値は、次のとおりです。
シミュレーション・モードの詳細は、シミュレーション・モードについてを参照してください。 |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
次の例では、部分状態を使用するポリシーを作成し、PL/SQLスタックの取得を有効にします。後で、レルムまたはコマンド・ルールをこのポリシーに追加するときに、それらの強制状態を個別に変更できます。
BEGIN DBMS_MACADM.CREATE_POLICY( policy_name => 'HR_DV_Policy', description => 'Policy to protect the HR schema', policy_state => DBMS_MACADM.G_ENABLED, pl_sql_stack => TRUE); END; /
23.5 DELETE_CMD_RULE_FROM_POLICYプロシージャ
DELETE_CMD_RULE_FROM_POLICY
プロシージャでは、既存のコマンド・ルールをOracle Database Vaultポリシーから削除できます。
ポリシーの状態に関係なく、いつでもポリシーからコマンド・ルールを削除できます。ポリシーからコマンド・ルールを削除しても、コマンド・ルールの状態は同じままになります。つまり、ポリシーが有効になっており、ポリシーからコマンド・ルールを削除した場合、コマンド・ルールは、ポリシーから削除した後も有効なままとなります。
構文
DBMS_MACADM.DELETE_CMD_RULE_FROM_POLICY( policy_name IN VARCHAR2, command IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, clause_name IN VARCHAR2 DEFAULT, parameter_name IN VARCHAR2 DEFAULT, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT);
パラメータ
表23-5 DELETE_CMD_RULE_FROM_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
コマンド・ルール名 現行のデータベース・インスタンスで既存のDatabase Vaultコマンド・ルールを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
コマンド・ルールを適用するデータベース・スキーマ このコマンド・ルールの既存のオブジェクト所有者を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
コマンド・ルールで保護されるオブジェクト このコマンド・ルールの既存のオブジェクトを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存の句を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のパラメータを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のイベント名を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のコンポーネント名を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールの既存のアクション名を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
次の例では、Database Vaultポリシーから共通コマンド・ルールを削除する方法を示します。このコマンド・ルールはマルチテナント環境のアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。
BEGIN DBMS_MACADM.DELETE_CMD_RULE_FROM_POLICY( policy_name => 'HR_DV_Policy', command => 'ALTER SESSION', object_owner => '%', object_name => '%', clause_name => 'END SESSION', parameter_name => 'KILL SESSION', event_name => '', action_name => '', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
23.6 DELETE_OWNER_FROM_POLICYプロシージャ
DELETE_OWNER_FROM_POLICY
プロシージャでは、Oracle Database Vaultポリシーから所有者を削除できます。
ポリシーの状態(有効または無効)に関係なく、いつでもポリシーから所有者を削除できます。変更は即座に反映されます。
構文
DBMS_MACADM.DELETE_OWNER_FROM_POLICY( policy_name IN VARCHAR2, owner_name IN VARCHAR2);
パラメータ
表23-6 DELETE_OWNER_FROM_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
ユーザー名。現在のインスタンスで既存のポリシー所有者を確認するには、「DBA_DV_POLICY_OWNERビュー」で説明されている |
例
BEGIN DBMS_MACADM.DELETE_OWNER_FROM_POLICY( policy_name => 'HR_DV_Policy', owner_name => 'PSMITH'); END; /
23.7 DELETE_REALM_FROM_POLICYプロシージャ
DELETE_REALM_FROM_POLICY
プロシージャでは、既存のレルムをOracle Database Vaultポリシーから削除できます。
ポリシーの状態(有効または無効)に関係なく、いつでもポリシーからレルムを削除できます。変更は即座に反映されます。
構文
DBMS_MACADM.DELETE_REALM_FROM_POLICY( policy_name IN VARCHAR2, realm_name IN VARCHAR2);
パラメータ
表23-7 DELETE_REALM_FROM_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現在のデータベース・インスタンスで既存のDatabase Vaultポリシーを検索するには、 |
|
レルム名。現在のデータベース・インスタンスで既存のDatabase Vaultレルムを検索するには、 |
例
BEGIN DBMS_MACADM.DELETE_REALM_FROM_POLICY( policy_name => 'HR_DV_Policy', realm_name => 'HR Realm'); END; /
23.8 DROP_POLICYプロシージャ
DROP_POLICY
プロシージャでは、既存のOracle Database Vaultポリシーを削除できます。
ポリシーの状態(有効または無効)に関係なく、いつでもポリシーを削除できます。
構文
DBMS_MACADM.DROP_POLICY( policy_name IN VARCHAR2);
パラメータ
表23-8 DROP_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
例
BEGIN DBMS_MACADM.DROP_POLICY( policy_name => 'HR_DV_Policy'); END; /
23.9 RENAME_POLICYプロシージャ
UPDATE_POLICY_DESCRIPTION
プロシージャでは、既存のOracle Database Vaultポリシーの名前を変更できます。
ポリシーの状態(有効または無効)に関係なく、いつでもポリシーの名前を変更できます。変更は即座に反映されます。
構文
DBMS_MACADM.RENAME_POLICY( policy_name IN VARCHAR2, new_policy_name IN VARCHAR2);
パラメータ
表23-9 RENAME_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
新しいポリシー名(大/小文字混在で最大128文字) |
例
BEGIN DBMS_MACADM.RENAME_POLICY( policy_name => 'HR_DV_Policy', new_policy_name => 'HR_WEST_COAST_DV_Policy'); END; /
23.10 UPDATE_POLICY_DESCRIPTIONプロシージャ
UPDATE_POLICY_DESCRIPTION
プロシージャでは、Oracle Database Vaultポリシー内のdescription
フィールドを更新できます。
構文
DBMS_MACADM.UPDATE_POLICY_DESCRIPTION( policy_name IN VARCHAR2, description IN VARCHAR2 DEFAULT);
パラメータ
表23-10 UPDATE_POLICY_DESCRIPTIONのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
ポリシーの目的の新しい説明(大/小文字混在で最大4000文字) |
例
BEGIN DBMS_MACADM.UPDATE_POLICY_DESCRIPTION( policy_name => 'HR_DV_Policy', description => 'HR schema protection policy'); END; /
23.11 UPDATE_POLICY_STATEプロシージャ
UPDATE_POLICY_STATE
プロシージャでは、Oracle Database Vaultポリシー内のpolicy_state
フィールドを更新できます。
構文
DBMS_MACADM.UPDATE_POLICY_STATE( policy_name IN VARCHAR2, policy_state IN NUMBER, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表23-11 UPDATE_POLICY_STATEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシー名。現行のデータベース・インスタンスで既存のDatabase Vaultポリシーを確認するには、「DBA_DV_POLICYビュー」で説明されている |
|
ポリシーを有効にする方法を指定します。使用される値は、次のとおりです。
シミュレーション・モードの詳細は、シミュレーション・モードについてを参照してください。 |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
BEGIN DBMS_MACADM.UPDATE_POLICY_STATE( policy_name => 'HR_DV_Policy', policy_state => DBMS_MACADM.G_DISABLED, pl_sql_stack => TRUE); END; /