fn_get_audit_file (Transact-sql)sys.fn_get_audit_file (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

SQL ServerSQL Server のサーバー監査で作成された監査ファイルからの情報を返します。Returns information from an audit file created by a server audit in SQL ServerSQL Server. 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。For more information, see SQL Server Audit (Database Engine).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

file_patternfile_pattern
読み取り対象に設定する監査ファイルのディレクトリまたはパスとファイル名を指定します。Specifies the directory or path and file name for the audit file set to be read. 種類はnvarchar (260) です。Type is nvarchar(260).

  • SQL Server:SQL Server:

    この引数には、パス (ドライブ文字またはネットワーク共有) とファイル名の両方を含める必要があります。ファイル名にはワイルドカードを使用できます。This argument must include both a path (drive letter or network share) and a file name that can include a wildcard. 1つのアスタリスク (*) を使用して、監査ファイルセットから複数のファイルを収集できます。A single asterisk (*) can be used to collect multiple files from an audit file set. 例 :For example:

    • <path>\ * 収集 - すべての監査ファイルが指定された場所にします。<path>\* - Collect all audit files in the specified location.

    • <path> \LoginsAudit_{GUID} 収集 - すべての監査を指定した名前と GUID のペアを持つファイル。<path>\LoginsAudit_{GUID} - Collect all audit files that have the specified name and GUID pair.

    • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.

  • Azure SQL Database または Azure SQL Data Warehouse:Azure SQL Database or Azure SQL Data Warehouse:

    この引数は、blob の URL (ストレージエンドポイントとコンテナーを含む) を指定するために使用されます。This argument is used to specify a blob URL (including the storage endpoint and container). アスタリスクのワイルドカードはサポートされていませんが、完全な blob 名ではなく、部分的なファイル (blob) 名プレフィックスを使用して、このプレフィックスで始まる複数のファイル (blob) を収集できます。While it does not support an asterisk wildcard, you can use a partial file (blob) name prefix (instead of the full blob name) to collect multiple files (blobs) that begin with this prefix. 例 :For example:

    • <Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ -特定のデータベースのすべての監査ファイル (blob) を収集します。<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ - collects all audit files (blobs) for the specific database.

    • <Storage_endpoint>/<<Container>>/<ServerName>/<DatabaseName> / <AuditName>/<CreationDate>/<FileName>.xel -特定の監査ファイル (blob) を収集します。<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel - collects a specific audit file (blob).

注意

ファイル名のパターンがないパスを渡すとエラーが発生します。Passing a path without a file name pattern will generate an error.

initial_file_nameinitial_file_name
監査レコードの読み取りを開始する監査ファイルセット内の特定のファイルのパスと名前を指定します。Specifies the path and name of a specific file in the audit file set to start reading audit records from. 種類はnvarchar (260) です。Type is nvarchar(260).

注意

Initial_file_name引数には、有効なエントリが含まれているか、または default | を含んでいる必要があります。NULL 値。The initial_file_name argument must contain valid entries or must contain either the default | NULL value.

audit_record_offsetaudit_record_offset
Initial_file_name に対して指定されたファイルを持つ既知の場所を指定します。Specifies a known location with the file specified for the initial_file_name. この引数を使用した場合、関数は、指定されたオフセットの直後にあるバッファーの最初のレコードから読み取りを開始します。When this argument is used the function will start reading at the first record of the Buffer immediately following the specified offset.

注意

Audit_record_offset引数には、有効なエントリが含まれているか、または default | を含んでいる必要があります。NULL 値。The audit_record_offset argument must contain valid entries or must contain either the default | NULL value. 型はbigintです。Type is bigint.

返されるテーブルTables Returned

次の表に、この関数から返される監査ファイルの内容を示します。The following table describes the audit file content that can be returned by this function.

列名Column name [型]Type [説明]Description
action_idaction_id varchar (4)varchar(4) アクションの ID。ID of the action. Null 値は許容されません。Not nullable.
additional_informationadditional_information nvarchar (4000)nvarchar(4000) 単一のイベントに対してだけ適用される固有の情報が XML として返されます。Unique information that only applies to a single event is returned as XML. 少数の監査可能なアクションには、この種の情報が含まれています。A small number of auditable actions contain this kind of information.

Tsql スタックが関連付けられているアクションに対して、1レベルの TSQL スタックが XML 形式で表示されます。One level of TSQL stack will be displayed in XML format for actions that have TSQL stack associated with them. XML 形式は次のようになります。The XML format will be:

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

frame nest_level は、フレームの現在の入れ子レベルを示します。Frame nest_level indicates the current nesting level of the frame. モジュール名は、3つの部分形式 (database_name、schema_name と object_name) で表されます。The Module name is represented in three part format (database_name, schema_name and object_name). モジュール名は、'\<''>''/''_x'などの無効な xml 文字をエスケープするために解析されます。The module name will be parsed to escape invalid xml characters like '\<', '>', '/', '_x'. これらは _xHHHH\_としてエスケープされます。They will be escaped as _xHHHH\_. HHHH は、文字の4桁の16進数の UCS 2 コードを表します。The HHHH stands for the four-digit hexadecimal UCS-2 code for the character

NULL 値が許可されます。Is nullable. イベントから追加情報が報告されない場合は NULL を返します。Returns NULL when there is no additional information reported by the event.
affected_rowsaffected_rows bigintbigint 適用対象: AZURE SQL DB のみApplies to: Azure SQL DB only

実行されたステートメントの影響を受けた行の数。Number of rows affected by the executed statement.
application_nameapplication_name nvarchar(128)nvarchar(128) 適用対象: AZURE SQL DB + SQL Server (2017 以降)Applies to: Azure SQL DB + SQL Server (starting with 2017)

監査イベントの原因となったステートメントを実行したクライアントアプリケーションの名前Name of client application which executed the statement that caused the audit event
audit_file_offsetaudit_file_offset bigintbigint 適用対象: SQL Server のみApplies to: SQL Server only

監査レコードを格納しているファイル内のバッファーオフセット。The buffer offset in the file that contains the audit record. NULL 値は許可されません。Is not nullable.
audit_schema_versionaudit_schema_version intint 常に1Always 1
class_typeclass_type varchar(2)varchar(2) 監査が発生する監査可能なエンティティの種類。The type of auditable entity that the audit occurs on. NULL 値は許可されません。Is not nullable.
client_ipclient_ip nvarchar(128)nvarchar(128) 適用対象: AZURE SQL DB + SQL Server (2017 以降)Applies to: Azure SQL DB + SQL Server (starting with 2017)

クライアントアプリケーションのソース IPSource IP of the client application
connection_idconnection_id GUIDGUID 適用対象: AZURE SQL DB とマネージインスタンスApplies to: Azure SQL DB and Managed instance

サーバー内の接続の IDID of the connection in the server
data_sensitivity_informationdata_sensitivity_information nvarchar (4000)nvarchar(4000) 適用対象: AZURE SQL DB のみApplies to: Azure SQL DB only

データベース内の分類済みの列に基づいて、監査対象のクエリによって返される情報の種類と機密ラベル。Information types and sensitivity labels returned by the audited query, based on the classified columns in the database. Azure SQL Database データの検出と分類に関する詳細情報Learn more about Azure SQL Database data discover and classification
database_namedatabase_name sysnamesysname アクションが発生したデータベース コンテキスト。The database context in which the action occurred. NULL 値が許可されます。Is nullable. サーバーレベルで発生する監査の場合は NULL を返します。Returns NULL for audits occurring at the server level.
database_principal_iddatabase_principal_id intint アクションが実行されるデータベース ユーザー コンテキストの ID。ID of the database user context that the action is performed in. NULL 値は許可されません。Is not nullable. この値が適用されない場合は0を返します。Returns 0 if this does not apply. たとえば、サーバー操作などの場合です。For example, a server operation.
database_principal_namedatabase_principal_name sysnamesysname 現在のユーザー。Current user. NULL 値が許可されます。Is nullable. 使用できない場合は NULL を返します。Returns NULL if not available.
duration_millisecondsduration_milliseconds bigintbigint 適用対象: AZURE SQL DB とマネージインスタンスApplies to: Azure SQL DB and Managed instance

クエリ実行時間 (ミリ秒)Query execution duration in milliseconds
event_timeevent_time datetime2datetime2 監査可能なアクションが発生した日時。Date and time when the auditable action is fired. NULL 値は許可されません。Is not nullable.
file_namefile_name varchar(260)varchar(260) レコードの送信元の監査ログファイルのパスと名前。The path and name of the audit log file that the record came from. NULL 値は許可されません。Is not nullable.
is_column_permissionis_column_permission bitbit 列レベルの権限かどうかを示すフラグ。Flag indicating if this is a column level permission. NULL 値は許可されません。Is not nullable. Permission_bitmask が0の場合は0を返します。Returns 0 when the permission_bitmask = 0.
1 = true1 = true
0 = false0 = false
object_idobject_id intint 監査が発生したエンティティの ID。The ID of the entity on which the audit occurred. これには、次の内容が含まれます。This includes the following:
サーバーオブジェクトServer objects
データベースDatabases
データベース オブジェクトDatabase objects
スキーマ オブジェクトSchema objects
NULL 値は許可されません。Is not nullable. エンティティがサーバー自体である場合、または監査がオブジェクト レベルで実行されない場合は 0 を返します。Returns 0 if the entity is the Server itself or if the audit is not performed at an object level. たとえば、認証などの場合です。For example, Authentication.
object_nameobject_name sysnamesysname 監査が発生したエンティティの名前。The name of the entity on which the audit occurred. これには、次の内容が含まれます。This includes the following:
サーバーオブジェクトServer objects
データベースDatabases
データベース オブジェクトDatabase objects
スキーマ オブジェクトSchema objects
NULL 値が許可されます。Is nullable. エンティティがサーバー自体である場合、または監査がオブジェクト レベルで実行されない場合は NULL を返します。Returns NULL if the entity is the Server itself or if the audit is not performed at an object level. たとえば、認証などの場合です。For example, Authentication.
permission_bitmaskpermission_bitmask varbinary(16)varbinary(16) 一部のアクションでは、権限の許可、拒否、または取り消しを示します。In some actions, this is the permissions that were grant, denied, or revoked.
response_rowsresponse_rows bigintbigint 適用対象: AZURE SQL DB とマネージインスタンスApplies to: Azure SQL DB and Managed instance

結果セットで返される行の数。Number of rows returned in the result set.
schema_nameschema_name sysnamesysname アクションが発生したスキーマ コンテキスト。The schema context in which the action occurred. NULL 値が許可されます。Is nullable. スキーマの外部で発生する監査の場合は NULL を返します。Returns NULL for audits occurring outside a schema.
sequence_group_idsequence_group_id varbinaryvarbinary 適用対象: SQL Server のみ (2016 以降)Applies to: SQL Server only (starting with 2016)

一意識別子Unique identifier
sequence_numbersequence_number intint 大きすぎて監査の書き込みバッファーに収まらなかった 1 つの監査レコード内のレコードの順序を追跡します。Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. NULL 値は許可されません。Is not nullable.
server_instance_nameserver_instance_name sysnamesysname 監査が発生したサーバー インスタンスの名前。Name of the server instance where the audit occurred. 標準の server\instance 形式が使用されます。The standard server\instance format is used.
server_principal_idserver_principal_id intint アクションが実行されるログイン コンテキストの ID。ID of the login context that the action is performed in. NULL 値は許可されません。Is not nullable.
server_principal_nameserver_principal_name sysnamesysname 現在のログイン。Current login. NULL 値が許可されます。Is nullable.
server_principal_sidserver_principal_sid varbinaryvarbinary 現在のログイン SID。Current login SID. NULL 値が許可されます。Is nullable.
session_idsession_id smallintsmallint イベントが発生したセッションの ID。ID of the session on which the event occurred. NULL 値は許可されません。Is not nullable.
session_server_principal_namesession_server_principal_name sysnamesysname セッションのサーバープリンシパル。Server principal for session. NULL 値が許可されます。Is nullable.
statementstatement nvarchar (4000)nvarchar(4000) TSQL ステートメント (存在する場合)。TSQL statement if it exists. NULL 値が許可されます。Is nullable. 該当しない場合は NULL を返します。Returns NULL if not applicable.
succeededsucceeded bitbit イベントをトリガーしたアクションが成功したかどうかを示します。Indicates whether the action that triggered the event succeeded. NULL 値は許可されません。Is not nullable. ログイン イベント以外のすべてのイベントで、操作ではなく、権限チェックが成功したか失敗したかのみを報告します。For all events other than login events, this only reports whether the permission check succeeded or failed, not the operation.
1 = 成功1 = success
0 = 失敗0 = fail
target_database_principal_idtarget_database_principal_id intint GRANT/DENY/REVOKE 操作が実行されるデータベースプリンシパル。The database principal the GRANT/DENY/REVOKE operation is performed on. NULL 値は許可されません。Is not nullable. 該当しない場合は0を返します。Returns 0 if not applicable.
target_database_principal_nametarget_database_principal_name sysnamesysname アクションの対象ユーザー。Target user of action. NULL 値が許可されます。Is nullable. 該当しない場合は NULL を返します。Returns NULL if not applicable.
target_server_principal_idtarget_server_principal_id intint GRANT/DENY/REVOKE 操作が実行されるサーバー プリンシパル。Server principal that the GRANT/DENY/REVOKE operation is performed on. NULL 値は許可されません。Is not nullable. 該当しない場合は0を返します。Returns 0 if not applicable.
target_server_principal_nametarget_server_principal_name sysnamesysname アクションの対象ログイン。Target login of action. NULL 値が許可されます。Is nullable. 該当しない場合は NULL を返します。Returns NULL if not applicable.
target_server_principal_sidtarget_server_principal_sid varbinaryvarbinary ターゲットログインの SID。SID of target login. NULL 値が許可されます。Is nullable. 該当しない場合は NULL を返します。Returns NULL if not applicable.
transaction_idtransaction_id bigintbigint 適用対象: SQL Server のみ (2016 以降)Applies to: SQL Server only (starting with 2016)

1つのトランザクションで複数の監査イベントを識別するための一意の識別子Unique identifier to identify multiple audit events in one transaction
user_defined_event_iduser_defined_event_id smallintsmallint 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降、AZURE SQL DB、マネージインスタンスApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DB and Managed instance

Sp_audit_writeに引数として渡されたユーザー定義イベント id。User defined event id passed as an argument to sp_audit_write. システムイベント (既定値) の場合はNULL 、ユーザー定義イベントの場合は0以外。NULL for system events (default) and non-zero for user-defined event. 詳細については、「 transact-sql ()の sp_audit_write」を参照してください。For more information, see sp_audit_write (Transact-SQL).
user_defined_informationuser_defined_information nvarchar (4000)nvarchar(4000) 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降、AZURE SQL DB、マネージインスタンスApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DB and Managed instance

Sp_audit_writeストアドプロシージャを使用して、監査ログに記録する必要のある追加情報を記録するために使用します。Used to record any extra information the user wants to record in audit log by using the sp_audit_write stored procedure.

RemarksRemarks

Fn_get_audit_fileに渡されたfile_pattern引数が、存在しないパスまたはファイルを参照している場合、またはファイルが監査ファイルでない場合は、 MSG_INVALID_AUDIT_FILEエラーメッセージが返されます。If the file_pattern argument passed to fn_get_audit_file references a path or file that does not exist, or if the file is not an audit file, the MSG_INVALID_AUDIT_FILE error message is returned.

アクセス許可Permissions

  • SQL Server: CONTROL Server権限が必要です。SQL Server: Requires the CONTROL SERVER permission.
  • AZURE SQL DB: CONTROL DATABASE権限が必要です。Azure SQL DB: Requires the CONTROL DATABASE permission.
    • サーバー管理者は、サーバー上のすべてのデータベースの監査ログにアクセスできます。Server admins can access audit logs of all databases on the server.
    • 非サーバー管理者は、現在のデータベースからの監査ログにのみアクセスできます。Non server admins can only access audit logs from the current database.
    • 上記の条件を満たしていない blob はスキップされます (スキップされた blob の一覧がクエリ出力メッセージに表示されます)。関数は、アクセスが許可されている blob からのログのみを返します。Blobs that do not meet the above criteria will be skipped (a list of skipped blobs will be displayed in the query output message), and the function will return logs only from blobs for which access is allowed.

使用例Examples

  • SQL ServerSQL Server

    この例では、\\serverName\Audit\HIPAA_AUDIT.sqlaudit という名前のファイルから読み取ります。This example reads from a file that is named \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

    SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPAA_AUDIT.sqlaudit',default,default);  
    GO  
    
  • Azure SQL データベースAzure SQL Database

    この例では、ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xelという名前のファイルを読み取ります。This example reads from a file that is named ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel:

    SELECT * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel',default,default);
    GO  
    

    この例で、追加の T-SQL 句を使用した前述のように、同じファイルから読み取ります (TOPORDER BY、およびWHERE句によって返される監査レコードをフィルター処理するため、関数の場合):This example reads from the same file as above, but with additional T-SQL clauses (TOP, ORDER BY, and WHERE clause for filtering the audit records returned by the function):

    SELECT TOP 10 * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel',default,default)
    WHERE server_principal_name = 'admin1'
    ORDER BY event_time
    GO
    

    この例では、Shで始まるサーバーからすべての監査ログを読み取ります。This example reads all audit logs from servers that begin with Sh:

    SELECT * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/Sh',default,default);
    GO  
    

監査を作成する方法の完全な例については、「SQL Server Audit (Database Engine)」をご覧ください。For a full example about how to create an audit, see SQL Server Audit (Database Engine).

Azure SQL Database 監査の設定の詳細については、「 SQL Database 監査の概要」を参照してください。For information on setting up Azure SQL Database auditing, see Get Started with SQL Database auditing.

参照See Also

CREATE SERVER AUDIT (Transact-SQL) CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL) ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL) DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL) CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL) ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL) DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL) CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL) ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL) DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL) ALTER AUTHORIZATION (Transact-SQL)
sys.server_audits (Transact-SQL) sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL) sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL) sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL) sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL) sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL) sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL) sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL) sys.dm_audit_actions (Transact-SQL)
sys.dm_audit_class_type_map (Transact-SQL) sys.dm_audit_class_type_map (Transact-SQL)
サーバー監査およびサーバー監査の仕様を作成する方法Create a Server Audit and Server Audit Specification