データベース UDC タイプを使用して、データベースで SQL 文を実行することでカスタムチェックを作成します。これらのチェックを使用して、データベースのポリシーレポートを作成することもできます。
現在、次のデータベースがサポートされています。
- MS SQL
- Oracle
- Sybase
- PostgreSQL/Pivotal Greenplum
- SAP IQ
- IBM DB2
「PC」->「Policies」->「Controls」->「New」->「Control」に移動します。
「Database Control Types」を選択し、次のコントロールタイプから 1 つをクリックします。
PostgreSQL/ Pivotal Greenplum Database Check
各コントロールで、データベースに実行する SQL 文を定義します。この値には 32000 文字まで入力できます。
注記 - データベースコントロールでサポートされているのは、SELECT 文のみです。例えば、次の SQL 文を使用して、国が“ Germany ”で、かつ都市が“ Berlin ”である“ Customers ”のすべてのフィールドをリスト表示できます。
SELECT * FROM Customers WHERE Country='Germany' AND City='Berlin'
コンプライアンスポリシーを新規作成するか(方法についてはこちらを参照)、既存のポリシーを編集し、データベースコントロールをポリシーに追加します。ヒント - ポリシーに、コントロールで選択されたデータベーステクノロジがあることを確認します。
スキャンがまだ完了していない場合、コントロールを表示しても、ポリシーのデータベースから実際のデータは表示されません。
時間短縮のためのヒント: ポリシーによる制限を使用せずにデフォルトモードでコンプライアンススキャンを実行してから、データベースコントロールをポリシーに追加することもできます。この方法では、ポリシーを作成し条件を設定するためのスキャンデータが既に取得されています。
データベースを実行しているホストでコンプライアンススキャンを開始します。方法については、こちらを参照してください。
スキャンに使用するコンプライアンスオプションプロファイルを編集して、チェックで返される最大行数を設定できます。デフォルトでは、Oracle については最大で 5,000 行、その他のすべてのコントロールタイプについては最大で 256 行が返されます。この制限を編集するコントロールタイプを選択します。
Policy Editor を使用してコンプライアンスポリシーを編集し、スキャンで返される実際のデータを表示します。
列を選択し、期待値を定義します。これにより、コントロールの合格/不合格ステータスを判断する条件が設定されます。
正確な結果を取得するためには、選択したデータタイプに適切な期待値を指定してください。例: データタイプに「List String」を選択した場合、「Expected Values」フィールドにテキスト値を指定します。
注記 - 最初のチェックボックス「Set status to PASS if no data found」と「Criteria 1」はコントロール評価に「OR」を使用します。これは変更できません。
さらに条件を追加するには、「Add another column」をクリックします。「Criteria 1」、「Criteria 2」、「Criteria 3」というように、最大 5 つの条件を追加できます。
各条件で「AND」または「OR」を選択できます。「AND」を選択すると、合格するには両方の条件に一致する必要があります。「OR」を選択すると、合格するには少なくとも 1 つの条件に一致する必要があります。
設定した条件を確認するには、「Test Control」をクリックします。次に、ポリシーを保存します。
コントロールの場合と同様に、レポートに「PASS」または「FAIL」のステータスが表示されます。最新スキャンで返された列が前回のスキャンと異なる場合は、ポリシーを編集して、コントロールで選択された条件を変更することができます。
以下のレポート例では、期待値と実際値が一致したため、ステータス「PASS」が返されています。
Policy Editor で「Set status to PASS if no data found」オプションが有効化されており、SQL 文に一致するデータがデータベースで見つからなかった場合は、スキャン後、すべてのチェックは「Pass」とマークされるはずです。ただし、条件 2 以降のいずれかが「AND」に設定されている場合、「AND」条件に不合格となり、チェックは「Fail」とマークされます。
最新のスキャンで返されたデータが、条件の設定時に選択した列を返さない場合、これらは表示されません。「AND」であるか「OR」であるかによって、チェックで設定された条件が「Pass」または「Fail」とマークされます。
最新スキャンで返された列が前回のスキャンと異なる場合は、ポリシーを編集して、コントロールで選択された条件を変更することができます。
演算子条件「matches」で演算子「regular expression list」を選択すると、部分一致すれば「PASS」となります。
演算子条件「matches」で演算子「string list」を選択すると、「PASS」となるには、完全一致する必要があります。この場合、部分一致では「FAIL」となります。
はい。こちらを参照してください。