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 |
監査が発生したエンティティの名前。次のエンティティが含まれます。
|
sysname |
不可能 |
statement |
TSQL ステートメント (あれば) |
nvarchar(4000) |
不可能 |
additional_information |
XML として格納されるイベントに関する追加情報。 |
nvarchar(4000) |
不可能 |
解説
アクションに該当しないために列の値が設定されない場合もあります。
SQL Server 監査は、監査レコードの文字フィールドに 4,000 文字のデータを格納します。監査可能なアクションから返される additional_information と statement の値が 4,000 文字を超えていた場合は、そのデータを記録するために、sequence_no 列を使用して 1 つの監査アクションの監査レポートに複数のレコードが書き込まれます。このプロセスは次のとおりです。
statement 列が 4,000 文字に分割されます。
分割されたデータが監査レコードの最初の行として書き込まれます。他のすべてのフィールドは各行で複製されます。
sequence_no の値が増加されます。
すべてのデータが記録されるまでこのプロセスが繰り返されます。
このデータに接続するには、sequence_no の値を使用して行を順番に読み取ります。アクションを識別するには、event_Time、action_id、および session_id の各列を使用します。
関連項目