fn_get_audit_file (Transact-SQL)
サーバー監査で作成された監査ファイルからの情報を返します。詳細については、「SQL Server 監査について」を参照してください。
構文
fn_get_audit_file ( file_pattern, {default | initial_file_name | NULL }, {default | audit_file_offset | NULL } )
引数
file_pattern
読み取り対象に設定する監査ファイルのディレクトリまたはパスとファイル名を指定します。この引数には、パス (ドライブ文字またはネットワーク共有) とファイル名の両方を含める必要があります。ファイル名にはワイルドカードを使用できます。1 つのアスタリスク (*) を使用すると、監査ファイル セットから複数のファイルを収集することができます。次に例を示します。<path>\* - 指定した場所にある監査ファイルをすべて収集します。
<path>\LoginsAudit_{GUID} - 指定した名前と GUID の組を持つ監査ファイルをすべて収集します。
<path>\LoginsAudit_{GUID}_00_29384.sqlaudit - 特定の監査ファイルを収集します。
注 ファイル名のパターンがないパスを渡すとエラーが発生します。
initial_file_name
監査レコードの最初の読み取り元に設定する監査ファイル内の特定のファイルのパスと名前を指定します。注 initial_file_name 引数には、有効なエントリか、既定値または NULL 値のいずれかを指定する必要があります。
audit_file_offset
initial_file_name で指定したファイルを使用して既知の場所を指定します。この引数を使用した場合、関数は、指定されたオフセットの直後にあるバッファの最初のレコードから読み取りを開始します。注 audit_file_offset 引数には、有効なエントリか、既定値または NULL 値のいずれかを指定する必要があります。
返されるテーブル
次の表に、この関数から返される監査ファイルの内容を示します。
列名 |
型 |
説明 |
---|---|---|
event_time |
datetime2 |
監査可能なアクションが発生した日時。NULL 値は許可されません。 |
sequence_number |
int |
大きすぎて監査の書き込みバッファに収まらなかった 1 つの監査レコード内のレコードの順序を追跡します。NULL 値は許可されません。 |
action_id |
char(4) |
アクションの ID。NULL 値は許可されません。 |
succeeded |
bit 1 = 成功 0 = 失敗 |
イベントを発生させたアクションが成功したかどうかを示します。NULL 値は許可されません。ログイン イベント以外のすべてのイベントで、操作ではなく、権限チェックが成功したか失敗したかのみを報告します。 |
permission_bitmask |
bigint |
一部のアクションでは、権限の許可、拒否、または取り消しを示します。 |
is_column_permission |
bit 1 = true 0 = false |
列レベルの権限かどうかを示すフラグ。NULL 値は許可されません。permission_bitmask = 0 の場合は 0 を返します。 |
session_id |
int |
イベントが発生したセッションの ID。NULL 値は許可されません。 |
server_principal_id |
int |
アクションが実行されるログイン コンテキストの ID。NULL 値は許可されません。 |
database_principal_id |
int |
アクションが実行されるデータベース ユーザー コンテキストの ID。NULL 値は許可されません。該当しない場合は 0 を返します。たとえば、サーバー操作などの場合です。 |
target_server_principal_id |
int |
GRANT/DENY/REVOKE 操作が実行されるサーバー プリンシパル。NULL 値は許可されません。該当しない場合は 0 を返します。 |
target_database_principal_id |
int |
GRANT/DENY/REVOKE 操作が実行されるデータベース プリンシパル。NULL 値は許可されません。該当しない場合は 0 を返します。 |
object_id |
int |
監査が発生したエンティティの ID。次のようなエンティティが含まれます。
NULL 値は許可されません。エンティティがサーバー自体である場合、または監査がオブジェクト レベルで実行されない場合は 0 を返します。たとえば、認証などの場合です。 |
class_type |
char(2) |
監査が発生する監査可能なエンティティの種類。NULL 値は許可されません。 |
session_server_principal_name |
sysname |
セッションのサーバー プリンシパル。NULL 値は許可されます。 |
server_principal_name |
sysname |
現在のログイン。NULL 値は許可されます。 |
server_principal_sid |
varbinary |
現在のログイン SID。NULL 値は許可されます。 |
database_principal_name |
sysname |
現在のユーザー。NULL 値は許可されます。使用できない場合は NULL を返します。 |
target_server_principal_name |
sysname |
アクションの対象ログイン。NULL 値は許可されます。該当しない場合は NULL を返します。 |
target_server_principal_sid |
varbinary |
対象ログインの SID。NULL 値は許可されます。該当しない場合は NULL を返します。 |
target_database_principal_name |
sysname |
アクションの対象ユーザー。NULL 値は許可されます。該当しない場合は NULL を返します。 |
server_instance_name |
nvarchar(120) |
監査が発生したサーバー インスタンスの名前。標準の server\instance の形式が使用されます。 |
database_name |
sysname |
アクションが発生したデータベース コンテキスト。NULL 値は許可されます。監査がサーバー レベルで発生した場合は NULL を返します。 |
schema_name |
sysname |
アクションが発生したスキーマ コンテキスト。NULL 値は許可されます。監査がスキーマの外部で発生した場合は NULL を返します。 |
object_name |
sysname |
監査が発生したエンティティの名前。次のようなエンティティが含まれます。
NULL 値は許可されます。エンティティがサーバー自体である場合、または監査がオブジェクト レベルで実行されない場合は NULL を返します。たとえば、認証などの場合です。 |
statement |
nvarchar(4000) |
TSQL ステートメント (存在する場合)。NULL 値は許可されます。該当しない場合は NULL を返します。 |
additional_information |
nvarchar(4000) |
単一のイベントに対してだけ適用される固有の情報が XML として返されます。この種類の情報は、少数の監査可能なアクションに含まれます。 NULL 値は許可されます。イベントから追加情報が報告されない場合は NULL を返します。 |
file_name |
varchar(260) |
レコードの読み取り元の監査ログ ファイルのパスと名前。NULL 値は許可されません。 |
audit_file_offset |
bigint |
監査レコードを含むファイルのバッファ オフセット。NULL 値は許可されません。 |
説明
fn_get_audit_file に渡された file_pattern 引数で、存在しないパスまたはファイルを参照している場合、あるいはファイルが監査ファイルでない場合は、MSG_INVALID_AUDIT_FILE エラー メッセージが返されます。
権限
CONTROL SERVER 権限が必要です。
例
この例では、\\serverName\Audit\HIPPA_AUDIT.sqlaudit という名前のファイルから読み取ります。
SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPPA_AUDIT.sqlaudit',default,default);
GO
監査を作成する方法の完全な例については、「SQL Server 監査について」を参照してください。
関連項目