監査の設定での作業
Audit for Zen は、監査の設定に基づいて監査データをキャプチャします。監査の設定は、以下の項目を組み合わせたものです。
• Zen サーバー エンジンと共にインストールされた Audit for Zen サーバー
• Zen データベースからインポートされたスキーマ(存在する場合)
• 監視するファイルのグループ(1 つ以上)
Audit for Zen を実行する上でスキーマは必要ありませんが、スキーマによって、人間が監査レコードをテーブルの行として読み取れるようになります。また、より正確な警告を発することができるようになります。
スキーマを Audit for Zen にインポートすると、そのスキーマで作成されたすべてのグループが、そのスキーマを使用するテーブルを監視できるようになります。実際、追加するテーブルを参照する際には、そのスキーマを使用するテーブルのみが表示されます。
スキーマをインポートしない場合でも、監視する Btrieve ファイルのグループを作成することが必要です。ファイルを参照する際には、Btrieve ファイルのみが表示されます。
1 つのグループを作成し、そのグループにすべての監視対象ファイルを追加することもできますが、そうすると、行いたい監査の計画が立てにくくなる可能性があります。複数のグループを作成したり、インポートした同じデータベース スキーマの複数のコピーの下にグループを作成したりすることで、監査活動が容易になります。
たとえば、顧客ごとに異なるファイルを監視する場合は、顧客ごとにグループを作成し、グループ下のすべてのファイルはその顧客用とすることができます。また、各顧客に同じスキーマをインポートし、スキーマ下のすべてのグループはその顧客用とすることもできます。インポートしたスキーマ、グループ、ファイルの編成は、思考を整理する目的でのみ行うものであり、ログに記録される監査レコードや、監査レコードを生成するデータベース操作には影響しません。
要約すると、次のようになります。
• インポートされるスキーマごとに 1 つ以上のグループを作成できる。各グループには 1 つ以上の監視対象テーブルを追加できる。
• インポートしたスキーマの監視対象テーブルのどのグループでも、そのスキーマのみが使用される。
• スキーマのない Btrieve ファイルを監視するには、そのファイルの追加先となるグループを作成する必要がある。
• 1 つのテーブルやファイルは 1 つのグループにしか所属できない。特定のグループに一度追加すると、他のグループからは監視できない。
上記のコンセプトが実際に機能する仕組みを確認するため、下記の例を参照することをお勧めします。これらの例は、示されている順序で使用するのが最善です。
スキーマの管理
AZCC は、Zen データ辞書ファイル(DDF)が提供するスキーマを使用して、キャプチャされた監査データを人間に読み取れるようにすると共に、レコードのフィールド レベルで照会を行えるようにします。AZCC でデータベース スキーマをインポートすると、データベースのデータ ファイル ディレクトリから DDF が読み取られ、AZCC 専用のデータベースに保存されて、監査データの表示と照会に使用されます。
DDF がない場合は、監視対象ファイル内のキャプチャ済みデータ レコードは 16 進数の行として表示されるため、特定のデータ値について照会することはできません。ログに記録されたレコードの表示書式を設定する DDF がないと、データ ファイルに挿入されたレコードは次のように表示されます。
スキーマのインポート後に挿入されたログ記録レコードは、次のように判読可能な形式で表示されます。
スキーマをインポートしても、既にキャプチャされているレコードの表示は変更されません。スキーマのインポート前にキャプチャされたレコードは、引き続き 16 進文字として表示されます。同様に、スキーマを削除しても、スキーマが使用されていたときにログに記録されたレコードは何の影響も受けず、AZCC で表示されるときには引き続き判読可能です。レコードが上記のいずれの方法で表示されるかは、レコードがログに記録されたときにスキーマがインポートされていたかどうかによって決まります。
メモ: V2 メタデータを使用するデータベースのスキーマをインポートする場合に、テーブル、列、またはインデックスの DDF 名が 40 文字を超えるときは、最初の 40 文字のみが表示されます。このようにテーブル名が切り詰められて表示されても、AZ の操作には影響しませんが、[AZCC]ウィンドウではレポートが読み難くなるかもしれません。
このスキーマに関するチュートリアルの残り部分では、以下のタスクについて説明します。
データベースからのスキーマのインポート
次の例は、スキーマをインポートする方法を示します。
AZCC の[監査の設定]タブにおいて、Zen Demo という名前でインポートされたスキーマが Audit for Zen とともにインストールされていることに注目してください。これは Demodata サンプル データベースのスキーマです。この Zen Demo スキーマは現時点でも使用可能ですが、次の例を説明するため、Demodata スキーマが新しい監査の設定に再度インポートされます。
Zen データベースからスキーマをインポートするには
1. [
ツール]>[
スキーマのインポート]メニューを選択するか、またはツールバーの[
スキーマのインポート]ボタン
をクリックし、[スキーマのインポート]ダイアログ ボックスを開きます。ダイアログには、監査の設定を作成するのに使用できる、Zen サーバー上のデータベースが一覧表示されます。
2. 一覧から、監視したいテーブルを定義しているスキーマを持つデータベースを選択します。
3. このデータベース名が、新しい監査設定の[名前]フィールドに自動的に入力されます。このデータベース名を別の名前に置き換えることもできます。スペースを含むすべてのキーボード文字が使用可能です。この名前は、このスキーマに対してキャプチャされたすべての監査レコードに関連付けられます。
4. 監査の設定の説明を入力します。スペースを含むすべてのキーボード文字が使用可能です。この文字列は、監査の設定のプロパティに表示されます。
5. 監査の設定のバージョンを入力します。スペースを含むすべてのキーボード文字が使用可能です。このバージョンは、このスキーマに対してキャプチャされたすべての監査レコードに関連付けられます。
入力した値は、AZCC で監査の設定名の後にかっこ付きで表示されます。ニーズに合ったバージョンを使用してください。バージョンに関する唯一の制限は、インポートするスキーマごとに一意でなければならないことです。
6. [インポート]をクリックします。
選択した名前が監査の設定として表示され、バージョンが[AZCC]ウィンドウの左下に表示されます。これで、インポートしたスキーマを使用するテーブルのグループを追加、監視できるようになります。
インポートしたスキーマについては、以下のことに注意してください。
• スキーマをインポートして監査の設定を作成すると、Audit for Zen によりデータベースの DDF からテーブルおよび列の情報が読み取られ、Audit for Zen の内部に保存されます。その後でデータベース スキーマが修正され、そのスキーマが監査の設定にインポートしたスキーマと一致しなくなった場合は、監査レコードに対してどのようなクエリを実行しても、切り詰められたデータまたはそれより悪い結果が返される可能性があります。データベースの正しい監査を再開するには、スキーマを新しい監査設定にインポートし、その監査設定に監視対象ファイルを追加する必要があります。Query Builder で作成された一般的なクエリは、この新しい監査設定でキャプチャされたレコードに対して引き続き機能します。これに対し、Advanced Query Builder ではデータのフィールド情報を検索する場合があるため、データベース スキーマを変更した後にキャプチャした監査レコードに対して実行する詳細なクエリは、再作成する必要があります。
• DefaultDB データベースの Zen セキュリティ ポリシーを混合またはデータベースに設定している場合は、監査の設定の新しいスキーマについて作業する前に、そのパスを DefaultDB のデータの場所の一覧に追加する必要があります。詳細については、
Zen セキュリティ下での Audit for Zen の実行を参照してください。
監査の設定の削除
監査の設定を削除すると、インポートしたスキーマ、そのスキーマ下のグループ、およびこれらのグループに指定した監視対象テーブルの一覧も削除されます。指定したテーブルは、Zen データベース エンジンを次回再起動すると監視されなくなります。
監査の設定を削除するには
1. [監査の設定]タブで、監査設定の名前を右クリックして[削除]を選択します。
2. [はい]をクリックして削除を確認します。
削除したグループ内の監視対象だったファイルが、他の監査設定のグループに追加できるようになります。一般的に、監査の設定を削除する必要が生じるのは、データベース スキーマを変更した場合のみです。削除後、新しいスキーマをインポートし、グループを再作成して監視対象ファイルを追加します。
スキーマのあるデータ監視の構成
このシナリオでは、データ辞書ファイル(DDF)があるデータベース内の 1 つ以上のテーブルから成るグループを監視するための監査設定を作成する方法を示します。Zen サーバーと共にインストールされる Demodata サンプル データベースを使用します。また、Audit for Zen と共にインストールされた既存の監査設定も使用します。この設定には、Demodata スキーマがあらかじめインポートされています。
自身の監査設定を作成するには、Audit for Zen 管理ユーザーである必要があります。
スキーマの管理で説明したように、DDF のスキーマ情報は監査レコードを人間が読み取れるようにし、特定のデータ値を照会できるようにします。
スキーマのないデータ監視の構成に記載する別の例では、DDF がないデータ ファイルを監視する方法を示しています。
スキーマのある監査の設定を使用するには
1. AZCC を起動すると、[Audit for Zen]ウィンドウが開き、使用可能なサーバーが表示されます。
2. サーバー名を右クリックして[ログイン]を選択します。名前を展開するだけでも、[ログイン]ダイアログ ボックスを開くことができます。
3. デフォルトのユーザー名 admin とパスワード MASTER を入力します。ユーザー名とパスワードを変更済みの場合は、代わりにそれらを入力します。
メモ: 組み込みのユーザー ID admin は、デフォルトのパスワード MASTER を持っています。パスワードは大文字と小文字を区別しますが、ユーザー名は区別しません。このユーザー ID とパスワードは Audit for Zen 内でのみ識別されるものであり、Zen または Windows セキュリティ下のユーザー アカウントとは一切関係ありません。
4. [OK]をクリックします。
5. [監査の設定]の[テーブル]タブで、既存の監査設定 Zen Demo (9) を右クリックして[グループの追加]を選択します。
6. グループ名 Demodata を入力して、[OK]をクリックします。
グループ名は大文字と小文字を区別しません。スペースも含め、すべてのキーボードの文字を使用でき、最長 40 文字まで指定できます。グループ名を別の監査設定に再利用することは可能ですが、グループ名を使用する Audit for Zen クエリを作成する際に混同する恐れを少なくするため、一意の名前を付けることをお勧めします。
7. [利用可能なテーブル]領域の[テーブルの参照]ウィンドウで、この監査設定のスキーマに関連付けるテーブルの場所を参照します。
この例では、Zen デモンストレーション データベースの Demodata があるディレクトリを選択します。デフォルトの Zen インストレーションでは、この場所は C:\ProgramData\Actian\Zen\Demodata になります。
8. Billing という名前のテーブルをクリックし、[選択]をクリックして、このテーブルを[監視するテーブル]リストに移動します。
[すべて選択]をクリックして、現在の場所内のすべてのテーブルを追加することもできます。
どの監査設定においても、各テーブルは 1 つのグループのメンバーにしかなれません。テーブルがあるはずの場所にない場合は、この監査設定やその他の監査設定に含まれる他のグループをチェックして、そのテーブルが既に監視されていないかどうかを確認します。
[監視するテーブル]から項目を削除するには、その項目を選択して[削除]をクリックします。[すべて削除]をクリックすると、グループからすべてのテーブルが削除されます。
メモ: 削除したテーブルに基づくクエリや警告では監査レコードを検索できなくなるので、それらのクエリや警告も削除する必要が出てきます。必要であれば、削除したテーブルを別のグループに追加した後、それらのクエリや警告を再作成する必要があります。削除したテーブルを以前と同じグループに再度追加した場合は、同じクエリや警告が再び正常に終了するようになります。
9. グループにテーブルを選択したら、[OK]をクリックします。
ウィンドウが閉じ、AZCC により、Zen データベース エンジンを再起動するように求められます。
10. [はい]をクリックします。
再起動が行われた後で、監視が開始されます。[監査の設定]タブに新しいグループが表示され、そのグループの下に当該のテーブルが表示されます。
11. グループを修正したい場合は、そのグループを右クリックして[編集]を選択します。
スキーマのないデータ監視の構成
このシナリオでは、DDF のない 1 つ以上の Btrieve データ ファイルから成るグループを監視するための監査設定を作成する方法を示します。sample.btr という名前のデータ ファイルを使用します。このデータ ファイルは Zen サーバーと共にインストールされます。また、既存の監査設定は Audit for Zen と共にインストールされます。
自身の監査設定を作成するには、Audit for Zen 管理ユーザーである必要があります。
スキーマのあるデータ監視の構成に記載する別の例では、DDF があるデータベース テーブルを監視する方法を示しています。
スキーマのない監査の設定を使用するには
1. AZCC を起動すると、[Audit for Zen]ウィンドウが開き、使用可能なサーバーが表示されます。
2. サーバー名を右クリックして[ログイン]を選択します。名前を展開するだけでも、[ログイン]ダイアログ ボックスを開くことができます。
3. デフォルトのユーザー名 admin とパスワード MASTER を入力します。ユーザー名とパスワードを変更済みの場合は、代わりにそれらを入力します。
メモ: 組み込みのユーザー ID admin は、デフォルトのパスワード MASTER を持っています。パスワードは大文字と小文字を区別しますが、ユーザー名は区別しません。このユーザー ID とパスワードは Audit for Zen 内でのみ識別されるものであり、Zen または Windows セキュリティ下のユーザー アカウントとは一切関係ありません。
4. [OK]をクリックします。
5. [監査の設定]の[Btrieve ファイル]タブで、既存の監査設定 Zen Generic を右クリックして[グループの追加]を選択します。
6. Files というグループ名を入力して、[OK]をクリックします。
グループ名は大文字と小文字を区別しません。スペースも含め、すべてのキーボードの文字を使用でき、最長 40 文字まで指定できます。グループ名を別の監査設定に再利用することは可能ですが、グループ名を使用する Audit for Zen クエリを作成する際に混同する恐れを少なくするため、一意の名前を付けることをお勧めします。
7. [Btrieve ファイル グループ]ウィンドウの[利用可能なファイル]領域で、監視するファイルがある場所を参照します。表示されるファイルは Btrieve ファイルのみです。
この例では、Zen のサンプル ディレクトリを選択します。デフォルトの Zen インストレーションでは、この場所は C:\ProgramData\Actian\Zen\samples になります。
8. ファイル名 sample.btr をクリックし、[選択]をクリックして、このファイルを[監視するファイル]リストに移動します。
[すべて選択]をクリックして、現在の場所内のすべてのファイルを追加することもできます。
どの監査設定においても、各ファイルは 1 つのグループのメンバーにしかなれません。ファイルがあるはずの場所にない場合は、他のグループと監査設定をチェックして、そのテーブルが既に監視されていないかどうかを確認します。
[監視するファイル]から項目を削除するには、その項目を選択して[削除]をクリックします。[すべて削除]をクリックすると、グループからすべてのファイルが削除されます。
メモ: 削除したファイルに基づくクエリや警告では監査レコードを検索できなくなるので、それらのクエリや警告も削除する必要が出てきます。必要であれば、削除したファイルを別のグループに追加した後、それらのクエリや警告を再作成する必要があります。削除したファイルを以前と同じグループに再度追加した場合は、同じクエリや警告が再び正常に終了するようになります。
9. グループに追加するファイルを選択したら、[OK]をクリックします。
ウィンドウが閉じ、AZCC により、Zen データベース エンジンを再起動するように求められます。
10. [はい]をクリックします。
再起動が行われた後で、監視が開始されます。[監査の設定]タブに新しいグループが表示され、そのグループの下に当該のファイルが表示されます。
11. グループを修正したい場合は、そのグループを右クリックして[編集]を選択します。
データ ファイル以外の項目の監視
データ ファイル以外で監視候補となる Btrieve ファイルの種類の 1 つは Zen サーバーのシステム ファイル dbnames.cfg です。このファイルは、デフォルトのインストレーションでは C:
\ProgramData
\Actian
\Zen にあります。このファイルは、Zen データベースとその構成設定から成るマスター リストです。新しいデータベースや削除されたデータベースなどの変更がないかどうか、このリストを監査すると役立つかもしれません。それらの変更は、dbnames.cfg ファイルに "Insert" や "Delete" として表示されます。dbnames.cfg はスキーマがない Btrieve ファイルであるため、その監査レコードは人間が読み取れません。しかし、監査レコードに表示されるテキスト文字列により、次の例に示すようにデータベースの名前と場所がわかります。
テーブルまたはファイル別に監視する操作
[テーブル グループ]ウィンドウまたは[Btrieve ファイル グループ]ウィンドウにおいて、そのグループの個々のテーブルまたはファイルには、監視可能な操作の一覧が表示されます。テーブルまたはファイルをクリックすると、その項目に対して監視可能な操作が表示されます。選択した操作が行われると、監査レコードが生成されます。たとえば、"挿入" 操作を選択した場合は、監視対象のテーブルまたはファイルへの挿入が成功すると、挿入の方法を問わず、監査レコードが生成されます。
Demodata サンプル データベースを監視する次の例では、Billing テーブルが選択されており、このテーブルがグループに追加されたときにデフォルトで選択される操作が示されています。
これらの操作に関する選択は、テーブルまたはファイルをグループに追加する際に、そのテーブルまたはファイルごとに別々に設定できます。他の設定の場合と同様に、変更を有効にするには、Zen データベースを再起動する必要があります。
表示されるデフォルト値を変更する方法は、
グローバルに監査する操作を参照してください。
選択した操作が失敗した場合には監査レコードがキャプチャされない点に注意してください。ただし、Audit for Zen では、特定のエラーも監視対象として選択することができます。これにより、それらのエラーのうちの 1 つが失敗した操作の一環として発生した場合は、そのエラーが監査レコードとしてキャプチャされるようになります。
次の例は、ステータス コード 46 を監査対象として選択した場合にキャプチャされた監査レコードを示しています。エラーの場所は Demodata の Dept テーブルであり、このテーブルは監視対象とするグループに追加されたものです。ステータス コード 46 はオーナー ネームが無効であることを示しています。これは、ここでは、不正なオーナー ネームを使用してテーブルを更新しようとしたために発生しています。この更新操作は失敗したため、監査レコードは生成されません。ファイルを更新する 2 回目の試み(今回は有効なオーナー ネームを指定)では、更新を成功させることができるため、変更の前/後の監査レコードが生成されます。
Zen データベースのステータス レコードの監視については、
監査するエラーを参照してください。