次の方法で共有


SQL Server 監査レコード

SQL Server 監査機能を使用すると、サーバー レベルおよびデータベース レベルのイベントのグループおよびイベントを監査することができます。詳細については、「SQL Server 監査について」を参照してください。

監査は、監査ターゲットに記録される 0 個以上の監査アクション項目で構成されます。監査ターゲットには、バイナリ ファイル、Windows アプリケーション イベント ログ、または Windows セキュリティ イベント ログを使用できます。ターゲットに送信されるレコードに含まれる可能性がある要素を次の表に示します。

列名

説明

常に使用可能かどうか

event_time

監査可能なアクションが発生した日付/時刻。

datetime2

可能

sequence_no

大きすぎて監査の書き込みバッファに収まらなかった 1 つの監査レコード内のレコードの順序を追跡します。

int

可能

action_id

アクションの ID。

char(4)

可能

succeeded

イベントを発生させたアクションが成功したかどうかを示します。

bit – 1 = 成功、0 = 失敗

可能

permission_bitmask

権限の許可、拒否、または取り消しを示します (該当する場合)。

bigint

不可能

is_column_permission

列レベル権限を示すフラグ。

bit – 1 = True、0 = False

不可能

session_id

イベントが発生したセッションの ID。

int

可能

server_principal_id

アクションが実行されるログイン コンテキストの ID。

int

可能

database_principal_id

アクションが実行されるデータベース ユーザー コンテキストの ID。

int

不可能

object_ id

監査が発生したエンティティのプライマリ ID。次のエンティティが含まれます。

  • サーバー オブジェクト

  • データベース

  • データベース オブジェクト

  • スキーマ オブジェクト

int

不可能

target_server_principal_id

監査可能なアクションが適用されるサーバー プリンシパル。

int

可能

target_database_principal_id

監査可能なアクションが適用されるデータベース プリンシパル。

int

不可能

class_type

監査が発生する監査可能なエンティティの種類。

char(2)

可能

session_server_principal_name

セッションのサーバー プリンシパル。

sysname

可能

server_principal_name

現在のログイン。

sysname

可能

server_principal_sid

現在のログイン SID。

varbinary

可能

database_principal_name

現在のユーザー。

sysname

不可能

target_server_principal_name

アクションの対象ログイン。

sysname

不可能

target_server_principal_sid

対象ログインの SID。

varbinary

不可能

target_database_principal_name

アクションの対象ユーザー。

sysname

不可能

server_instance_name

監査が発生したサーバー インスタンスの名前。標準の machine\instance の形式を使用します。

nvarchar(120)

可能

database_name

アクションが発生したデータベース コンテキスト。

sysname

不可能

schema_name

アクションが発生したスキーマ コンテキスト。

sysname

不可能

object_name

監査が発生したエンティティの名前。次のエンティティが含まれます。

  • サーバー オブジェクト

  • データベース

  • データベース オブジェクト

  • スキーマ オブジェクト

  • TSQL ステートメント (あれば)

sysname

不可能

statement

TSQL ステートメント (あれば)

nvarchar(4000)

不可能

additional_information

XML として格納されるイベントに関する追加情報。

nvarchar(4000)

不可能

解説

アクションに該当しないために列の値が設定されない場合もあります。

SQL Server 監査は、監査レコードの文字フィールドに 4,000 文字のデータを格納します。監査可能なアクションから返される additional_informationstatement の値が 4,000 文字を超えていた場合は、そのデータを記録するために、sequence_no 列を使用して 1 つの監査アクションの監査レポートに複数のレコードが書き込まれます。このプロセスは次のとおりです。

  • statement 列が 4,000 文字に分割されます。

  • 分割されたデータが監査レコードの最初の行として書き込まれます。他のすべてのフィールドは各行で複製されます。

  • sequence_no の値が増加されます。

  • すべてのデータが記録されるまでこのプロセスが繰り返されます。

このデータに接続するには、sequence_no の値を使用して行を順番に読み取ります。アクションを識別するには、event_Timeaction_id、および session_id の各列を使用します。

関連項目

参照

概念