監査テーブルとは何ですか?


24

監査テーブルとは何ですか?

彼らはどのように便利ですか?

この記事を読んで彼らに出会いました。


2
それらは通常のテーブルです。それらを「監査テーブル」にするのは、それらをどのように使用し、何を入れるかです。
ニックチャマス

1
それらは同じではありません。監査対象のテーブルとは別の監査テーブルがあります。したがって、2つのテーブルがNormalTableありAuditNormalTableます。
トーマスストリンガー

1
マット、シャークはあなたの答えを持っています。@Shark、私は監査テーブルが特別なデータベース構造ではないという点を強調していました(OPはそれを信じているかもしれないという印象を受けたので)。これは、開発者が特定の情報を追跡するために作成および使用する別のテーブルです。
ニックチャマス

@NickChammas絶対に、私はあなたの意味を完全に理解しました。しかし、OPのコメントでは、彼はそうは思わなかった。
トーマスストリンガー

辞書の監査の意味を考慮すると、おそらく「監査表」は誤った呼び名であるという結論に達するでしょう。監査はデータベースの外部にある必要があります。アプリケーションビジネス自体によってコーディングされている場合、どのように監査することができますか?
いつか

回答:


22

監査テーブルは、特定のテーブルに対するトランザクションを追跡するために使用されます。彼らはあなたが継続的な「ログ」を見ることができます(より良い言葉の欠如のため)。たとえば、次のようなテーブルがあるとします。

create table SensitiveInformation
(
    SensitiveNumber int not null,
    SensitiveData varchar(100) not null
)
go

そのテーブルから挿入、更新、削除するアクセス権を持つユーザーやアプリケーションが存在する場合があります。ただし、そのデータは機密性が高いため、そのテーブルで誰が何をしているのかをすばやく簡単に追跡したい場合があります。

したがって、そのテーブルで行われていることを追跡する監査テーブルがあります。通常、基本的なWhoWhatWhenが含まれます。

監査テーブルは次のようになります。

create table SensitiveInformationAudit
(
    SensitiveNumberNew int null,
    SensitiveNumberOld int null,
    SensitiveDataNew varchar(100) null,
    SensitiveDataOld varchar(100) null,
    Action varchar(50) not null,
    AuditDate datetime not null,
    LastUpdatedUser varchar(100) not null
)
go

監査テーブルは通常、データベーストリガーを使用して入力されます。つまり、Xアクションが発生したときにSensitiveInformation、その詳細をに挿入しSensitiveInformationAuditます。


あるActionフィールドUPDATEINSERTDELETE
leeand00

24

これまで強調されていない監査テーブルのもう1つの重要な側面は、誰がどのレコード(スナップショットの前後を含むことが多い)を追跡することに加えて、監査テーブルがライトワンスであることです。

監査テーブルのレコードは更新または削除されず(注を参照)、挿入のみ可能です。これは、トリガーまたはアプリケーションロジックを使用して課せられる場合がありますが、検出が困難な方法で何も改ざんされていないことを「証明」するため、実際には重要です。

注:監査テーブルから古いレコードを削除するには、多くの場合、管理者または監査人による承認が必要な特別なプロセスが必要です。


4

監査テーブルは通常、機密/機密テーブルの変更を追跡する場合に使用されます。賃金率と賞与率に使用されるテーブルがあり、HRアプリケーションがこのデータに基づいて給与を報酬する場合、このテーブルへの書き込みアクセス権を持つユーザーは不正な支払い変更を行うことができます。

同時に、一部のユーザーはこれらのテーブルでの作業を許可する必要があります。これが監査テーブルの出番です。監査テーブルを使用して、変更されたデータの前後の値を追跡できます。通常は、変更を行った人や変更が行われた時間などの追加情報も保存します。

したがって、これらの監査テーブルは、権限のないユーザーによる権限のないアクティビティの実行を阻止します。また、正しい値に戻す手段も提供します。

SQL 2008以降には、これに使用できるChange Data Captureと呼ばれる機能が組み込まれています。


2
悲しいことに、変更を行ったユーザーをキャプチャできないため、変更データのキャプチャは監査にとってひどいです(既にデータベースに保存している場合を除く)。
HLGEM

0

監査テーブルは、データベースで発生したデータ変更をキャプチャするネイティブまたはサードパーティの監査ツールによって使用されます。通常、変更者、変更の影響を受けたオブジェクト、変更日時、および変更を行うために使用されるSQLログイン、アプリケーション、およびホスト。キャプチャされた情報はすべて監査テーブルに保存され、エクスポートまたはクエリを介してユーザーフレンドリな形式で利用できるようにする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.