sys.fn_get_audit_file (Transact-SQL)
サーバー監査で作成された監査ファイルからの情報を返します。 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。
構文
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)」を参照してください。 |
user_defined_information |
nvarchar(4000) |
ユーザーが sp_audit_write ストアド プロシージャを使用して必要に応じて監査ログに記録する追加情報を記録するために使用されます。 |
説明
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)