sys.fn_get_audit_file(Transact-SQL)

 

이 항목은 다음에 적용됩니다.예SQL Server(2008부터 시작)아니요Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스

SQL Server에서 서버 감사에 의해 생성된 감사 파일로부터 정보를 반환합니다. 자세한 내용은 SQL Server Audit(데이터베이스 엔진)을 참조하세요.

적용 대상: SQL Server (SQL Server 2008 ~ 현재 버전).

Topic link icon Transact-SQL 구문 표기 규칙

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

file_pattern
읽을 감사 파일 집합의 디렉터리나 경로와 파일 이름을 지정합니다. 형식이 nvarchar (260)합니다. 이 인수에는 경로와 파일 이름이 모두 포함되어야 합니다. 드라이브 문자나 네트워크 공유를 경로로 사용할 수 있으며, 파일 이름에 와일드카드를 사용할 수 있습니다. 별표(*)를 하나 사용하여 감사 파일 집합에서 여러 파일을 수집할 수 있습니다. 예를 들어

  • < 경로>\* 수집-모든 감사 파일에 지정된 된 위치입니다.

  • < 경로>\LoginsAudit_{GUID} 수집-지정 된 이름 및 GUID 쌍 파일을 모든 감사 합니다.

  • < 경로>\LoginsAudit_{GUID}_00_29384.sqlaudit -특정 감사 파일을 수집 합니다.

System_CAPS_ICON_note.jpg 참고


파일 이름 패턴 없이 경로를 전달하면 오류가 생성됩니다.

initial_file_name
감사 파일 집합에서 감사 레코드를 읽기 시작할 특정 파일의 경로와 이름을 지정합니다. 형식이 nvarchar (260)합니다.

System_CAPS_ICON_note.jpg 참고


initial_file_name 인수에 유효한 항목이 또는 기본 있어야 합니다. | NULL 값입니다.

audit_record_offset
initial_file_name에 지정된 파일 기준의 오프셋을 지정합니다. 이 인수를 사용하면 함수가 지정된 오프셋 바로 다음에 있는 버퍼의 첫 번째 레코드에서 읽기를 시작합니다.

System_CAPS_ICON_note.jpg 참고


audit_record_offset 인수에 유효한 항목이 또는 기본 있어야 합니다. | NULL 값입니다. 형식이 bitint합니다.

다음 표에서는 이 함수가 반환할 수 있는 감사 파일 내용에 대해 설명합니다.

열 이름형식Description
event_timedatetime2감사 가능한 동작이 발생한 날짜 및 시간입니다. Null을 허용하지 않습니다.
sequence_numberint너무 커서 감사에 대한 쓰기 버퍼에 맞지 않는 단일 감사 레코드 내의 레코드 시퀀스를 추적합니다. Null을 허용하지 않습니다.
action_idvarchar (4)동작의 ID입니다. Null을 허용하지 않습니다.
succeeded비트

1 = 성공

0 = 실패
이벤트를 발생시킨 동작의 성공 여부를 나타냅니다. Null을 허용하지 않습니다. 로그인 이벤트를 제외한 모든 이벤트의 경우 작업이 아닌 권한 검사의 성공 또는 실패 여부만 보고합니다.
permission_bitmaskvarbinary (16)일부 동작에서 이는 허용, 거부 또는 취소된 사용 권한입니다.
is_column_permission비트

1 = true

0 = false
열 수준 사용 권한임을 나타내는 플래그입니다. Null을 허용하지 않습니다. permission_bitmask가 0이면 0을 반환합니다.
session_idsmallint이벤트가 발생한 세션의 ID입니다. Null을 허용하지 않습니다.
server_principal_idint동작을 수행한 로그인 컨텍스트의 ID입니다. Null을 허용하지 않습니다.
database_principal_idint동작을 수행한 데이터베이스 사용자 컨텍스트의 ID입니다. Null을 허용하지 않습니다. 이것이 적용되지 않으면 0을 반환합니다(예: 서버 작업).
target_server_principal_idintGRANT/DENY/REVOKE 작업이 수행되는 서버 보안 주체입니다. Null을 허용하지 않습니다. 적용되지 않으면 0을 반환합니다.
target_database_principal_idintGRANT/DENY/REVOKE 작업이 수행되는 데이터베이스 보안 주체입니다. Null을 허용하지 않습니다. 적용되지 않으면 0을 반환합니다.
object_idint감사가 수행된 대상 엔터티의 ID입니다. 여기에는 다음이 포함됩니다.

서버 개체

데이터베이스

데이터베이스 개체

스키마 개체

Null을 허용하지 않습니다. 엔터티가 서버 자체이거나 개체 수준에서 감사가 수행되지 않으면 0을 반환합니다(예: 인증).
class_typevarchar(2)감사가 수행되는 감사 가능한 엔터티의 형식입니다. Null을 허용하지 않습니다.
session_server_principal_namesysname세션에 대한 서버 보안 주체입니다. Null을 허용합니다.
server_principal_namesysname현재 로그인입니다. Null을 허용합니다.
server_principal_sidvarbinary현재 로그인 SID입니다. Null을 허용합니다.
database_principal_namesysname현재 사용자입니다. Null을 허용합니다. 사용할 수 없으면 NULL을 반환합니다.
target_server_principal_namesysname동작의 대상 로그인입니다. Null을 허용합니다. 적용할 수 없으면 NULL을 반환합니다.
target_server_principal_sidvarbinary대상 로그인의 SID입니다. Null을 허용합니다. 적용할 수 없으면 NULL을 반환합니다.
target_database_principal_namesysname동작의 대상 사용자입니다. Null을 허용합니다. 적용할 수 없으면 NULL을 반환합니다.
server_instance_namesysname감사가 수행된 서버 인스턴스의 이름입니다. 표준 서버\인스턴스 형식을 사용합니다.
database_namesysname동작이 수행된 데이터베이스 컨텍스트입니다. Null을 허용합니다. 서버 수준에서 수행되는 감사에 대해 NULL을 반환합니다.
schema_namesysname동작이 수행된 스키마 컨텍스트입니다. Null을 허용합니다. 스키마 외부에서 수행되는 감사에 대해 NULL을 반환합니다.
object_namesysname감사가 수행된 대상 엔터티의 이름입니다. 여기에는 다음이 포함됩니다.

서버 개체

데이터베이스

데이터베이스 개체

스키마 개체

Null을 허용합니다. 엔터티가 서버 자체이거나 개체 수준에서 감사가 수행되지 않으면 Null을 반환합니다(예: 인증).
statementnvarchar (4000)TSQL 문이 있는 경우 TSQL 문입니다. Null을 허용합니다. 적용할 수 없으면 NULL을 반환합니다.
additional_informationnvarchar (4000)단일 이벤트에만 적용되는 고유 정보가 XML로 반환됩니다. 감사 가능한 적은 수의 동작에 이 종류의 정보가 포함되어 있습니다.

TSQL 스택이 연결되어 있는 동작에 대해 단일 TSQL 스택 수준이 XML 형식으로 표시됩니다. 이 XML 형식은 다음과 같습니다.

< /></tsql_stack> >< 프레임 nest_level = '%u' database_name = ' %. * s' schema_name = ' %.*s' object_name = ' %.*s' />< / /></tsql_stack> >

프레임 nest_level은 프레임의 현재 중첩 수준을 나타냅니다. 모듈 이름은 세 부분(database_name, schema_name, object_name)으로 된 형식으로 표시됩니다. '<', '>', '/', '_x' 등의 잘못된 xml 문자를 이스케이프하기 위해 모듈 이름을 구문 분석합니다. _XHHHH로 이스케이프 됩니다_합니다. HHHH는 해당 문자에 대한 4자리 16진수 UCS-2 코드를 나타냅니다.

Null을 허용합니다. 이벤트에서 보고한 추가 정보가 없으면 NULL을 반환합니다.
file_namevarchar(260)레코드를 가져온 감사 로그 파일의 경로 및 이름입니다. Null을 허용하지 않습니다.
audit_file_offsetbigint감사 레코드가 포함된 파일의 버퍼 오프셋입니다. Null을 허용하지 않습니다.
user_defined_event_idsmallint적용 대상: SQL Server 2012 부터 SQL Server 2016까지

사용자 정의 이벤트 id를 인수로 전달 sp_audit_write합니다. NULL 시스템 이벤트 (기본값)에 대해 0이 아닌 값에 대 한 사용자 정의 이벤트입니다. 자세한 내용은 참조 sp_audit_write (& a) #40; TRANSACT-SQL )합니다.
user_defined_informationnvarchar (4000)적용 대상: SQL Server 2012 부터 SQL Server 2016까지

사용자가 사용 하 여 감사 로그에 기록 하려는 추가 정보를 기록 하는 데 사용 된 sp_audit_write 저장 프로시저입니다.

하는 경우는 file_pattern 에 인수가 전달 fn_get_audit_file 경로 또는 존재 하지 않는 파일을 참조 하거나 파일이 감사 파일이 없으면는 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 ( 데이터베이스 엔진 )합니다.

서버 감사 및 #40; 만들기 TRANSACT-SQL )
ALTER SERVER AUDIT & #40입니다. TRANSACT-SQL )
DROP SERVER AUDIT & #40입니다. TRANSACT-SQL )
서버 감사 사양 및 #40; 만들기 TRANSACT-SQL )
ALTER SERVER AUDIT SPECIFICATION & #40입니다. TRANSACT-SQL )
서버 감사 사양을 ( 삭제 TRANSACT-SQL )
데이터베이스 감사 사양 및 #40; 만들기 TRANSACT-SQL )
ALTER DATABASE AUDIT SPECIFICATION & #40입니다. TRANSACT-SQL )
데이터베이스 감사 사양을 ( 삭제 TRANSACT-SQL )
ALTER AUTHORIZATION & #40입니다. TRANSACT-SQL )
sys.server_audits & #40입니다. TRANSACT-SQL )
sys.server_file_audits & #40입니다. TRANSACT-SQL )
sys.server_audit_specifications & #40입니다. TRANSACT-SQL )
sys.server_audit_specification_details & #40입니다. TRANSACT-SQL )
sys.database_audit_specifications & #40입니다. TRANSACT-SQL )
sys.database_audit_specification_details & #40입니다. TRANSACT-SQL )
sys.dm_server_audit_status & #40입니다. TRANSACT-SQL )
sys.dm_audit_actions & #40입니다. TRANSACT-SQL )
sys.dm_audit_class_type_map & #40입니다. TRANSACT-SQL )
서버 감사 및 서버 감사 사양 만들기

커뮤니티 추가 항목

추가
표시: