sys.fn_get_audit_file(Transact-SQL)

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

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

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

인수

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

    • <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

너무 커서 감사에 대한 쓰기 버퍼에 맞지 않는 단일 감사 레코드 내의 레코드 시퀀스를 추적합니다. 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

감사가 수행된 서버 인스턴스의 이름입니다. 표준 서버\인스턴스 형식을 사용합니다.

database_name

sysname

동작이 수행된 데이터베이스 컨텍스트입니다. Null을 허용합니다. 서버 수준에서 수행되는 감사에 대해 NULL을 반환합니다.

schema_name

sysname

동작이 수행된 스키마 컨텍스트입니다. Null을 허용합니다. 스키마 외부에서 수행되는 감사에 대해 NULL을 반환합니다.

object_name

sysname

감사가 수행된 대상 엔터티의 이름입니다. 여기에는 다음이 포함됩니다.

  • 서버 개체

  • 데이터베이스

  • 데이터베이스 개체

  • 스키마 개체

Null을 허용합니다. 엔터티가 서버 자체이거나 개체 수준에서 감사가 수행되지 않으면 Null을 반환합니다(예: 인증).

statement

nvarchar(4000)

TSQL 문이 있는 경우 TSQL 문입니다. Null을 허용합니다. 적용할 수 없으면 NULL을 반환합니다.

additional_information

nvarchar(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_name

varchar(260)

레코드를 가져온 감사 로그 파일의 경로 및 이름입니다. Null을 허용하지 않습니다.

audit_file_offset

bigint

감사 레코드가 포함된 파일의 버퍼 오프셋입니다. Null을 허용하지 않습니다.

user_defined_event_id

smallint

시스템 이벤트의 경우 sp_audit_write. NULL에 대한 인수(기본값)로 전달되고 사용자 정의 이벤트의 경우 0이 아닌 값으로 전달되는 사용자 정의 이벤트 ID입니다. 자세한 내용은 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)

개념

서버 감사 및 서버 감사 사양 만들기