この章の内容は次のとおりです。
ルール・セットは、レルム認可、ファクタ割当て、コマンド・ルールまたはセキュア・アプリケーション・ロールに関連付けられる1つ以上のルールの集合です。ルール・セットは、それに含まれる各ルールと評価タイプ(「すべてのTrue」または「いずれかTrue」)に基づいて、trueまたはfalseに評価されます。ルール・セット内のルールは、TrueまたはFalseと評価されるPL/SQL式です。ルールを作成し、そのルールを複数のルール・セットに追加できます。
ルール・セットを使用して次のアクティビティを実行できます。
レルム認可がアクティブになる条件の定義(レルム認可をさらに制限することが目的)
コマンド・ルールを許可する時期の定義
セキュア・アプリケーション・ロールの有効化
ファクタのアイデンティティを割り当てる時期の定義
ルール・セットを作成すると、レルムの認証、コマンド・ルール、ファクタまたはセキュア・アプリケーション・ロールの構成時に選択できるようになります。
Oracle Database Vaultに作成するルール・セット上でレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。
この章では、Oracle Database Vault Administratorを使用してルール・セットを構成する方法を説明します。Oracle Database Vaultが提供するPL/SQLインタフェースおよびパッケージを使用してルール・セットを構成するには、次の章を参照してください。
Oracle Database Vaultにはデフォルトで一連のルール・セットが用意されており、ニーズにあわせてカスタマイズできます。デフォルトのルール・セットは次のとおりです。
セッションを許可: データベースにセッションを作成する権限を制御します。このルール・セットを使用すると、CONNECTコマンド・ルールを使用してデータベース・ログインを制御するためのルールを追加できます。CONNECTコマンド・ルールは、その使用が必要なプログラムへのSYSDBA
アクセスの制御または制限に有用です。このルール・セットは移入されていません。
システム・パラメータを許可: システム初期化パラメータを設定する権限を制御します。Oracle Database 11gリリース2 (11.2)では、このルール・セットは「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットに置き換えられますが、下位互換性を確保するために引き続きサポートされます。「システム・パラメータを許可」ルール・セットはどのコマンドにも関連付けられていませんが、そのルールは引き続き使用可能で、任意のカスタム・ルール・セットで使用できます。「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットを使用することをお薦めします。
システム・パラメータのファイングレイン・コントロールを許可: システム・セキュリティ、ダンプまたは宛先の場所、バックアップとリストアの設定、オプティマイザの設定、PL/SQLデバッグおよびセキュリティ・パラメータを管理する初期化パラメータに対する非常に柔軟でファイングレインな制御を行えます。これは、このルール・セットに関連付けられたルールに基づいて、次の初期化パラメータに影響します。
「システム・セキュリティ・パラメータが許可されているか」のルール: O7_DICTIONARY_ACCESSIBILITY
を設定できません
「ダンプまたは宛先パラメータが許可されているか」のルール: 次のパラメータを設定できません。
BACKGROUND_DUMP_DEST |
LOG_ARCHIVE_DEST_STATE_ n |
|
CORE_DUMP_DEST |
LOG_ARCHIVE_DUPLEX_DEST |
|
DB_CREATE_ONLINE_LOG_DEST |
LOG_ARCHIVE_FORMAT |
|
DB_RECOVERY_FILE_DEST |
LOG_ARCHIVE_LOCAL_FIRST |
|
DB_RECOVERY_FILE_DEST_SIZE |
LOG_ARCHIVE_MAX_PROCESSES |
|
DIAGNOSTIC_DEST |
LOG_ARCHIVE_MIN_SUCCEED_DEST |
|
DUMP_DATAFILE |
LOG_ARCHIVE_TRACE |
|
LOG_ARCHIVE_CONFIG |
MAX_DUMP_FILE_SIZE |
|
LOG_ARCHIVE_DEST |
STANDBY_ARCHIVE_DEST |
|
LOG_ARCHIVE_DEST_ n |
USER_DUMP_DEST |
「バックアップ・リストア・パラメータが許可されているか」のルール: RECYCLEBIN
を設定できません(ただしリサイクルビンの無効化は妨げられません)。
「データベース・ファイル・パラメータが許可されているか」のルール: CONTROL_FILE_RECORD_KEEP_TIME
、CONTROL_FILES
を設定できます。
「オプティマイザ・パラメータが許可されているか」のルール: OPTIMIZER_SECURE_VIEW_MERGING
を設定できません。
「PL-SQLパラメータが許可されているか」のルール: UTL_FILE_DIR
、PLSQL_DEBUG
を設定できません。
「セキュリティ・パラメータが許可されているか」のルール: 次のパラメータを設定できません。
AUDIT_SYS_OPERATIONS = FALSE |
OS_ROLES |
|
AUDIT_TRAIL = NONE or FALSE |
REMOTE_OS_ROLES |
|
AUDIT_SYSLOG_LEVEL |
SQL92_SECURITY |
初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。
VPD管理権限を付与可能: GRANT
およびREVOKE
文を使用して、Oracle Virtual Private DatabaseのDBMS_RLS
パッケージのGRANT EXECUTE
またはREVOKE EXECUTE
権限を付与する権限を制御します。
Oracle Data Pump操作を許可: DBMS_MACADM.AUTHORIZE_DATAPUMP_USER
プロシージャで作成された各ユーザー認可を記述するルールで構成されます。ルールには、ユーザー・ログイン・アカウントおよびユーザーが許可されているアクセス・レベル(データベース全体、データベース内の1つのスキーマまたはこのスキーマ内の1つの表)などがあります。ユーザーがOracle Data Pumpのエクスポートまたはインポート操作を実行しようとすると、Oracle Database Vaultはこのルール・セットで定義されている認可をチェックします。ユーザーの認可がここで定義されていない場合、ユーザーはエクスポートまたはインポート操作の実行を許可されません。
詳細は、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。
スケジューラ・ジョブの許可: DBMS_MACADM.AUTHORIZE_SCHEDULER_USER
プロシージャで作成された各ユーザー認可を記述するルールで構成されます。ここでユーザーの認可が定義されていなくても、ユーザーはジョブを作成できます。ただし、別のスキーマでジョブを実行した場合、ジョブがOracle Database Vaultで保護されているオブジェクトにアクセスしたときに、ジョブは失敗します。ルールには、ユーザー・ログイン・アカウントおよびユーザーが許可されているアクセス・レベル(データベース全体、データベース内の1つのスキーマ)などがあります。ユーザーがデータベース・ジョブをスケジュールしようとすると、Oracle Database Vaultはこのルール・セットで定義されている認可をチェックします。ユーザーの認可がここで定義されていない場合、ユーザーはジョブの作成を許可されません。
詳細は、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。
アカウント/プロファイルを保守可能: CREATE USER
、DROP USER
、CREATE PROFILE
、ALTER PROFILE
またはDROP PROFILE
文を使用して、ユーザー・アカウントおよびプロファイルを管理するロールを制御します。
自分のアカウントを保守可能: DV_ACCTMGR
ロールのあるアカウントを許可し、ALTER USER
文を使用したユーザー・アカウントおよびプロファイルの管理を可能にします。また、ALTER USER
文を使用した、個々のアカウントによる個人のパスワードの変更を許可します。DV_ACCTMGRロールの詳細は、「DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール」
を参照してください。
無効: レルム、コマンド・ルール、ファクタおよびセキュア・アプリケーション・ロールを迅速に無効にするための簡易ルール・セットです。
通常、ルール・セットを作成するには、まずルール・セットを作成し、次にそのルール・セットを編集して1つ以上のルールに関連付けます。作成したルール・セットに新しいルールを関連付ける、既存のルールを追加する、もしくはそのルール・セットからルールの関連付けを削除することが可能です。
次の項目も参照してください。
ルール・セットの設計に関する注意事項は、「ルール・セット設計のガイドライン」を参照してください。
ルール式で使用できる一連のファンクションの詳細は、「Oracle Database VaultのPL/SQLルール・ファンクション」を参照してください。
データベースのルール・セットの構成を確認する場合は、「「ルール・セット構成の問題」レポート」を参照してください。
ルール・セットを作成するには、次のようにします。
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。
「管理」ページの「Database Vault機能管理」で、「ルール・セット」をクリックします。
「ルール・セット」ページで「作成」をクリックします。
「ルール・セットの作成」ページで、次の設定を入力して「OK」をクリックします。
一般
次の設定を入力します。
名前: ルール・セットの名前を入力します。大/小文字の両方を使用して90文字以内で指定できます。空白を使用できます。この属性は必須です。
名前は動詞で始まり、ルール・セットが関連付けられるレルムまたはコマンド・ルールの名前で終わることをお薦めします。次に例を示します。
Limit SQL*Plus access
説明: ルール・セットの機能の説明を入力します。大/小文字の両方を使用して1024文字以内で指定できます。この属性はオプションです。
ルール・セットのビジネス要件を説明できます。次に例を示します。
Rule to limit access to SQL*Plus
ステータス: 「有効」または「無効」のいずれかを選択し、実行時にルール・セットを有効または無効にします。ルール・セットはデフォルトでは有効です。この属性は必須です。
評価オプション: ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを選択します。
すべてTrue: デフォルト。ルール・セット自体がTrueと評価されるためには、ルール・セットのルールがすべてTrueと評価される必要があります。
いずれかTrue: ルール・セット自体がTrueと評価されるために、少なくともルール・セットの1つのルールがTrueと評価される必要があります。
コマンド・ルールによってアクセスされる際にルール・セットが評価される頻度を決定する場合、DBMS_MACADM.CREATE_RULE_SET
プロシージャのis_static
パラメータを使用できます。詳細は、「CREATE_RULE_SETプロシージャ」を参照してください。
監査オプション
ルール・セットに対する監査レコードを生成するための次のオプションから選択します。Oracle Database VaultはDVSYS.AUDIT_TRAIL$
システム・ファイルに監査証跡を書き込みます。これについては、付録A「Oracle Database Vaultの監査」に説明されています。
この属性は必須です。設定は次のとおりです。
監査無効: どのような場合にも監査レコードは作成されません。
失敗時に監査: デフォルト。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、監査レコードが作成されます。
成功時または失敗時に監査: ルール・セットが評価されるたびに監査レコードが作成されます。
その他の監査オプションについては、「CREATE_RULE_SETプロシージャ」を参照してください。
Oracle Database Vaultの監査証跡はDVSYS.AUDIT_TRAIL$
システム表に書き込まれ、フィールドRULE_SET_NAME
およびRULE_SET_ID
が含まれます。これらのフィールドには、ルール・セットがレルム認可やコマンド認可と関連付けられている場合や、ルール・セットが特定の状況下で監査するよう構成されている場合に移入されます。詳細は、付録A「Oracle Database Vaultの監査」を参照してください。
エラー処理オプション
ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合は、次の設定を入力してデータベース・セッションへのメッセージを制御します。
失敗オプション: 「エラー・メッセージを表示」(デフォルト)または「エラー・メッセージを表示しない」のいずれかを選択します。
「エラー・メッセージを表示しない」を選択して監査を有効にする利点は、潜在的な侵入者のアクティビティを追跡できるということです。監査レポートにより侵入者のアクティビティを把握できますが、エラー・メッセージが表示されないため、侵入者は監査が行われていることに気付きません。
失敗コード: -20000から-20999または20000から20999の範囲の数値を入力します。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、失敗メッセージ(次で作成)付きのエラー・コードが表示されます。この設定を省略すると、Oracle Database Vaultにより次のエラー・コードが表示されます。
ORA-01031: Insufficient privileges
失敗メッセージ: 大/小文字混在で80文字以内のメッセージを入力し、「失敗コード」で指定した失敗コードに関連付けます。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、エラー・メッセージが表示されます。エラー・メッセージを指定しない場合、Oracle Database Vaultにより通常のエラー・メッセージが表示されます。
カスタム・イベント・ハンドラ・オプション: 次のオプションのいずれかを選択し、カスタム・イベント・ハンドラ・ロジック(次で作成)を実行する時期を決定します。
ハンドラ無効: デフォルト。カスタム・イベント・メソッドを実行しません。
失敗時に実行: ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、カスタム・イベント・メソッドが実行されます。
成功時に実行: ルール・セットがTrueと評価されるとカスタム・イベント・メソッドが実行されます。
カスタム・イベント・メソッドを作成して、標準のOracle Database Vaultルール・セットの監査機能以外の特別な処理を実行できます。たとえば、イベント・ハンドラを使用して、ワークフロー・プロセスの開始や外部システムへのイベント情報の送信を実行できます。
カスタム・イベント・ハンドラ・ロジック: 大/小文字混在で255文字以内のPL/SQL式を入力します。式には、任意のパッケージ・プロシージャまたはスタンドアロン・プロシージャを含めることができます。独自の式を作成するか、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」で説明されているPL/SQLインタフェースを使用できます。
完全修飾プロシージャとして式を記述します(schema
.procedure_name
など)。完全なSQL文は含めないでください。アプリケーション・パッケージ・プロシージャまたはスタンドアロン・プロシージャを使用している場合は、オブジェクトに対するEXECUTE
権限を持つDVSYS
を指定する必要があります。プロシージャ・シグネチャは、次の2つの書式のいずれかになります。
PROCEDURE
my_ruleset_handler(
p_ruleset_name
IN VARCHAR2,
p_ruleset_rules
IN BOOLEAN)
: ハンドラ処理にルール・セットの名前およびその戻り値が必要な場合に、この書式を使用します。
PROCEDURE
my_ruleset_handler
: ハンドラ処理にルール・セットの名前と戻り値が不要な場合に、この書式を使用します。
これらの2つの書式のいずれかを使用するユーザー・インタフェースで式を定義する場合は、式を次の書式にします。
myschema.my_ruleset_handler
ルール・セットを作成すると、ルール・セットに追加するルールを作成できます。これを実行するには、新しいルール・セットを編集しルールを定義します。
Oracle Database Vaultの「管理」ページで、「ルール・セット」を選択します。
「ルール・セット」ページで、編集するルール・セットを選択します。
「編集」をクリックします。
必要に応じてルール・セットを変更し、「OK」をクリックします。
関連項目:
|
新しいルール・セットを作成したら、そのルール・セットを1つ以上のルールに関連付けられます。新しいルールを作成すると、自動的に現行のルール・セットに追加されます。既存のルールをルール・セットに追加することもできます。また、ルール・セットにルールを追加せずに、今後作成するルール・セットのテンプレートとして使用することもできます。
ルール・セットの評価は、評価オプション(「すべてTrue」または「いずれかTrue」)を使用するルールの評価に依存します。ルール・セットが無効である場合、Oracle Database Vaultは、ルールを評価せずにルール・セットをTrueに評価します。
ルールの評価、ルールのネスト、および特定のユーザー(特権ユーザーなど)を除外するルールの作成方法は、「ルール・セットの動作」を参照してください。
ルール・セットにルールを作成および追加するには、次のようにします。
Oracle Database Vaultの「管理」ページで、「ルール・セット」を選択します。
「ルール・セット」ページで、ルールを作成および追加するルール・セットを選択し、「編集」を選択します。
「ルール・セットの編集」ページで、「ルール・セットに関連付けられたルール」にスクロールし、「作成」を選択します。
「ルールの作成」ページで、次の設定を入力します。
名前: ルールの名前を入力します。大/小文字混在で最大で90文字まで入力できます。
名前は動詞で始まり、ルールの目的で終わることをお薦めします。次に例を示します。
Prevent non-admin access to SQL*Plus
ルールには「説明」フィールドがないため、明示的な名前を指定してください。ただし、90文字は超えないようにしてください。
ルール式: 次の要件に一致するPL/SQL式を入力します。
SQLのWHERE
句で有効です。
次に示すような、独立していて有効なPL/SQLブール式です。
TO_CHAR(SYSDATE,'HH24') = '12'
ブール(TRUE
またはFALSE
)値と評価される必要があります。
255文字以内である必要があります。
現行のデータベース・インスタンスから既存のコンパイルされたPL/SQLファンクションを含めることができます。完全修飾ファンクションであることを確認してください(schema
. function_name
)。完全なSQL文は含めないでください。
アプリケーション・パッケージ・ファンクションまたはスタンドアロン・ファンクションを使用する場合は、ファンクションのEXECUTE
権限のあるDVSYS
アカウントを付与する必要があります。これを行うことで、新しいルールを追加するときに発生するエラーが少なくなります。
ルールが機能することを確認してください。SQL*Plusで次の文を実行すると、構文をテストできます。
SELECT rule_expression FROM DUAL;
たとえば、次のルール式を作成したとします。
SYS_CONTEXT('USERENV','SESSION_USER') != 'TSMITH'
この式は、次のようにテストできます。
SELECT SYS_CONTEXT('USERENV','SESSION_USER') FROM DUAL;
ルール・セット式で使用可能なファンクションについては、次の項を参照してください。
その他の式の例は、Oracle Database Vaultが提供するルール・セットに定義されているルールを参照してください。これらのルール・セットは、「デフォルトのルール・セット」に記載されています。
「OK」をクリックします。
「ルール・セットの編集」ページが表示されます。デフォルトで、新しいルールはルール・セットに追加されます。
ルールの編集
ルールへの変更は、そのルールを含むすべてのルール・セットに適用されます。
ルールを編集するには、次のようにします。
「ルール・セットの編集」ページで、「ルール・セットに関連付けられたルール」にスクロールします。
編集するルールを選択して、「編集」をクリックします。
「ルールの編集」ページで、必要に応じてルールを変更します。
「OK」をクリックします。
ルール・セットからのルールの削除
ルール・セットからルールを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのルールへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。
「ルール・セットの編集」ページで、「ルール・セットに関連付けられたルール」にスクロールします。
削除するルールを選択して、「削除」をクリックします。
「確認」ページで「はい」をクリックします。
ルール・セットからルールを削除しても、そのルールはまだ存在します。必要に応じて、そのルールをその他のルール・セットに関連付けることができます。ルールを削除する場合は、「DBMS_MACADMのルール・セット・プロシージャ」で説明されているDBMS_MACADM.DELETE_RULE
ファンクションを使用します。たとえば、ルールNight Shiftを削除するには、Database Vault所有者としてSQL*Plusにログインして、次の文を入力します。
EXEC DBMS_MACADM.DELETE_RULE('Night Shift');
ルール・セットを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのルール・セットへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。
コマンド・ルールなど、その他のDatabase Vaultオブジェクトがルール・セットを参照している場合は、参照を削除します。
ルール・セットを削除できるのは、そのルール・セットを参照しているその他のDatabase Vaultオブジェクトがない場合のみです。
Oracle Database Vaultの「管理」ページで、「ルール・セット」を選択します。
「ルール・セット」ページで、削除するルール・セットを選択します。
「削除」をクリックします。
「確認」ページで「はい」をクリックします。
ルール・セットが削除されます。ただし、ルール・セットに関連付けられているルールは削除されません。
この項では、ルール・セットがどのように機能するかを次の内容で説明します。
ルール・セット内のルールは、式の集合として評価されます。「評価オプション」が「すべてTrue」に設定されている場合にルールの評価に失敗すると、ルール・セット内の残りのルールの評価は試行されず、その時点で評価が停止します。同様に、「評価オプション」が「いずれかTrue」に設定されている場合にルールがTrueと評価されると、評価はその時点で停止します。ルール・セットが無効である場合、Oracle Database Vaultは、ルールを評価せずにルール・セットをTrueと評価します。
ルール・セット内に1つ以上のルールをネストできます。たとえば、Is Corporate Network During Maintenanceという、次の2つのタスクを実行するネストされたルールを作成するとします。
データベース・セッションが企業ネットワーク内から発生した場合のみ、表の変更を制限します。
午後10時から午後10時59分の間にスケジュールされているシステム・メンテナンスの時間帯に、表の変更を制限します。
ルールの定義は次のようになります。
DVF.F$NETWORK = 'Corporate' AND TO_CHAR(SYSDATE,'HH24') between '22' AND '23'
これは、ファクタ・ファンクションを使用して作成できます。詳細は、「Oracle Database VaultのPL/SQLファクタ・ファンクション」を参照してください。ファクタの作成方法は、第7章で説明しています。
この項の内容は次のとおりです。
次のチュートリアルでは、ユーザーがメンテナンスの時間帯以外に表を変更しようとすると送信される電子メール・アラートを作成します。これを行うには、メンテナンスの時間帯を設定するルールを作成し、このルールをルール・セットに追加してから、ユーザーに表の変更を許可するコマンド・ルールを作成する必要があります。次に、ルール・セットをこのコマンド・ルールに関連付けます。これにより、ユーザーがメンテナンスの時間帯以外にALTER TABLE
SQL文を使用しようとすると、電子メール・アラートが送信されます。
SYSDBA
権限を使用してSYS
としてSQL*Plusにログインし、UTL_MAIL
パッケージをインストールします。
sqlplus sys as sysdba
Enter password: password
@$ORACLE_HOME/rdbms/admin/utlmail.sql
@$ORACLE_HOME/rdbms/admin/prvtmail.plb
UTL_MAIL
パッケージにより、電子メールの管理が可能になります。UTL_MAILの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。ただし、現在、
UTL_MAIL
PL/SQLパッケージではSSLサーバーをサポートしていないことに注意してください。
SMTP_OUT_SERVER
パラメータの現行値を調べ、このチュートリアル完了時に元に戻せるように、この値をメモしておきます。
次に例を示します。
SHOW PARAMETER SMTP_OUT_SERVER
次のような出力が表示されます。
NAME TYPE VALUE ----------------------- ----------------- ---------------------------------- SMTP_OUT_SERVER string some_value.example.com
次のALTER SYSTEM
文を発行します。
ALTER SYSTEM SET SMTP_OUT_SERVER="imap_mail_server.example.com";
imap_mail_server.example.com
を、電子メール・ツールのアカウント設定にあるSMTPサーバーの名前に置き換えます。これらの設定を引用符で囲んでください。次に例を示します。
ALTER SYSTEM SET SMTP_OUT_SERVER="my_imap_mail_server.example.com"
SYSOPER
権限を使用してSYS
として接続し、データベースを再起動します。
CONNECT SYS/AS SYSOPER
Enter password: password
SHUTDOWN IMMEDIATE
STARTUP
SMTP_OUT_SERVER
パラメータの設定が正しいことを確認します。
CONNECT SYS AS SYSDBA
Enter password: password
SHOW PARAMETER SMTP_OUT_SERVER
次のような出力が表示されます。
NAME TYPE VALUE ----------------------- ----------------- ---------------------------------- SMTP_OUT_SERVER string my_imap_mail_server.example.com
SYSDBA
権限を使用してSYS
として接続していることを確認し、DV_OWNER
ロールを付与されているユーザーに次の権限を付与します。
(DV_ADMIN
ロールを付与されているユーザーを選択することもできますが、このチュートリアルでは、DV_OWNER
ロールを持つユーザーを選択します。)
次に例を示します。
CONNECT SYS AS SYSDBA
Enter password: password
GRANT CREATE PROCEDURE, DROP ANY PROCEDURE TO lbrown_dvowner;
GRANT EXECUTE ON UTL_TCP TO lbrown_dvowner;
GRANT EXECUTE ON UTL_SMTP TO lbrown_dvowner;
GRANT EXECUTE ON UTL_MAIL TO lbrown_dvowner;
GRANT EXECUTE ON DBMS_NETWORK_ACL_ADMIN TO lbrown_dvowner;
PL/SQLパッケージUTL_TCP
、UTL_SMTP
、UTL_MAIL
およびDBMS_NETWORK_ACL_ADMIN
は、作成する電子メール・セキュリティ・アラートで使用されます。
DV_OWNER
ユーザーとしてSQL*Plusに接続します。
次に例を示します。
CONNECT lbrown_dvowner
Enter password: password
次のプロシージャを作成します。
CREATE OR REPLACE PROCEDURE email_alert AS msg varchar2(20000) := 'Realm violation occurred for the ALTER TABLE Command Security Policy rule set. The time is: '; BEGIN msg := msg||to_char(SYSDATE, 'Day DD MON, YYYY HH24:MI:SS'); UTL_MAIL.SEND ( sender => 'youremail@example.com', recipients => 'recipientemail@example.com', subject => 'Table modification attempted outside maintenance!', message => msg); END email_alert; /
youremail@example.com
を自分の電子メール・アドレスに置き換え、recipientemail@example.com
を通知を受け取るユーザーの電子メール・アドレスに置き換えます。
このプロシージャに対するEXECUTE
権限をDVSYS
に付与します。
GRANT EXECUTE ON email_alert TO DVSYS;
UTL_MAIL
などのPL/SQLネットワーク・ユーティリティを使用するには、あらかじめ、外部ネットワーク・サービスに対してファイングレイン・アクセスを有効にするアクセス制御リスト(ACL)ファイルを構成する必要があります。このトピックの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
電子メール・アラートのアクセス制御リストを構成するには、次のようにします。
DV_OWNER
ユーザーとしてSQL*Plusにログインし、次のアクセス制御リストおよびその権限定義を作成します。
BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL ( acl => 'mail_server_permissions.xml', description => 'Enables network permissions for the mail server', principal => 'LBROWN_DVOWNER', is_grant => TRUE, privilege => 'connect'); END; /
プリンシパル設定のユーザー名は、大文字で正確に入力してください。このチュートリアルでは、Database Vault所有者アカウントの名前(LBROWN_DVOWNER
など)を入力します。
アクセス制御リストを電子メール・サーバーの送信SMTPネットワーク・ホストに割り当てます。
BEGIN DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL ( acl => 'mail_server_permissions.xml', host => 'SMTP_OUT_SERVER_setting', lower_port => port); END; /
この例では、次のようになります。
SMTP_OUT_SERVER_setting
: 「手順1: UTL_MAIL PL/SQLパッケージのインストールと構成」
のSMTP_OUT_SERVER
パラメータに設定したSMTP_OUT_SERVER設定を入力します。この設定は、電子メール・ツールで送信サーバーに指定されている設定と完全に一致させてください。
port
: 電子メール・ツールで送信サーバーに指定されているポート番号を入力します。通常、この設定は25です。lower_port
とupper_port
の両方の設定に対してこの値を入力します。(現在、UTL_MAIL
パッケージではSSLをサポートしていません。メール・サーバーがSSLサーバーの場合、そのメール・サーバーが別のポート番号を使用していても、ポート番号に25を入力します。)
変更をデータベースにコミットします。
COMMIT;
これまでに作成した設定をテストします。
EXEC EMAIL_ALERT; COMMIT;
SQL*Plusに「PL/SQL procedure successfully completed
」というメッセージが表示されます。まもなく、電子メール・サーバーの速度に応じて、電子メール・アラートを受信します。
ORA-24247: network access denied by access control list (ACL)
エラーに続いて ORA-06512: at
string
line
string
エラーが発生する場合は、アクセス制御リスト・ファイルの設定をチェックしてください。
DV_OWNER
ユーザーとして、次のルール・セットを作成します。
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'ALTER TABLE Command Security Policy', description => 'This rule set allows ALTER TABLE only during the maintenance period.', enabled => DBMS_MACUTL.G_YES, eval_options => DBMS_MACUTL.G_RULESET_EVAL_ALL , audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT, fail_message => '', fail_code => NULL, handler_options => DBMS_MACUTL.G_RULESET_HANDLER_FAIL, handler => 'dbavowner.email_alert'); END; /
次のようなルールを作成します。
ここでは、テストする間持続するようにルールを設定します。たとえば、午後2時から午後3時までの時間帯にテストする場合、次のようにルールを作成します。
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Restrict Access to Maintenance Period', rule_expr => 'TO_CHAR(SYSDATE,''HH24'') BETWEEN ''14'' AND ''15'''); END; /
HH24
、14
および15
には、二重引用符ではなく、必ず2つの一重引用符を使用してください。
コンピュータのシステム時間は、次のSQL文を発行してチェックできます。
SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
次のような出力が表示されます。
TO -- 14
後から、ルールの動作に問題がなければ、次のように、サイトで通常メンテナンス作業が実行される時間(たとえば、午後7時から午後10時までの間)にルールを更新できます。
BEGIN DBMS_MACADM.UPDATE_RULE( rule_name => 'Restrict Access to Maintenance Period', rule_expr => 'TO_CHAR(SYSDATE,''HH24'') BETWEEN ''19'' AND ''22'''); END; /
Restrict Access to Maintenance PeriodルールをALTER TABLE Command Security Policyルール・セットに追加します。
BEGIN DBMS_MACADM.ADD_RULE_TO_RULE_SET( rule_set_name => 'ALTER TABLE Command Security Policy', rule_name => 'Restrict Access to Maintenance Period'); END; /
次のコマンド・ルールを作成します。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'ALTER TABLE', rule_set_name => 'ALTER TABLE Command Security Policy', object_owner => 'SCOTT', object_name => '%', enabled => DBMS_MACUTL.G_YES); END; /
これらの更新をデータベースにコミットします。
COMMIT;
ユーザーSCOTT
としてSQL*Plusに接続します。
次に例を示します。
CONNECT SCOTT
Enter password: password
SCOTT
アカウントがロックされて無効になっている場合、DV_ACCTMGR
ロールを持つユーザーが、このアカウントのロックを解除し、新しいパスワードを次のように作成できます。
ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;
password
をセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
ユーザーSCOTT
として、テスト表を作成します。
CREATE TABLE mytest (col1 number);
コンピュータのシステム時間を、ALTER TABLE Command Security Policyルール・セットが実行される時間(午後2時から3時の間など)に変更します。
UNIX: rootとしてログインし、date
コマンドを使用して時間を設定します。たとえば、今日の日付が2011年12月14日だとすると、次のように入力します。
su root
Password: password
date --set="14 DEC 2011 14:00:00"
Windows: 通常画面の右下隅にある時計アイコンをダブルクリックします。「日付と時刻のプロパティ」ウィンドウで、時刻を午後2時に設定し、「OK」をクリックします。
my_test
表の変更を試みます。
ALTER TABLE mytest ADD (col2 number); Table altered.
SCOTT
は、この時間帯にmytest
表を変更できます。
システム時間をRestrict Access to Maintenance Period時間外の時刻に再設定します。
SCOTT
としてログインし、再度my_test
表の変更を試みます。
CONNECT SCOTT
Enter password: password
ALTER TABLE mytest ADD (col3 number);
次のような出力結果が表示されます。
ORA-47400: Command Rule violation for ALTER TABLE on SCOTT.MYTEST
SCOTT
はmytest
表を変更できません。まもなく、「Table modification attempted outside maintenance!
」という件名で、次のようなメッセージの電子メールを受信します。
Realm violation occurred for the ALTER TABLE Command Security Policy rule set. The time is: Wednesday 06 MAY, 2009 14:24:25
システム時間を正しい時刻に再設定します。
DV_OWNER
ユーザーとしてSQL*Plusに接続し、次に示した順序でOracle Database Vaultルール・コンポーネントを削除します。
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('ALTER TABLE Command Security Policy', 'Restrict Access to Maintenance Period'); EXEC DBMS_MACADM.DELETE_RULE('Restrict Access to Maintenance Period'); EXEC DBMS_MACADM.DELETE_COMMAND_RULE('ALTER TABLE', 'SCOTT', '%'); EXEC DBMS_MACADM.DELETE_RULE_SET('ALTER TABLE Command Security Policy');
email_alert
PL/SQLプロシージャを削除します。
DROP PROCEDURE email_alert;
アクセス制御リストを削除します。
EXEC DBMS_NETWORK_ACL_ADMIN.DROP_ACL ('email_alert_permissions.xml');
ユーザーSCOTT
として接続し、mytest
表を削除します。
CONNECT SCOTT
Enter password: password
DROP TABLE mytest;
SYSDBA
権限を使用してSYS
として接続し、DV_OWNER
ユーザーから、PL/SQLパッケージUTL_TCP
、UTL_SMTP
およびUTL_MAIL
に対するEXECUTE
権限を取り消します。
次に例を示します。
REVOKE EXECUTE ON UTL_TCP FROM lbrown_dvowner; REVOKE EXECUTE ON UTL_SMTP FROM lbrown_dvowner; REVOKE EXECUTE ON UTL_MAIL FROM lbrown_dvowner; REVOKE EXECUTE ON DBMS_NETWORK_ACL_ADMIN from lbrown_dvowner;
SMTP_OUT_SERVER
パラメータを元の値に設定します。
次に例を示します。
ALTER SYSTEM SET SMTP_OUT_SERVER="some_value.example.com";
SYSOPER
権限を使用してSYS
として接続し、データベースを再起動します。
CONNECT SYS/AS SYSOPER
Enter password: password
SHUTDOWN IMMEDIATE
STARTUP
この項の内容は次のとおりです。
このチュートリアルでは、二人制整合性(TPI)(デュアル・キー・セキュリティ、デュアル・キー接続や二人制ルール・セキュリティとも呼ばれる)を定義するルール・セットを構成します。このタイプのセキュリティでは、アクションの認可に、1人ではなく2人のユーザーが必要です。あるユーザーがタスクを開始するには、別のユーザーがそのユーザーに対するセーフティ・チェックを行います。二人制整合性では、危険を伴う可能性のあるアクションに対して、追加のセキュリティの層が用意されます。このタイプのシナリオは、データベース・パッチの更新などのタスクに使用されることが多く、このチュートリアルでもこのタスクを使用します。ユーザーpatch_user
がデータベース・パッチのアップグレードを実行するにはログインが必要ですが、このユーザーがログインするにはマネージャpatch_boss
がログインしている必要があります。patch_user
がログイン可能かどうかを制御するファンクション、ルール、ルール・セットおよびコマンド・ルールを作成します。
このチュートリアルでは、次の2人のユーザーを作成する必要があります。
patch_boss
はスーパーバイザ・ロールとして機能します。patch_boss
がログインしていない場合、patch_user
ユーザーはログインできません。
patch_user
は、パッチの更新の実行が割り当てられているユーザーです。ただし、このチュートリアルでは、ユーザーはpatch_user
実際にはパッチの更新を実行しません。ログインを試行するのみです。
ユーザーを作成するには、次のようにします。
DV_ACCTMGR
ロールを付与されているユーザーとしてSQL*Plusに接続します。
次に例を示します。
CONNECT amalcolm_dvacctmgr
Enter password: password
次のユーザーを作成します。
CREATE USER patch_boss IDENTIFIED BY password; CREATE USER patch_user IDENTIFIED BY password;
password
をセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
SYSDBA
権限を持つユーザーSYS
として接続し、patch_boss
ユーザーおよびpatch_user
ユーザーに権限を付与します。
CONNECT SYS AS SYSDBA
Enter password: password
GRANT CREATE SESSION TO patch_boss, patch_user;
次の権限をDV_OWNER
ユーザーまたはDV_ADMIN
ユーザーに付与します。
次に例を示します。
GRANT CREATE PROCEDURE TO lbrown_dvowner; GRANT SELECT ON V_$SESSION TO lbrown_dvowner;
V_$SESSION
表はV$SESSION
動的ビューの基となる表です。
実際のシナリオでは、DV_OWNER
ユーザーとしてもログインし、DV_PATCH_ADMIN
ロールをpatch_user
ユーザーに付与します(patch_boss
には付与しません)。しかし、このチュートリアルでは、実際にはデータベース・パッチの更新を実行しないため、このロールをpatch_user
ユーザーに付与する必要はありません。
作成するファンクションcheck_boss_logged_in
は、ユーザーpatch_user
がSQL*Plusへのログインを試行したときに、V$SESSION
データ・ディクショナリ・ビューに問い合せて、ユーザーpatch_boss
がログインしているかどうかをチェックします。
check_boss_logged_in
ファンクションを作成するには、次のようにします。
DV_OWNER
またはDV_ADMIN
ユーザーとして、次のようなcheck_boss_logged_in
ファンクションを作成します。
CREATE OR REPLACE FUNCTION check_boss_logged_in return varchar2 authid definer as v_session_number number := 0; v_allow varchar2(10) := 'TRUE'; v_deny varchar2(10) := 'FALSE'; BEGIN SELECT COUNT(*) INTO v_session_number FROM SYS.V_$SESSION WHERE USERNAME = 'PATCH_BOSS'; -- Enter the user name in capital letters. IF v_session_number > 0 THEN RETURN v_allow; ELSE RETURN v_deny; END IF; END check_boss_logged_in; /
check_boss_logged_in
ファンクションのEXECUTE
権限をDVSYS
スキーマに付与します。
GRANT EXECUTE ON check_boss_logged_in to DVSYS;
次に、2つのルール、それらを追加するルール・セットおよびコマンド・ルールを作成します。このルール・セットは、ユーザーpatch_user
がデータベースにログインしようとしたときに、check_boss_logged_in
ファンクションをトリガーします。
ルールとルール・セットを追加するには、次のようにします。
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーとして接続します。
次に例を示します。
CONNECT lbrown_dvowner
Enter password: password
patch_user
ユーザーがデータベースにログインしていることをチェックするCheck if Boss Is Logged Inルールを作成します。定義内のlbrown_dvowner
を、check_boss_logged_in
ファンクションを作成したDVOWNER
ユーザーまたはDV_ADMIN
ユーザーに置き換えます。
check_boss_logged_in
ファンクションがTRUE
を返した場合(つまりpatch_boss
は別のセッションにログインしている)、patch_user
はログインできます。
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check if Boss Is Logged In', rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''PATCH_USER'' and lbrown_dvowner.check_boss_logged_in = ''TRUE'' '); END; /
ユーザー名PATCH_USER
を大文字で入力します(SESSION_USER
パラメータはユーザー名を大文字で保存します)。
ログインしているユーザー(patch_user
)がユーザーpatch_boss
でないことを確認するAllow Connect for Other Database Usersルールを作成します。他のすべての有効なユーザーのログインの許可も行います。
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Allow Connect for Other Database Users', rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') != ''PATCH_USER'''); END; / COMMIT;
上司とパッチ担当者のデュアル接続のルール・セットを作成して、このルール・セットに2つのルールを追加します。
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Dual Connect for Boss and Patch', description => 'Checks if both boss and patch users are logged in.', enabled => DBMS_MACUTL.G_YES, eval_options => DBMS_MACUTL.G_RULESET_EVAL_ANY, audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT, fail_message =>'', fail_code => NULL, handler_options => DBMS_MACUTL.G_RULESET_HANDLER_OFF, handler => '' ); END; / BEGIN DBMS_MACADM.ADD_RULE_TO_RULE_SET( rule_set_name => 'Dual Connect for Boss and Patch', rule_name => 'Check if Boss Is Logged In' ); END; / BEGIN DBMS_MACADM.ADD_RULE_TO_RULE_SET( rule_set_name => 'Dual Connect for Boss and Patch', rule_name => 'Allow Connect for Other Database Users' ); END; /
patch_boss
がログインしている場合にのみユーザーpatch_user
にデータベースへの接続を許可する、次のCONNECTコマンド・ルールを作成します。
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'CONNECT', rule_set_name => 'Dual Connect for Boss and Patch', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES); END; / COMMIT;
SQL*Plusを終了します。
EXIT
次のように2つ目のシェルを作成します。
xterm &
最初のシェルで、ユーザーpatch_user
としてログインします。
sqlplus patch_user
Enter password: password
ERROR:
ORA-47400: Command Rule violation for CONNECT on LOGON
Enter user-name:
patch_boss
がログインするまで、ユーザーpatch_user
はログインできません。(まだEnter user-name
プロンプトを試さないでください。)
2つ目のシェルで、ユーザーpatch_boss
としてログインします。
sqlplus patch_boss
Enter password: password
Connected.
ユーザーpatch_boss
はログインできます。
最初のシェルに戻って、ユーザーpatch_user
としてログインを再試行します。
Enter user_name: patch_user
Enter password: password
ユーザーpatch_user
は有効なユーザーとみなされ、ログインできます。
ユーザーpatch_boss
のセッションで、SQL*Plusを終了してシェルを閉じます。
EXIT
最初のシェルで、ユーザーDV_ACCTMGR
を接続し、作成したユーザーを削除します。
CONNECT amalcolm_dvacctmgr
Enter password: password
DROP USER patch_boss;
DROP USER patch_user;
SYSDBA
権限を持つユーザーSYS
として接続し、DV_OWNER
ユーザーまたはDV_ADMIN
ユーザーに付与した権限を取り消します。
CONNECT SYS AS SYSDBA
Enter password: password
REVOKE CREATE PROCEDURE FROM lbrown_dvowner;
REVOKE SELECT ON V_$SESSION FROM lbrown_dvowner;
DV_OWNER
またはDV_ADMIN
ユーザーとして接続し、ルール、ルール・セットおよびコマンド・ルールを示した順に削除します。
CONNECT lbrown_dvowner
Enter password: password
DROP FUNCTION check_boss_logged_in;
EXEC DBMS_MACADM.DELETE_COMMAND_RULE('CONNECT', '%', '%');
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Dual Connect for Boss and Patch', 'Check if Boss Is Logged In');
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Dual Connect for Boss and Patch', 'Allow Connect for Other Database Users');
EXEC DBMS_MACADM.DELETE_RULE('Check if Boss Is Logged In');
EXEC DBMS_MACADM.DELETE_RULE('Allow Connect for Other Database Users');
EXEC DBMS_MACADM.DELETE_RULE_SET('Dual Connect for Boss and Patch');
COMMIT;
ルールは、複数のルール・セット間で共有できます。これにより、再利用可能なルール式のライブラリを作成できます。個別で式の目的が1つであるルールを設計することをお薦めします。
評価が静的な、すなわちユーザー・セッション中に1回のみ評価されるルール・セットを設計できます。関連付けられているコマンド・ルールがルール・セットにアクセスするたびに評価することもできます。ルール・セットが1回のみ評価される場合、コマンド・ルールがルール・セットにアクセスするたびに、評価された値がユーザー・セッションで再利用されます。静的な評価の使用は、ルール・セットに複数回アクセスする必要があるが、ルール・セットが依存する条件はセッション中に変化しない場合に便利です。たとえば、ルール・セットに関連付けられているSELECTコマンド・ルールは、同じSELECT
文が複数回実行される際、評価された値が再利用可能であれば、SELECT
が実行されるたびにルール・セットを評価するかわりに、評価された値を再利用できます。
ルール・セットの静的な評価を制御するには、DBMS_MACADM
PL/SQLパッケージのCREATE_RULE_SET
またはUPDATE_RULE_SET
プロシージャのis_static
パラメータを設定します。詳細は、「DBMS_MACADMのルール・セット・プロシージャ」を参照してください。
再利用性とルール式で使用される値の信頼性を実現するために、ルール式にはOracle Database Vaultファクタを使用します。ファクタにはルール式で使用可能なコンテキスト情報が用意されています。
カスタム・イベント・ハンドラを使用して、Oracle Database Vaultセキュリティ・ポリシーを拡張し、エラー処理またはアラート通知のための外部システムを統合できます。このような統合を行うには、UTL_TCP
、UTL_HTTP
、UTL_MAIL
、UTL_SMTP
またはDBMS_AQ
などのOracleユーティリティ・パッケージを使用すると便利です。
機密データを保護するレルムやコマンド・ルールにルール・セットを適用する前に、テスト・データベース、または機密データ以外のデータ用のテスト・レルムやコマンド・ルール上で、様々なアカウントやシナリオに関してルール・セットを十分にテストします。次のSQL文を使用して、ルール式を直接テストできます。
SQL> SELECT SYSDATE from DUAL where rule expression
単一のルールにルール式をネストできます。これにより、ルールのサブセットに論理的AND
、およびその他のルールに論理的OR
が必要になる複雑な状況を作成できます。この一例として、「チュートリアル: セキュリティ違反の電子メール・アラートの作成」に記載されているIs Corporate Network During Maintenanceルール・セットの定義を参照してください。
起動者権限プロシージャとルール式を組み合せて使用できません。定義者権限プロシージャのみルール式と組み合せて使用できます。
一般的に、ルールが多く複雑になるほど、これらのルール・セットで制御されている特定の操作を実行する際のパフォーマンス・オーバーヘッドが増加します。たとえば、SELECT
文を制御するルール・セットに大量のルールが含まれる場合は、パフォーマンスが大幅に低下する可能性があります。
多数のルールが必要なルール・セットがある場合、すべてのルールを単一のPL/SQLスタンドアロンまたはパッケージ・ファンクションに定義されているロジックに移動すると、パフォーマンスが向上します。ただし、ルールが他のルール・セットに使用されている場合、システムのパフォーマンスにはほとんど影響ありません。
可能であれば、静的な評価を使用するようにルール・セットを設定することを検討してください(関連付けられているコマンド・ルールの使用と互換性があると想定して)。詳細は、「ルール・セット設計のガイドライン」を参照してください。
Oracle Enterprise Manager(デフォルトでOracle DatabaseとともにインストールされるOracle Enterprise Manager Database Controlを含む)、Statspack
およびTKPROF
などのツールを実行してシステム・パフォーマンスを確認できます。Oracle Enterprise Managerの詳細は、Oracle Enterprise Managerのドキュメント・セットを参照してください。Database Controlの詳細は、オンライン・ヘルプを参照してください。Statspack
およびTKPROF
ユーティリティについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』で説明されています。
表5-1に、ルール・セットおよびそのルールの分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。
表5-1 ルール・セットに関連するレポート
レポート | 説明 |
---|---|
|
ルールが定義されていない、または有効でないルール・セットが表示されます。 |
|
不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。 |
|
不完全または無効なルール・セットが表示されます。 |
表5-2に、既存のルールおよびルール・セットに関する情報を提供するデータ・ディクショナリ・ビューを示します。
表5-2 ルールおよびルール・セットに使用されるデータ・ディクショナリ・ビュー
データ・ディクショナリ・ビュー | 説明 |
---|---|
|
定義済のルールが表示されます。 |
|
作成済のルール・セットが表示されます。 |
「DVSYS.DBA_DV_RULE_SET_RULEビュー」 |
既存のルール・セットに関連付けられているルールが表示されます。 |