7 コマンド・ルールの構成
コマンド・ルールを作成する、またはデフォルト・コマンド・ルールを使用すると、DDL文およびDML文を保護できます。
- コマンド・ルールの概要
コマンド・ルールは、ALTER SESSION
などのOracle Database SQL文により、Oracle Database Vault保護を適用します。 - デフォルト・コマンド・ルール
Oracle Database Vaultには、よく使用されるSQL文に基づいて、デフォルト・コマンド・ルールが用意されています。 - コマンド・ルールで保護できるSQL文
コマンド・ルールを使用すると、多数のSQL文を保護できます。 - コマンド・ルールの作成
Oracle Database Vault Administratorでコマンド・ルールを作成できます。 - コマンド・ルールの有効化ステータスの変更
Oracle Database Vault Administratorでコマンド・ルールを有効化または無効化できます。 - コマンド・ルールの削除
コマンド・ルールを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのコマンド・ルールへの様々な参照を特定できます。 - コマンド・ルールの動作
コマンド・ルールは、一連のステップに従い、関連付けられているコンポーネントをチェックします。 - チュートリアル: コマンド・ルールを使用した、ユーザー別表作成の制御
このチュートリアルでは、ユーザーがSCOTT
スキーマに表を作成できるかどうかを制御する簡単なローカル・コマンド・ルールを作成します。 - コマンド・ルールの設計のガイドライン
Oracleでは、コマンド・ルールを設計するためのガイドラインを提供しています。 - コマンド・ルールがパフォーマンスに与える影響
コマンド・ルールのパフォーマンスは、そのコマンド・ルールに関連付けられているルール・セット内のルールの複雑さに依存します。 - コマンド・ルール関連のレポートおよびデータ・ディクショナリ・ビュー
Oracle Database Vaultには、コマンド・ルールの分析に役立つ、一連のレポートとデータ・ディクショナリ・ビューが用意されています。
7.1 コマンド・ルールの概要
コマンド・ルールは、ALTER SESSION
などのOracle Database SQL文により、Oracle Database Vault保護を適用します。
- コマンド・ルールについて
コマンド・ルールは、1つ以上のデータベース・オブジェクトに影響するOracle Database SQL文を保護します。 - マルチテナント環境でのコマンド・ルール
マルチテナント環境では、CDBルートまたはアプリケーション・ルートのどちらかで、共通およびローカルのコマンド・ルールを作成できます。 - コマンド・ルールのタイプ
多数のSQL文のためのコマンド・ルールの他に、CONNECT
、ALTER SYSTEM
およびALTER SESSION
SQL文専用のコマンド・ルールを作成できます。
親トピック: コマンド・ルールの構成
7.1.1 コマンド・ルールについて
コマンド・ルールは、1つ以上のデータベース・オブジェクトに影響するOracle Database SQL文を保護します。
これらの文は、SELECT
、ALTER SYSTEM
、データベース定義言語(DDL)およびデータ操作言語(DML)文を含められます。
コマンド・ルールをカスタマイズして実行するには、1つ以上のルールの集合であるルール・セットにコマンド・ルールを関連付けます。コマンド・ルールは実行時に実施されます。コマンド・ルールは、オブジェクトが存在するレルムに関係なく、コマンド・ルールによって保護されるSQL文の使用を試みる全員に影響します。
コマンド・ルールを使用して、基本的なOracle Database DDL文およびDML文の他に、幅広いSQL文を保護できます。たとえば、Oracle Flashback Technologyで使用される文を保護できます。
コマンド・ルールには、コマンド・ルールのコマンドへの関連付けに加えて、次の属性があります。
-
コマンド・ルールで保護されるSQL文
-
コマンド・ルールが影響するオブジェクトの所有者
-
コマンド・ルールが影響するデータベース・オブジェクト
-
コマンド・ルールが有効かどうか
-
関連付けられているルール・セット
コマンド・ルールは、次のように分類できます。
-
範囲がシステム全体に及ぶコマンド・ルール。このタイプでは、ほとんどの場合、データベース・インスタンスごとに1つのコマンド・ルールのみを作成できます。
-
スキーマ固有のコマンド・ルール。スキーマ固有のコマンド・ルールの例は、
DROP TABLE
文のコマンド・ルールです。スキーマごとに1つのCONNECTコマンド・ルールのみを作成できます。 -
オブジェクト固有のコマンド・ルール。コマンド・ルール定義に含まれる特定の表を使用して
DROP TABLE
文を作成することは、この一例です。
コマンド・ルールの影響を受ける文をユーザーが実行すると、Oracle Database Vaultによって最初にレルム認可がチェックされます。レルム違反が検出されず、関連付けられているコマンド・ルールが有効な場合は、関連付けられているルール・セットがDatabase Vaultによって評価されます。すべてのルール・セットの評価がTRUE
の場合、その文は認可されてさらに処理されます。評価がFALSE
のルール・セットがある場合、その文の実行は許可されずコマンド・ルール違反が生じます。
通常のステップであるユーザー認証プロセス、
ファクタの初期化およびOracle Label Securityの統合が完了した後に、セッションを許可または拒否するCONNECTイベントにファクタを使用するコマンド・ルールを定義できます。たとえば、BIZAPP
スキーマ内で、CREATE TABLE
、DROP TABLE
およびALTER TABLE
などのDDL文が営業時間後に認可されるのは許可するが、営業時間中には許可しないというコマンド・ルールを構成できます。
Oracle Database Vaultに作成するコマンド・ルール上でレポートを実行できます。
SYS
がSYS
所有プロシージャを実行するのをブロックするコマンド・ルールを作成することはできません。
7.1.2 マルチテナント環境におけるコマンド・ルール
マルチテナント環境では、CDBルートまたはアプリケーション・ルートのどちらかで、共通およびローカルのコマンド・ルールを作成できます。
共通コマンド・ルールは、共通のレルム、ルール・セットおよびルールのみに関連付けることができます。ローカル・コマンド・ルールは、ローカルのレルム、ルール・セットおよびルールのみに関連付けることができます。
これらのコマンド・ルールをマルチテナント環境全体に適用するには、DVADM
またはDVOWNER
ロールを付与された共通ユーザーとして、CDBルートまたはアプリケーション・ルートからコマンド・ルール・プロシージャを実行する必要があります。CDBルートで作成される共通コマンド・ルールは、そのCDB環境内のすべてのPDBに適用されます。アプリケーション・ルートで作成される共通コマンド・ルールは、このアプリケーション・ルートに関連付けられているPDBのみに適用されます。CDBルートまたはアプリケーション・ルートに関連付けられているPDBにコマンド・ルールを伝播するには、PDBを同期させる必要があります。たとえば、saas_sales_app
というアプリケーション・ルートをアプリケーションPDBと同期するには、次のようにします。
ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
CDBルートの共通コマンド・ルールをPDBと同期するには、次のようにします。
ALTER PLUGGABLE DATABASE APPLICATION APP$CDB$SYSTEM SYNC;
USER_ROLE_PRIVS
データ・ディクショナリ・ビューを問い合せることで、ユーザーのロールを確認できます。コマンド・ルールに関する情報を確認するには、DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューを問い合せます。
親トピック: コマンド・ルールの概要
7.1.3 コマンド・ルールのタイプ
多数のSQL文のためのコマンド・ルールの他に、CONNECT
、ALTER SYSTEM
およびALTER SESSION
SQL文専用のコマンド・ルールを作成できます。
- CONNECTコマンド・ルール
DBMS_MACADM.CREATE_CONNECT_CMD_RULE
プロシージャは、ユーザー固有のCONNECTコマンド・ルールを作成します。 - ALTER SESSIONおよびALTER SYSTEMコマンド・ルール
これらのSQL文をきめ細かく制御できる、様々な種類のALTER SESSION
およびALTER SYSTEM
コマンド・ルールを作成できます。
親トピック: コマンド・ルールの概要
7.1.3.1 CONNECTコマンド・ルール
DBMS_MACADM.CREATE_CONNECT_CMD_RULE
プロシージャは、ユーザー固有のCONNECTコマンド・ルールを作成します。
このタイプのコマンド・ルールは、ユーザー、関連付けられたルール・セット、有効化ステータス、およびマルチテナント環境の場合、CONNECTコマンド・ルールの実行対象を指定します。CONNECTコマンド・ルールを有効または無効にすることや、シミュレーション・モードを使用するようそれを設定することができます。シミュレーション・モードでは、コマンド・ルールに対する違反が、ユーザー名や使用されたSQL文などエラーを説明する十分な情報とともに、指定されたログ表に記録されます。
マルチテナント環境では、アプリケーション・ルートまたは特定のPDB内のどちらかで、CONNECTコマンド・ルールを作成できます。関連付けられたルール・セットは、CONNECTコマンド・ルールと一致している必要があります。CONNECTコマンド・ルールがアプリケーション・ルートにある場合、ルール・セットとルールもアプリケーション・ルートにある必要があります。CDBルートから共通ユーザーとしてCONNECTコマンド・ルール・プロシージャを実行します。CONNECTコマンド・ルールがプラガブル・データベース(PDB)に対してローカルである場合は、そのPDB内でCONNECTコマンド・ルール作成コマンドを実行する必要があり、ルール・セットとルールがローカルである必要があります。
次の例では、HR
ユーザーのためにローカルの有効化されたCONNECTコマンド・ルールを作成する、CONNECTコマンド・ルール定義を示します。このコマンド・ルールに関連付けられているルール・セットは、現在のPDBに対してローカルです。
BEGIN DBMS_MACADM.CREATE_CONNECT_COMMAND_RULE( rule_set_name => 'Enabled', user_name => 'HR', enabled => DBMS_MACUTL.G_YES, scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
7.1.3.2 ALTER SESSIONおよびALTER SYSTEMコマンド・ルール
これらのSQL文をきめ細かく制御できる、様々な種類のALTER SESSION
およびALTER SYSTEM
コマンド・ルールを作成できます。
これらのタイプのコマンド・ルールを作成するプロシージャを次に示します。
-
DBMS_MACADM.CREATE_COMMAND_RULE
は、ALTER SESSION
の場合はADVISE
、CLOSE DATABASE LINK
、COMMIT IN PROCEDURE
およびSET
、またはALTER SYSTEM
の場合はARCHIVE_LOG
、CHECK DATAFILES
、CHECKPOINT
およびSET
など、対応するSQL文からの句を使用する、ALTER SESSIONおよびALTER SYSTEMコマンド・ルールを作成します。 -
DBMS_MACADM.CREATE_SESSION_EVENT
は、ALTER SESSION SET EVENTS
SQL文固有のコマンド・ルールを作成します -
DBMS_MACADM_CREATE_SYSTEM_EVENT
は、ALTER SYSTEM SET EVENTS
SQL文固有のコマンド・ルールを作成します。
これらのコマンド・ルールを作成するには、適切なDatabase Vaultプロシージャを使用して、作成文で句、および該当する場合は句のパラメータを指定します。ALTER SESSIONまたはALTER SYSTEMコマンド・ルールでSET EVENTS
設定が使用されている場合は、特別なパラメータを使用して、イベント、コンポーネントおよびアクションを指定できます。
たとえば、ALTER SYSTEMコマンド・ルールの場合は、ALTER SYSTEM
SQL文からSECURITY
句およびそのRESTRICTED SESSION
パラメータを指定できます。RESTRICTED SESSION
がTRUE
かFALSE
かを指定するには、この順序番号の妥当性をテストできる、Database Vaultルールおよびルール・セットを作成する必要があります。
この概念がどのように機能するかを理解するには、まず、RESTRICTED SESSION
パラメータがTRUE
に設定されているかどうかをチェックするよう設計されている、次のルールおよびルール・セットを作成します。
EXEC DBMS_MACADM.CREATE_RULE('RESTRICTED SESSION TRUE', 'UPPER(PARAMETER_VALUE) = ''TRUE'''); BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Check RESTRICTED SESSION for TRUE', description => 'Checks if restricted session is true', 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 => 'RESTRICTED SESSION is not TRUE', fail_code => 20461, handler_options => DBMS_MACUTL.G_RULESET_HANDLER_FAIL, handler => '', is_static => false); END; / EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET(Check RESTRICTED SESSION for TRUE', 'RESTRICTED SESSION TRUE');
ルールおよびルール・セットを準備したら、RESTRICTED SESSION
パラメータをチェックする、ALTER SYSTEMコマンド・ルールを作成する準備は完了です。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'ALTER SYSTEM', rule_set_name => 'Check RESTRICTED SESSION for TRUE', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES, clause_name => 'SECURITY', parameter_name => 'RESTRICTED SESSION', scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
この例の説明は、次のとおりです。
-
rule_set_name
では、RESTRICTED SESSION
がTRUE
に設定されているかFALSE
に設定されているかをチェックします。マルチテナント環境では、ルール・セットとルールを、アプリケーション・ルート、またはPDBのローカルで、同じ場所でコマンド・ルールとして作成する必要があります。 -
object_owner
およびobject_name
は、この種のALTER SESSION
またはALTER SYSTEM
コマンド・ルールに対して、必ず%
に設定される必要があります。 -
enabled
では、コマンド・ルールを有効または無効にすることや、シミュレーション・モードを使用してコマンド・ルールに対する違反を指定のログ表に記録することができます。ログ・データには、ユーザー名や使用されたSQL文など、エラーの説明が示されます。 -
clause_name
では、ALTER SYSTEM
SQL文のSECURITY
句を指定します。 -
parameter_name
では、SECURITY
句からのRESTRICTED SESSION
パラメータを指定します。 -
scope
では、コマンド・ルールが現在のPDBに対してローカルになるよう設定します。関連付けられたルール・セットおよびルールも、現在のPDBに対してローカルになるようにする必要があります。アプリケーション・ルートでコマンド・ルールを作成する必要がある場合は、共通ユーザーとして、scope
をDBMS_MACUTL.G_SCOPE_COMMON
に設定し、アプリケーション・ルートからプロシージャ(および、その付随するルール・セットおよびルール作成プロシージャ)を実行します。
関連項目:
-
DBMS_MACADM.CREATE_COMMAND_RULE
プロシージャについては、CREATE_COMMAND_RULEプロシージャを参照してください -
DVS.DBMS_MACADM.CREATE_SESSION_EVENT_CMD_RULE
プロシージャについては、CREATE_SESSION_EVENT_CMD_RULEプロシージャを参照してください -
DBMS_MACADM.CREATE_SYSTEM_EVENT_CMD_RULE
プロシージャの詳細は、CREATE_SYSTEM_EVENT_CMD_RULEプロシージャを参照してください -
DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューの詳細は、DBA_DV_COMMAND_RULEビューを参照してください -
ALTER SESSION
SQL文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください -
ALTER SYSTEM
SQL文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください
親トピック: コマンド・ルールのタイプ
7.2 デフォルトのコマンド・ルール
Oracle Database Vaultには、よく使用されるSQL文に基づいて、デフォルト・コマンド・ルールが用意されています。
表7-1に、デフォルトのDatabase Vaultコマンド・ルールを示します。
表7-1 デフォルトのコマンド・ルール
SQL文 | ルール・セット名 |
---|---|
|
アカウント/プロファイルを保守可能 |
|
自分のアカウントを保守可能 |
|
アカウント/プロファイルを保守可能 |
|
アカウント/プロファイルを保守可能 |
|
アカウント/プロファイルを保守可能 |
|
アカウント/プロファイルを保守可能 |
|
システム・パラメータのファイングレイン・コントロールを許可 |
|
自分のアカウントを保守可能脚注1 |
脚注1
「自分のアカウントを保守可能」ルールで参照される実際のSQL文は、PASSWORD
です。
次に示す一連のコマンド・ルールは、ユーザー管理の職務分離の実現をサポートします。
-
ALTER PROFILE
-
ALTER USER
-
CREATE PROFILE
-
CREATE USER
-
DROP PROFILE
-
DROP USER
ユーザーにこれらのコマンドの使用権限を付与するには、ルール・セットによってチェックされるロールをユーザーに付与します。たとえば、CREATE USER
コマンド・ルールは、CREATE USER
文を実行しようとするユーザーにDV_ACCTMGR
ロールが付与されていることを確認します。
ノート:
デフォルト・コマンド・ルールに関する情報を確認するには、DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューを問い合せます。
親トピック: コマンド・ルールの構成
7.3 コマンド・ルールで保護できるSQL文
コマンド・ルールを使用して、多数のSQL文を保護できます。
保護できるSQL文は、次のとおりです。
SQL文A-A | SQL文A-C | SQL文C-U |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
関連項目:
マルチテナント・コンテナ・データベース(CDB)におけるCREATE PLUGGABLE DATABASE
、ALTER PLUGGABLE DATABASE
およびDROP PLUGGABLE DATABASE
の使用の詳細は、「マルチテナント環境におけるコマンド・ルール」を参照してください
親トピック: コマンド・ルールの構成
7.5 コマンド・ルールの有効化ステータスの変更
Oracle Database Vault Administratorでコマンド・ルールを有効または無効にできます。
DV_OWNER
またはDV_ADMIN
ロールおよびSELECT ANY DICTIONARY
権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。ログイン方法については、「Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン」を参照してください。- 「管理」ページの「Database Vaultコンポーネント」で、「コマンド・ルール」をクリックします。
- 「コマンド・ルール」ページで、有効または無効にするコマンド・ルールを選択し、「編集」を選択します。
- 「コマンド・ルールの編集」ページで、「ステータス」メニューから、目的のステータスを選択します。
- 有効
- 無効
- シミュレーション
- 「OK」をクリックします。
親トピック: コマンド・ルールの構成
7.6 コマンド・ルールの削除
コマンド・ルールを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのコマンド・ルールへの様々な参照を特定できます。
DV_OWNER
またはDV_ADMIN
ロールおよびSELECT ANY DICTIONARY
権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。ログイン方法については、「Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン」を参照してください。- Oracle Database Vaultの「管理」ページで、「コマンド・ルール」を選択します。
- 「コマンド・ルール」ページで、削除するコマンド・ルールを選択します。
- 「削除」をクリックします。
- 「確認」ウィンドウで、「はい」をクリックします。
親トピック: コマンド・ルールの構成
7.7 コマンド・ルールの動作
コマンド・ルールは、一連のステップに従い、関連付けられているコンポーネントをチェックします。
「レルムの動作」では、データベース・アカウントによりレルム内のオブジェクトに影響するSELECT
、DDLまたはDML文が発行された場合の動作を説明しています。
SELECT
、DDLまたはDML文が発行されると、次のアクションが実行されます。
-
Oracle Database Vaultが、適用する必要のあるすべてのコマンド・ルールを問い合せます。
SELECT
、DDLおよびDML文では、オブジェクト所有者およびオブジェクト名でワイルドカード表記を使用できるため、複数のコマンド・ルールが適用される場合があります。ルール・セットは、コマンド・ルールおよびレルム認可の両方に関連付けることができます。Oracle Database Vaultにより、まずレルム認可ルール・セットが評価され、評価されるコマンド・タイプに適用するルール・セットが次に評価されます。
-
適用する各コマンド・ルールに関して、Oracle Database Vaultはそれに関連付けられているルール・セットを評価します。
-
適用可能なコマンド・ルールに関連付けられているルール・セットが1つでもFalseまたはエラーで返されると、Oracle Database Vaultによりそのコマンドの実行が阻止されます。それ以外の場合、コマンドは認可されてさらに処理されます。監査およびイベント・ハンドラに関するルール・セットの構成により、発生する監査またはカスタム処理が決定されます。
コマンド・ルールはオブジェクト権限より優先されます。つまり、オブジェクトの所有者であっても、オブジェクトがコマンド・ルールで保護される場合、そのオブジェクトにアクセスできません。コマンド・ルールまたはコマンドのルール・セットのいずれかを無効にすることができます。コマンド・ルールを無効にする場合、コマンド・ルールは、その処理の確認を行いません。ルール・セットを無効にする場合、ルール・セットの評価は常に
TRUE
になります。ただし、特定のコマンドに対してコマンド・ルールを無効にする場合、ルール・セットが他のコマンド・ルールやレルム認可に関連付けられている可能性があるため、コマンド・ルールを無効にする必要があります。
親トピック: コマンド・ルールの構成
7.8 チュートリアル: ユーザーによる表作成を制御するためのコマンド・ルールの使用方法
このチュートリアルでは、ユーザーがSCOTT
スキーマに表を作成できるかどうかを制御する簡単なローカル・コマンド・ルールを作成します。
- ステップ1: 表の作成
まず、ユーザーSCOTT
が表を作成する必要があります。 - ステップ2: コマンド・ルールの作成
SCOTT
スキーマで表の作成後、コマンド・ルールを作成できます。 - ステップ3: コマンド・ルールのテスト
次に、CREATE TABLEローカル・コマンド・ルールをテストできます。 - ステップ4: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
親トピック: コマンド・ルールの構成
7.8.1 ステップ1: 表の作成
最初に、ユーザーSCOTT
として表を作成する必要があります。
この段階で、ユーザーSCOTT
は、表の作成および削除を行うことができます。SQL*Plusを終了せずに、SCOTT
として接続したままにします。後でSCOTT
が別の表を作成しようとするときに使用します。
7.8.2 ステップ2: コマンド・ルールの作成
SCOTT
スキーマで表の作成後、コマンド・ルールを作成できます。
コマンド・ルールは即時有効になります。ユーザーSCOTT
は、CREATE TABLEコマンド・ルールを作成する前の、先ほどまでいたユーザー・セッションにまだいるとしても、ただちに表を作成できなくなります。
7.8.3 ステップ3: コマンド・ルールのテスト
これで、いつでもCREATE TABLEローカル・コマンド・ルールをテストできます。
-
SQL*Plusで、ユーザー
SCOTT
としてログインしていることを確認します。CONNECT SCOTT --Or, CONNECT SCOTT@hrpdb Enter password: password
-
表を作成してみます。
CREATE TABLE t1 (num NUMBER);
次の出力が表示されます。
ORA-47400: Command Rule violation for create table on SCOTT.T1
この例からわかるように、
SCOTT
は、自身のスキーマ内でも、表を作成できなくなります。 -
Oracle Database Vault Administratorで、次の作業を実行します。
-
「コマンド・ルール」ページで、「CREATE TABLE」コマンド・ルールを選択して、「編集」をクリックします。
-
「コマンド・ルールの編集」ページで、「ルール・セット」リストから「有効」を選択します。
-
「OK」をクリックします。
-
-
SQL*Plusで、ユーザー
SCOTT
として、表の作成を再試行します。CREATE TABLE t1 (num NUMBER); Table created.
CREATE TABLE
コマンド・ルールが「有効」に設定されたので、ユーザーSCOTT
は、再び表の作成が許可されるようになりました。(SQL*Plusを終了しないでください。)
7.8.4 ステップ4: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
-
Oracle Database Vault Administratorで、CREATE TABLEコマンド・ルールを次のように削除します。
-
「コマンド・ルール」ページに戻ります。
-
「CREATE TABLE」ローカル・コマンド・ルールを選択して、「削除」をクリックします。
-
「確認」ウィンドウで、「はい」をクリックします。
-
-
ユーザー
SCOTT
としてデータベース・インスタンスにログインして、t1
表を削除します。DROP TABLE t1;
-
SCOTT
アカウントが使用可能である必要がなくなった場合、Database Vaultアカウント・マネージャとして接続し、次のALTER USER
文を入力します。CONNECT bea_dvacctmgr --Or, CONNECT bea_dvacctmgr@hrpdb Enter password: password ALTER USER SCOTT ACCOUNT LOCK PASSWORD EXPIRE;
7.9 コマンド・ルール設計のガイドライン
Oracleでは、コマンド・ルール設計のガイドラインを提供しています。
-
維持が簡単であるため、ファイングレイン・コマンド・ルールを作成します。
たとえば、特定のスキーマ・オブジェクトで
SELECT
文が発生しないようにする場合は、スキーマ・レベルでSELECT
文を阻止する一般的なコマンド・ルールを作成するのではなく、特定のスキーマ・オブジェクトでSELECT
文を阻止する複数のコマンド・ルールを設計します。 -
CONNECT
イベントにルールを作成する場合、必要なユーザー接続を間違えてロックアウトしないロジックを慎重に指定してください。アカウントが誤ってロックアウトされた場合、DV_ADMIN
またはDV_OWNER
ロールを付与されたユーザーに、ロックアウト問題の原因となっているルールにログインして修正してもらうようにしてください。CONNECT
コマンドは、DV_OWNER
ロールとDV_ADMIN
ロールを持つユーザーには適用されません。これにより、不適切に構成されたCONNECT
コマンド・ルールで完全なロックアウトが生じることはありません。アカウントがロックアウトされている場合は、Oracle Database Vaultを無効にして、ロックアウトの問題の原因となっているルールを修正し、再びOracle Database Vaultを有効にします。Oracle Database Vaultが無効な場合でも、Database Vault AdministratorとDatabase Vault PL/SQLパッケージはまだ使用できます。
-
管理タスクに対して有効なコマンド・ルールを一時的に緩和する必要がある場合は、コマンド・ルールをシミュレーション・モードに切り替えることを検討してください。これにより、ルール・セット基準を満たすアクティビティは取得されず、違反したアクティビティのみが取得されることに注意してください。
-
コマンド・ルールの設計時には、処理が不用意に無効にされる可能性があるため、バックアップなどの自動プロセスを考慮するようにしてください。使用中のプログラム、使用中のアカウントまたはクライアント・プログラムが稼働中のコンピュータやネットワークなど、一連のOracle Database VaultファクタがTrueであることが明白な場合には、コマンドを許可するルールを作成することでこれらのタスクを把握できます。
-
シミュレーション・モードを使用することで、コマンド・ルールの開発フェーズをテストできます。このモードでは、コマンド・ルールは有効になりますが、それに関する詳細情報がログ・ファイルに書き込まれます。
親トピック: コマンド・ルールの構成
7.10 コマンド・ルールのパフォーマンスへの影響
コマンド・ルールのパフォーマンスは、そのコマンド・ルールに関連付けられているルール・セット内のルールの複雑さに依存します。
たとえば、実行に5秒かかるPL/SQLファンクションを起動するルール・セットがあるとします。この場合、このルール・セットを使用するコマンド・ルールでは、実行するコマンド文へのアクセス権の付与に5秒かかります。
システム・パフォーマンスを確認するには、Oracle Enterprise Manager(Oracle Databaseと一緒にデフォルトでインストールされるOracle Enterprise Manager Cloud Controlを含む)、自動ワークロード・リポジトリ(AWR)およびTKPROF
などのツールを実行します。
関連項目:
-
データベース・パフォーマンスの監視方法を学習するには、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください
-
個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください
親トピック: コマンド・ルールの構成
7.11 コマンド・ルールに関連するレポートおよびデータ・ディクショナリ・ビュー
Oracle Database Vaultには、コマンド・ルールの分析に役立つ、レポートとデータ・ディクショナリ・ビューが用意されています。
表7-2に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。
表7-2 コマンド・ルールに関連するレポート
レポート | 説明 |
---|---|
コマンド・ルールを処理する操作により生成された監査レコードが表示されます。 |
|
コマンド・ルールに存在するその他の構成問題に加え、ルール違反が追跡されます。 |
|
コマンド・ルールが影響するオブジェクト権限が表示されます。 |
|
コマンド・ルールが影響するオブジェクトが表示されます。 |
|
ルールが定義されていないか、有効ではなく、それらを使用するコマンド・ルールに影響を与える可能性があるルール・セットが表示されます。 |
DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューを使用すると、コマンド・ルールにより保護されているSQL文を検出できます。詳細は、「DBA_DV_COMMAND_RULEビュー」を参照してください。
親トピック: コマンド・ルールの構成