NormalTable
ありAuditNormalTable
ます。
NormalTable
ありAuditNormalTable
ます。
回答:
監査テーブルは、特定のテーブルに対するトランザクションを追跡するために使用されます。彼らはあなたが継続的な「ログ」を見ることができます(より良い言葉の欠如のため)。たとえば、次のようなテーブルがあるとします。
create table SensitiveInformation
(
SensitiveNumber int not null,
SensitiveData varchar(100) not null
)
go
そのテーブルから挿入、更新、削除するアクセス権を持つユーザーやアプリケーションが存在する場合があります。ただし、そのデータは機密性が高いため、そのテーブルで誰が何をしているのかをすばやく簡単に追跡したい場合があります。
したがって、そのテーブルで行われていることを追跡する監査テーブルがあります。通常、基本的なWho、What、Whenが含まれます。
監査テーブルは次のようになります。
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
フィールドUPDATE
やINSERT
かDELETE
?
監査テーブルは通常、機密/機密テーブルの変更を追跡する場合に使用されます。賃金率と賞与率に使用されるテーブルがあり、HRアプリケーションがこのデータに基づいて給与を報酬する場合、このテーブルへの書き込みアクセス権を持つユーザーは不正な支払い変更を行うことができます。
同時に、一部のユーザーはこれらのテーブルでの作業を許可する必要があります。これが監査テーブルの出番です。監査テーブルを使用して、変更されたデータの前後の値を追跡できます。通常は、変更を行った人や変更が行われた時間などの追加情報も保存します。
したがって、これらの監査テーブルは、権限のないユーザーによる権限のないアクティビティの実行を阻止します。また、正しい値に戻す手段も提供します。
SQL 2008以降には、これに使用できるChange Data Captureと呼ばれる機能が組み込まれています。
監査テーブルは、データベースで発生したデータ変更をキャプチャするネイティブまたはサードパーティの監査ツールによって使用されます。通常、変更者、変更の影響を受けたオブジェクト、変更日時、および変更を行うために使用されるSQLログイン、アプリケーション、およびホスト。キャプチャされた情報はすべて監査テーブルに保存され、エクスポートまたはクエリを介してユーザーフレンドリな形式で利用できるようにする必要があります。