17 Oracle Database Vaultコマンド・ルールのAPI
DBMS_MACADM
PL/SQLパッケージは、コマンド・ルールを構成するためのプロシージャを提供します。
DV_OWNER
ロールまたはDV_ADMIN
ロールを付与されているユーザーのみがこれらのプロシージャを使用できます。
- CREATE_COMMAND_RULEプロシージャ
CREATE_COMMAND_RULE
プロシージャは、コマンド・ルールを作成し、ルール・セットに関連付けます。 - CREATE_CONNECT_COMMAND_RULEプロシージャ
CREATE_CONNECT_COMMAND_RULE
プロシージャは、ユーザーおよびルール・セットに関連付けることができる、CONNECTコマンド・ルールを作成します。 - CREATE_SESSION_EVENT_CMD_RULEプロシージャ
CREATE_SESSION_EVENT_CMD_RULE
プロシージャは、ALTER SESSION
文に基づいて、セッション・イベントに関連付けることができるコマンド・ルールを作成します。 - CREATE_SYSTEM_EVENT_CMD_RULEプロシージャ
CREATE_SYSTEM_EVENT_CMD_RULE
プロシージャは、ALTER SYSTEM
文に基づいて、システム・イベントに関連付けることができるコマンド・ルールを作成します。 - DELETE_COMMAND_RULEプロシージャ
DELETE_COMMAND_RULE
プロシージャは、コマンド・ルールの宣言を削除します。 - DELETE_CONNECT_COMMAND_RULEプロシージャ
DELETE_CONNECT_COMMAND_RULE
プロシージャは、CREATE_CONNECT_COMMAND_RULE
プロシージャで作成されたCONNECTコマンド・ルールを削除します。 - DELETE_SESSION_EVENT_CMD_RULEプロシージャ
DELETE_SESSION_EVENT_CMD_RULE
プロシージャは、イベントに関連付けられているセッション・コマンド・ルールを削除します。 - DELETE_SYSTEM_EVENT_CMD_RULEプロシージャ
DELETE_SYSTEM_EVENT_CMD_RULE
プロシージャは、イベントに関連付けられているシステム・コマンド・ルールを削除します。 - UPDATE_COMMAND_RULEプロシージャ
UPDATE_COMMAND_RULE
プロシージャは、コマンド・ルールの宣言を更新します。 - UPDATE_CONNECT_COMMAND_RULEプロシージャ
UPDATE_CONNECT_COMMAND_RULE
プロシージャは、CREATE_CONNECT_COMMAND_RULE
プロシージャで作成されたCONNECTコマンド・ルールを更新します。 - UPDATE_SESSION_EVENT_CMD_RULEプロシージャ
UPDATE_SESSION_EVENT_CMD_RULE
プロシージャは、ALTER SESSION
文に基づいて、セッション・イベント・コマンド・ルールを更新します。 - UPDATE_SYSTEM_EVENT_CMD_RULEプロシージャ
UPDATE_SYSTEM_EVENT_CMD_RULE
プロシージャは、ALTER SYSTEM
文に基づいて、システム・イベント・コマンド・ルールを更新します。
17.1 CREATE_COMMAND_RULEプロシージャ
CREATE_COMMAND_RULE
プロシージャは、コマンド・ルールを作成し、ルール・セットに関連付けます。
オプションで、これを使用して、ルール・セットによるコマンド・ルールのルール・チェックを有効化できます。マルチテナント環境では、共通およびローカルの両方のコマンド・ルールを作成できます。
構文
DBMS_MACADM.CREATE_COMMAND_RULE( command IN VARCHAR2, rule_set_name IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, enabled IN VARCHAR2, privilege_scope IN NUMBER, clause_name IN VARCHAR2, parameter_name IN VARCHAR2, event_name IN VARCHAR2, component_name IN VARCHAR2, action_name IN VARCHAR2, scope IN NUMBER DEFAULT);
パラメータ
表17-1 CREATE_COMMAND_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
保護するSQL文。 次の項も参照してください。
|
|
このコマンド・ルールに関連付けるルール・セットの名前。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
このコマンド・ルールを適用するデータベース・スキーマ。 DBA_USERS ビューを問い合せます。
詳細は、「コマンド・ルールの作成」の「オブジェクト所有者」も参照してください。 |
|
コマンド・ルールで保護されるオブジェクト。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成」の「オブジェクト名」を参照)。 使用可能なオブジェクトを確認するには、『Oracle Databaseリファレンス』で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
廃止されたパラメータ |
|
コマンド・ルールの作成に使用されたSQL文の句。たとえば、
|
|
|
|
コマンド・ルールで定義されているイベント。たとえば、
|
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを作成し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
ALTER SYSTEMコマンド・ルール設定
表17-2に、ALTER SYSTEM
コマンド・ルール設定を示します。
表17-2 ALTER SYSTEMコマンド・ルール設定
clause_name | parameter_name — パラメータ値 |
---|---|
|
|
|
該当なし — |
|
該当なし — |
|
該当なし — 該当なし |
|
該当なし — |
|
|
|
|
|
|
|
|
|
|
|
該当なし — 該当なし |
|
|
|
該当なし — 該当なし |
|
|
|
|
|
該当なし — |
|
該当なし — |
|
該当なし — 該当なし |
|
該当なし — |
ALTER SESSIONコマンド・ルール設定
表17-3に、ALTER SESSION
コマンド・ルール設定を示します。
表17-3 ALTER SESSIONコマンド・ルール設定
clause_name | parameter_name — パラメータ値 |
---|---|
|
該当なし — |
|
該当なし — |
|
該当なし — |
|
該当なし — |
|
|
|
該当なし — 該当なし |
|
該当なし — |
|
該当なし — |
|
該当なし — |
|
該当なし — |
|
該当なし — 該当なし |
|
|
例
次の例では、OE.ORDERS
表に対するSELECT
文のために単純なコマンド・ルールを作成する方法を示します。このコマンド・ルールでは、コマンド・ルールは使用されません。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'SELECT', rule_set_name => 'Check User Role', object_owner => 'OE', object_name => 'ORDERS', enabled => DBMS_MACUTL.G_YES); END; /
SET句を使用したALTER SESSIONコマンド・ルール
次の例では、ERROR_ON_OVERLAP_TIME
パラメータを指定してSET
句を使用する、ALTER SESSION
コマンド・ルールを作成する方法を示します。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'ALTER SESSION', rule_set_name => 'Test ERROR_ON_OVERLAP_TIME for FALSE', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES, clause_name => 'SET', parameter_name => 'ERROR_ON_OVERLAP_TIME', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
この例の説明は、次のとおりです。
-
rule_set_name
:ALTER SESSION
SQL文のERROR_ON_OVERLAP_TIME
セッション・パラメータは、TRUE
またはFALSE
のどちらかに設定する必要があります。この設定になっているかどうかを確認するルール・セットを作成できます。たとえば、次のルールがあるとします。EXEC DBMS_MACADM.CREATE_RULE('RULE_TRUE', 'UPPER(PARAMETER_VALUE) = ''TRUE''');
このルールとともに使用されるルール・セットは、次のようにできます。
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Test ERROR_ON_OVERLAP_TIME', description => 'Checks if the ERROR_ON_OVERLAP_TIME setting is TRUE or FALSE', enabled => DBMS_MACUTL.G_YES, eval_options => DBMS_MACUTL.G_RULESET_EVAL_ALL, audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT, fail_message => 'false error on overlaptime', fail_code => 20461, handler_options => DBMS_MACUTL.G_RULESET_HANDLER_FAIL, handler => '', is_static => false); END; / EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET('Test ERROR_ON_OVERLAP_TIME', 'RULE_TRUE');
-
ALTER SESSION
およびALTER SYSTEM
コマンド・ルールで、object_owner
およびobject_name
を%
に設定する必要があります。 -
enabled
では、コマンド・ルールを作成時に有効にするために、DBMS_MACUTL.G_YES
定数が使用されます。 -
clause_name
では、ALTER SESSION
PL/SQL文のSET
句を使用するようALTER SESSION
コマンド・ルールが設定されます。 -
parameter_name
は、SET
句のERROR_ON_OVERLAP_TIME
パラメータに設定されます。 -
scope
では、コマンド・ルールを共通コマンド・ルールにするよう設定するために、DBMS_MACUTL.G_SCOPE_COMMON
定数が使用されます。このコマンド・ルールはマルチテナント環境のアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているルールまたはルール・セットは、共通である必要があります。コマンド・ルールをローカルで作成している場合は、
scope
をDBMS_MACUTL.G_SCOPE_LOCAL
に設定します。その場合、このプロシージャを実行するユーザーは、コマンド・ルールが存在するPDB内にいる必要があります。既存のPDBを確認するには、DBA_PDBS
データ・ディクショナリ・ビューを問い合せます。このコマンド・ルールに関連付けられているルールまたはルール・セットは、ローカルである必要があります。
CHECKPOINT句を使用したALTER SYSTEMコマンド・ルール
この例では、CHECKPOINT
句を使用するALTER SYSTEMコマンド・ルールの作成方法を示します。CHECKPOINT
設定のためにコマンド・ルールをテストするには、前の例のALTER SESSIONコマンド・ルールと同様に、ルール・セットおよびルールを作成する必要があります。この例では、parameter
設定を指定しません。これは、CHECKPOINT
設定にパラメータがないためです。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'ALTER SYSTEM', rule_set_name => 'Test CHECKPOINT Setting', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES, clause_name => 'CHECKPOINT', parameter_name => '', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
SET句を使用したALTER SESSIONコマンド・ルール
次のALTER SESSIONコマンド・ルールでは、SET
句を使用してevent_name
およびcomponent_name
を指定します。clause_name
パラメータでSET
が指定される場合は、event_name
、component_name
およびaction_name
パラメータのみを使用できます。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'ALTER SESSION', rule_set_name => 'Check Trace Events', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES, clause_name => 'SET', parameter_name => 'EVENTS', event_name => 'TRACE', component_name => 'GCS', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
このトピックの概念的情報については、ALTER SESSIONおよびALTER SYSTEMコマンド・ルールを参照してください。
17.2 CREATE_CONNECT_COMMAND_RULEプロシージャ
CREATE_CONNECT_COMMAND_RULE
プロシージャは、ユーザーおよびルール・セットに関連付けることができる、CONNECTコマンド・ルールを作成します。
マルチテナント環境では、共通およびローカルの両方のコマンド・ルールを作成できます。
構文
DBMS_MACADM.CREATE_CONNECT_COMMAND_RULE( user_name IN VARCHAR2, rule_set_name IN VARCHAR2, enabled IN VARCHAR2, scope IN NUMBER DEFAULT);
パラメータ
表17-4 CREATE_CONNECT_COMMAND_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
CONNECTコマンド・ルールの適用対象となるユーザー。 マルチテナント環境では、ルートでこのプロシージャを実行した場合、 マルチテナント環境では、このユーザーが、CONNECTコマンド・ルールが共通である場合は共通、CONNECTコマンド・ルールがローカルである場合はローカルまたは共通であることを確認します。 現在のインスタンス内の既存のデータベース・ユーザーを確認するには、Oracle Databaseリファレンスで説明されている、 |
|
このコマンド・ルールに関連付けるルール・セットの名前。マルチテナント環境では、このルール・セットが、CONNECTコマンド・ルールが共通である場合は共通、CONNECTコマンド・ルールがローカルである場合はローカルであることを確認してください。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通CONNECTコマンド・ルールを作成し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
例
次の例では、マルチテナント環境で共通CONNECTコマンド・ルールを作成する方法を示します。このコマンド・ルールはCDBルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているユーザー名またはルール・セットは、共通である必要があります。
BEGIN DBMS_MACADM.CREATE_CONNECT_COMMAND_RULE( rule_set_name => 'Allow Sessions', user_name => 'C##HR_ADMIN', enabled => DBMS_MACUTL.G_SIMULATION, scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
この例は、前の例のローカル・バージョンです。このプロシージャを実行するユーザーは、ローカルCONNECTコマンド・ルールが存在するPDB内にいる必要があります。使用可能なPDBを見つけるには、show pdbs
コマンドを実行します。このコマンド・ルールに関連付けられているルール・セットは、ローカルである必要があります。ユーザーは、共通またはローカルのどちらかにできます。
BEGIN DBMS_MACADM.CREATE_CONNECT_COMMAND_RULE( rule_set_name => 'Allow Sessions', user_name => 'PSMITH', enabled => DBMS_MACUTL.G_SIMULATION, scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
17.3 CREATE_SESSION_EVENT_CMD_RULEプロシージャ
CREATE_SESSION_EVENT_CMD_RULE
プロシージャは、ALTER SESSION
文に基づいて、セッション・イベントに関連付けることができるコマンド・ルールを作成します。
マルチテナント環境では、セッション・イベントの共通およびローカルの両方のコマンド・ルールを作成できます。
構文
DBMS_MACADM.CREATE_SESSION_EVENT_CMD_RULE( rule_set_name IN VARCHAR2, enabled IN VARCHAR2, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表17-5 CREATE_SESSION_EVENT_CMD_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
コマンド・ルールに関連付けるルール・セットの名前。マルチテナント環境では、このルール・セットが、セッション・イベント・コマンド・ルールが共通である場合は共通、そのコマンド・ルールがローカルである場合はローカルであることを確認してください。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
コマンド・ルールで定義されているイベント。この設定により、コマンド・ルールが |
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを作成し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
次の例では、マルチテナント環境で共通セッション・イベント・コマンド・ルールを作成する方法を示します。このコマンド・ルールはアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているユーザー名またはルール・セットは、共通である必要があります。
BEGIN DBMS_MACADM.CREATE_SESSION_EVENT_CMD_RULE( rule_set_name => 'Allow Sessions', event_name => 'TRACE', component_name => 'DV', action_name => 'CURSORTRACE', enabled => DBMS_MACUTL.G_SIMULATION, scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
この例では、47998トレース・イベントのためにセッション・イベントを作成する方法を示します。この例では、失敗した操作のPL/SQLスタックを記録します。
BEGIN DBMS_MACADM.CREATE_SESSION_EVENT_CMD_RULE( rule_set_name => 'Allow Sessions', event_name => '47998', enabled => 'y', scope => DBMS_MACUTL.G_SCOPE_LOCAL, pl_sql_stack => TRUE); END; /
17.4 CREATE_SYSTEM_EVENT_CMD_RULEプロシージャ
CREATE_SYSTEM_EVENT_CMD_RULE
プロシージャは、ALTER SYSTEM
文に基づいて、システム・イベントに関連付けることができるコマンド・ルールを作成します。
マルチテナント環境では、ALTER SYSTEMの共通およびローカルの両方のコマンド・ルールを作成できます。
構文
DBMS_MACADM.CREATE_SYSTEM_EVENT_CMD_RULE( rule_set_name IN VARCHAR2, enabled IN VARCHAR2, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表17-6 CREATE_SYSTEM_EVENT_CMD_RULEパラメータ
パラメータ | 説明 |
---|---|
|
コマンド・ルールに関連付けるルール・セットの名前。マルチテナント環境では、このルール・セットが、システム・イベント・コマンド・ルールが共通である場合は共通、そのコマンド・ルールがローカルである場合はローカルであることを確認してください。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
コマンド・ルールで定義されているイベント。この設定により、コマンド・ルールが |
|
|
|
|
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを作成し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
次の例では、マルチテナント環境で共通システム・イベント・コマンド・ルールを作成する方法を示します。このコマンド・ルールはアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているユーザー名またはルール・セットは、共通である必要があります。
BEGIN DBMS_MACADM.CREATE_SYSTEM_EVENT_CMD_RULE( rule_set_name => 'Enabled', event_name => 'TRACE', component_name => 'GSIPC', action_name => 'HEAPDUMP', enabled => DBMS_MACUTL.G_YES, scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
17.5 DELETE_COMMAND_RULEプロシージャ
DELETE_COMMAND_RULE
プロシージャは、コマンド・ルールの宣言を削除します。
構文
DBMS_MACADM.DELETE_COMMAND_RULE( command IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, clause_name IN VARCHAR2, parameter_name IN VARCHAR2 DEFAULT, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT);
パラメータ
表17-7 DELETE_COMMAND_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
コマンド・ルールで保護されるSQL文。 使用可能なコマンド・ルールを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている |
|
このコマンド・ルールを適用するデータベース・スキーマ。 現行のデータベース・インスタンスで使用可能なユーザーを確認するには、『Oracle Databaseリファレンス』で説明されている |
|
オブジェクト名。ワイルドカード 現行のデータベース・インスタンスで使用可能なオブジェクトを確認するには、『Oracle Databaseリファレンス』で説明されている |
|
コマンド・ルールの作成に使用されたSQL文の句。
|
|
|
|
コマンド・ルールで定義されているイベント。
|
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
コマンド・ルールを削除するときには、パラメータのrule_set_name
とenabled
を省略して、その他のパラメータが前回のコマンド・ルールの更新時に使用した設定と一致していることを確認してください。DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューを問い合せることで、最新の設定を確認できます。
たとえば、次のコマンド・ルールを作成するとします。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'SELECT', rule_set_name => 'Enabled', object_owner => 'OE', object_name => 'ORDERS', enabled => DBMS_MACUTL.G_YES, scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
このコマンド・ルールを削除するには、ここに示すパラメータと同じものを使用しますが、rule_set_name
とenabled
は省略します。
BEGIN DBMS_MACADM.DELETE_COMMAND_RULE( command => 'SELECT', object_owner => 'OE', object_name => 'ORDERS', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
次の例は、ALTER SESSION
コマンド・ルールを削除する方法を示しています。
BEGIN DBMS_MACADM.DELETE_COMMAND_RULE( command => 'ALTER SESSION', object_owner => '%', object_name => '%', clause_name => 'SET', parameter_name => 'EVENTS', event_name => 'TRACE', component_name => 'GCS', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
17.6 DELETE_CONNECT_COMMAND_RULEプロシージャ
DELETE_CONNECT_COMMAND_RULE
プロシージャは、CREATE_CONNECT_COMMAND_RULE
プロシージャで作成されたCONNECTコマンド・ルールを削除します。
構文
DBMS_MACADM.DELETE_CONNECT_COMMAND_RULE( user_name IN VARCHAR2, scope IN NUMBER DEFAULT);
パラメータ
表17-8 DELETE_CONNECT_COMMAND_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
CONNECTコマンド・ルールの適用対象となるユーザー。 このユーザーを確認するには、 |
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
BEGIN DBMS_MACADM.DELETE_CONNECT_COMMAND_RULE( user_name => 'PSMITH', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
17.7 DELETE_SESSION_EVENT_CMD_RULEプロシージャ
DELETE_SESSION_EVENT_CMD_RULE
プロシージャは、イベントに関連付けられているセッション・コマンド・ルールを削除します。
構文
DBMS_MACADM.DELETE_SESSION_EVENT_CMD_RULE( event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT);
パラメータ
表17-9 DELETE_SESSION_EVENT_CMD_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
セッション・イベント・コマンド・ルールで定義されているイベント。 既存のコマンド・ルールについては、DBA_DV_COMMAND_RULEビューを参照してください。 |
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
次の例では、マルチテナント環境のアプリケーション・ルートで共通セッション・イベント・コマンド・ルールを削除する方法を示します。このプロシージャを実行するユーザーは、CDBルート内の共通ユーザーである必要があります。パラメータを指定するときは、コマンド・ルールを最後に更新したときに使用したパラメータとそれらが正確に一致することを確認します。コマンド・ルールの現在の設定を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されているDBA_DV_COMMAND_RULE
ビューを問い合せます。
BEGIN DBMS_MACADM.DELETE_SESSION_EVENT_CMD_RULE( event_name => '47999', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
17.8 DELETE_SYSTEM_EVENT_CMD_RULEプロシージャ
DELETE_SYSTEM_EVENT_CMD_RULE
プロシージャは、イベントに関連付けられているシステム・コマンド・ルールを削除します。
構文
DBMS_MACADM.DELETE_SYSTEM_EVENT_CMD_RULE( event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT);
パラメータ
表17-10 DELETE_SYSTEM_EVENT_CMD_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
システム・イベント・コマンド・ルールで定義されているイベント。 既存のコマンド・ルールについては、DBA_DV_COMMAND_RULEビューを参照してください。 |
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
|
例
次の例では、マルチテナント環境のアプリケーション・ルートで共通システム・イベント・コマンド・ルールを削除する方法を示します。このプロシージャを実行するユーザーは、CDBルート内の共通ユーザーである必要があります。パラメータを指定するときは、コマンド・ルールを最後に更新したときに使用したパラメータとそれらが正確に一致することを確認します。コマンド・ルールの現在の設定を確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されているDBA_DV_COMMAND_RULE
ビューを問い合せます。
BEGIN DBMS_MACADM.DELETE_SYSTEM_EVENT_CMD_RULE( event_name => 'TRACE', component_name => 'DV', action_name => '', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
17.9 UPDATE_COMMAND_RULEプロシージャ
UPDATE_COMMAND_RULE
プロシージャは、コマンド・ルールの宣言を更新します。
マルチテナント環境では、共通およびローカルの両方のコマンド・ルールを更新できます。
構文
DBMS_MACADM.UPDATE_COMMAND_RULE( command IN VARCHAR2, rule_set_name IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, enabled IN VARCHAR2, privilege_scope IN NUMBER, clause_name IN VARCHAR2, parameter_name IN VARCHAR2 DEFAULT, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表17-11 UPDATE_COMMAND_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
更新するコマンド・ルール 次の項も参照してください。
|
|
このコマンド・ルールに関連付けるルール・セットの名前。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている |
|
このコマンド・ルールを適用するデータベース・スキーマ。 使用可能なユーザーを確認するには、『Oracle Databaseリファレンス』で説明されている |
|
オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成」の「オブジェクト名」を参照)。 使用可能なオブジェクトを確認するには、『Oracle Databaseリファレンス』で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
廃止されたパラメータ |
|
コマンド・ルールの作成に使用されたSQL文の句。たとえば、
|
|
|
|
コマンド・ルールで定義されているイベント。たとえば、
|
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを更新し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
次の例では、HR.EMPLOYEES
スキーマを保護する単純なコマンド・ルールを作成する方法を示します。
BEGIN DBMS_MACADM.UPDATE_COMMAND_RULE( command => 'SELECT', rule_set_name => 'Enabled', object_owner => 'HR', object_name => 'EMPLOYEES', enabled => DBMS_MACUTL.G_SIMULATION, scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
この例では、ALTER SESSION
SQL文に基づく、より複雑なコマンド・ルールを更新する方法を示します。
BEGIN DBMS_MACADM.UPDATE_COMMAND_RULE( command => 'ALTER SESSION', rule_set_name => 'Enabled', object_owner => '%', object_name => '%', enabled => 's', clause_name => 'SET', parameter_name => 'EVENTS', event_name => 'TRACE', component_name => 'GCS', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
17.10 UPDATE_CONNECT_COMMAND_RULEプロシージャ
UPDATE_CONNECT_COMMAND_RULE
プロシージャは、CREATE_CONNECT_COMMAND_RULE
プロシージャで作成されたCONNECTコマンド・ルールを更新します。
構文
DBMS_MACADM.UPDATE_CONNECT_COMMAND_RULE( user_name IN VARCHAR2, rule_set_name IN VARCHAR2, enabled IN VARCHAR2, scope IN NUMBER DEFAULT);
パラメータ
表17-12 UPDATE_CONNECT_COMMAND_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
CONNECTコマンド・ルールの適用対象となるユーザー。 マルチテナント環境では、ルートでこのプロシージャを実行した場合、 マルチテナント環境では、このユーザーが、CONNECTコマンド・ルールが共通である場合は共通、CONNECTコマンド・ルールがローカルである場合はローカルまたは共通であることを確認します。 既存のコマンド・ルールを確認するには、「DBA_DV_COMMAND_RULEビュー」で説明されている 現在のインスタンス内の既存のデータベース・ユーザーを確認するには、Oracle Databaseリファレンスで説明されている、 |
|
このコマンド・ルールに関連付けるルール・セットの名前。マルチテナント環境では、このルール・セットが、CONNECTコマンド・ルールが共通である場合は共通、CONNECTコマンド・ルールがローカルである場合はローカルであることを確認してください。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを更新し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
例
BEGIN DBMS_MACADM.UPDATE_CONNECT_COMMAND_RULE( rule_set_name => 'Allow Sessions', user_name => 'PSMITH', enabled => 'DBMS_MACUTL.G_YES', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
17.11 UPDATE_SESSION_EVENT_CMD_RULEプロシージャ
UPDATE_SESSION_EVENT_CMD_RULE
プロシージャは、ALTER SESSION
文に基づいて、セッション・イベント・コマンド・ルールを更新します。
マルチテナント環境では、共通およびローカルの両方のセッション・イベント・コマンド・ルールを更新できます。
構文
DBMS_MACADM.UPDATE_SESSION_EVENT_CMD_RULE( rule_set_name IN VARCHAR2, enabled IN VARCHAR2, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表17-13 UPDATE_SESSION_EVENT_CMD_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
コマンド・ルールに関連付けるルール・セットの名前。マルチテナント環境では、このルール・セットが、セッション・イベント・コマンド・ルールが共通である場合は共通、そのコマンド・ルールがローカルである場合はローカルであることを確認してください。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
コマンド・ルールで定義されているイベント。この設定により、コマンド・ルールが |
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを更新し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
次の例では、マルチテナント環境で共通セッション・イベント・コマンド・ルールを更新する方法を示します。このコマンド・ルールはアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているユーザー名またはルール・セットは、共通である必要があります。
BEGIN DBMS_MACADM.UPDATE_SESSION_EVENT_CMD_RULE( rule_set_name => 'Allow Sessions', event_name => '47999', enabled => DBMS_MACUTL.G_NO, scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
17.12 UPDATE_SYSTEM_EVENT_CMD_RULEプロシージャ
UPDATE_SYSTEM_EVENT_CMD_RULE
プロシージャは、ALTER SYSTEM
文に基づいて、システム・イベント・コマンド・ルールを更新します。
マルチテナント環境では、共通およびローカルの両方のセッション・イベント・コマンド・ルールを更新できます。
構文
DBMS_MACADM.UPDATE_SYSTEM_EVENT_CMD_RULE( rule_set_name IN VARCHAR2, enabled IN VARCHAR2, event_name IN VARCHAR2 DEFAULT, component_name IN VARCHAR2 DEFAULT, action_name IN VARCHAR2 DEFAULT, scope IN NUMBER DEFAULT, pl_sql_stack IN BOOLEAN DEFAULT);
パラメータ
表17-14 UPDATE_SYSTEM_EVENT_CMD_RULEのパラメータ
パラメータ | 説明 |
---|---|
|
コマンド・ルールに関連付けるルール・セットの名前。マルチテナント環境では、このルール・セットが、システム・イベント・コマンド・ルールが共通である場合は共通、そのコマンド・ルールがローカルである場合はローカルであることを確認してください。 現行のデータベース・インスタンスで既存のルール・セットを確認するには、「DBA_DV_RULE_SETビュー」で説明されている |
|
次のいずれかのオプションを指定してコマンド・ルールのステータスを設定します。
|
|
コマンド・ルールで定義されているイベント。この設定により、コマンド・ルールが |
|
|
|
|
|
マルチテナント環境の場合は、このプロシージャの実行方法を決定します。デフォルトはローカルです。オプションは次のとおりです。
アプリケーション・ルートで共通コマンド・ルールを更新し、関連付けられたPDBにそれを表示できるようにする場合は、アプリケーションを同期させる必要があります。たとえば: ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC; |
|
シミュレーション・モードが有効な場合に、失敗した操作のPL/SQLスタックを記録するかどうかを指定します。PL/SQLスタックを記録する場合は |
例
次の例では、マルチテナント環境で共通システム・イベント・コマンド・ルールを更新する方法を示します。このコマンド・ルールはアプリケーション・ルート内にあるため、このプロシージャを実行するユーザーはCDBルート内にいる必要があります。このコマンド・ルールに関連付けられているユーザー名またはルール・セットは、共通である必要があります。
BEGIN DBMS_MACADM.UPDATE_SYSTEM_EVENT_CMD_RULE( rule_set_name => 'Disabled', event_name => 'TRACE', component_name => 'DV', enabled => 'n', scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /