次の方法で共有


sys.fn_get_audit_file (Transact-SQL)

SQL Server のサーバー監査で作成された監査ファイルからの情報を返します。 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)

トピック リンク アイコン Transact-SQL 構文表記規則

構文

fn_get_audit_file ( file_pattern, 
    { default | initial_file_name | NULL }, 
    { default | audit_record_offset | NULL } )

引数

  • file_pattern
    読み取り対象に設定する監査ファイルのディレクトリまたはパスとファイル名を指定します。 型は nvarchar(260) です。 この引数には、パス (ドライブ文字またはネットワーク共有) とファイル名の両方を含める必要があります。ファイル名にはワイルドカードを使用できます。 1 つのアスタリスク (*) を使用すると、監査ファイル セットから複数のファイルを収集することができます。 次に例を示します。

    • <path>\* - 指定した場所にある監査ファイルをすべて収集します。

    • <path>\LoginsAudit_{GUID} - 指定された名前と GUID のペアを持つすべての監査ファイルを収集します。

    • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit - 特定の監査ファイルを収集します。

    注意

    ファイル名のパターンがないパスを渡すとエラーが発生します。

  • initial_file_name
    監査レコードの最初の読み取り元に設定する監査ファイル内の特定のファイルのパスと名前を指定します。 型は nvarchar(260) です。

    注意

    initial_file_name 引数には、有効なエントリか、既定値または NULL 値のいずれかを指定する必要があります。

  • audit_record_offset
    initial_file_name で指定したファイルを使用して既知の場所を指定します。 この引数を使用した場合、関数は、指定されたオフセットの直後にあるバッファーの最初のレコードから読み取りを開始します。

    注意

    audit_record_offset 引数には、有効なエントリか、既定値または NULL 値のいずれかを指定する必要があります。型は bitint です。

返されるテーブル

次の表に、この関数から返される監査ファイルの内容を示します。

列名

説明

event_time

datetime2

監査可能なアクションが発生した日時。 NULL 値は許可されません。

sequence_number

int

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

action_id

varchar(4)

アクションの ID。 NULL 値は許可されません。

succeeded

bit

1 = 成功

0 = 失敗

イベントを発生させたアクションが成功したかどうかを示します。 NULL 値は許可されません。 ログイン イベント以外のすべてのイベントで、操作ではなく、権限チェックが成功したか失敗したかのみを報告します。

permission_bitmask

varbinary(16)

一部のアクションでは、権限の許可、拒否、または取り消しを示します。

is_column_permission

bit

1 = true

0 = false

列レベルの権限かどうかを示すフラグ。 NULL 値は許可されません。 permission_bitmask = 0 の場合は 0 を返します。

session_id

smallint

イベントが発生したセッションの 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

varchar(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

sysname

監査が発生したサーバー インスタンスの名前。 標準の 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 として返されます。 この種類の情報は、少数の監査可能なアクションに含まれます。

TSQL スタックが関連付けられているアクションに関して、XML 形式には、1 レベルの TSQL スタックが表示されます。 この XML 形式は次のとおりです。

<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

frame nest_level は、フレームの現在の入れ子レベルを示します。 モジュール名は 3 つの部分 (database_name、schema_name、object_name) から成る形式で表されます。 モジュール名は解析されて、'<'、'>'、'/'、'_x' などの無効な xml 文字がエスケープされます。 これらの文字は _xHHHH_ としてエスケープされます。 HHHH は、その文字の 4 桁の 16 進数 UCS-2 コードを表しています。

NULL 値が許可されます。 イベントから追加情報が報告されない場合は NULL を返します。

file_name

varchar(260)

レコードの読み取り元の監査ログ ファイルのパスと名前。 NULL 値は許可されません。

audit_file_offset

bigint

監査レコードを含むファイルのバッファー オフセット。 NULL 値は許可されません。

user_defined_event_id

smallint

sp_audit_write に引数として渡されるユーザー定義のイベント ID。 システム イベントの場合は NULL (既定値)、ユーザー定義イベントの場合はゼロ以外です。 詳細については、「sp_audit_write (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 から SQL Server 2014。

user_defined_information

nvarchar(4000)

ユーザーが sp_audit_write ストアド プロシージャを使用して必要に応じて監査ログに記録する追加情報を記録するために使用されます。

適用対象: SQL Server 2012 から SQL Server 2014。

説明

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 Audit (データベース エンジン)」を参照してください。

関連項目

参照

CREATE SERVER AUDIT (Transact-SQL)

ALTER SERVER AUDIT (Transact-SQL)

DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

sys.dm_audit_class_type_map (Transact-SQL)

概念

サーバー監査およびサーバー監査の仕様を作成する方法