SQL Server Audit 레코드SQL Server Audit Records

SQL ServerSQL Server Audit 기능을 통해 서버 수준 및 데이터베이스 수준의 이벤트와 이벤트 그룹을 감사할 수 있습니다.The SQL ServerSQL Server Audit feature enables you to audit server-level and database-level groups of events and events. 자세한 내용은 SQL Server Audit(데이터베이스 엔진)을 참조하세요.For more information, see SQL Server Audit (Database Engine). SQL ServerSQL Server을 참조하세요..

감사는 0개 이상의 감사 동작 항목으로 구성되어 있으며 이들은 감사 대상에 기록됩니다.Audits consist of zero or more audit action items, which are recorded to an audit target. 이진 파일, Windows 응용 프로그램 이벤트 로그 또는 Windows 보안 이벤트 로그가 감사 대상이 될 수 있습니다.The audit target can be a binary file, the Windows Application event log, or the Windows Security event log. 대상에 전달된 레코드에는 다음 표에 설명된 요소가 포함될 수 있습니다.The records sent to the target can contain the elements described in the following table:

열 이름Column name 설명Description 형식Type 항상 사용 가능 여부Always available
event_timeevent_time 감사 가능한 동작이 발생한 날짜/시간입니다.Date/time when the auditable action is fired. datetime2datetime2 Yes
sequence_nosequence_no 너무 커서 감사에 대한 쓰기 버퍼에 맞지 않는 단일 감사 레코드 내의 레코드 시퀀스를 추적합니다.Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. intint Yes
action_idaction_id 동작의 ID입니다.ID of the action

팁: action_id 를 조건자로 사용하려면 문자열에서 숫자 값으로 변환해야 합니다.Tip: To use action_id as a predicate it must be converted from a character string to a numeric value. 자세한 내용은 action_id/class_type 조건자에서 SQL Server 감사 필터링을 참조하세요.For more information, see Filter SQL Server Audit on action_id / class_type predicate.
varchar(4)varchar(4) Yes
succeededsucceeded 감사 이벤트를 트리거하는 동작의 사용 권한 검사가 성공했는지 아니면 실패했는지 여부를 나타냅니다.Indicates whether or not the permission check of the action triggering the audit event succeeded or failed. bitbit
–1 = 성공,– 1 = Success,
0 = 실패0 = Fail
Yes
permission_bitmaskpermission_bitmask 해당되는 경우 부여, 거부 또는 취소된 사용 권한을 표시합니다.When applicable, shows the permissions that were granted, denied, or revoked bigintbigint 아니요No
is_column_permissionis_column_permission 열 수준 사용 권한을 나타내는 플래그입니다.Flag indicating a column level permission bitbit
–1 = True,– 1 = True,
0 = False0 = False
아니요No
session_idsession_id 이벤트가 발생한 세션의 ID입니다.ID of the session on which the event occurred. intint Yes
server_principal_idserver_principal_id 동작을 수행한 로그인 컨텍스트의 ID입니다.ID of the login context that the action is performed in. intint Yes
database_principal_iddatabase_principal_id 동작을 수행한 데이터베이스 사용자 컨텍스트의 ID입니다.ID of the database user context that the action is performed in. intint 아니요No
object_ idobject_ id 감사가 수행된 엔터티의 주 ID이며The primary ID of the entity on which the audit occurred. 이 ID는 다음이 될 수 있습니다.This ID can be:

서버 개체server objects

데이터베이스databases

데이터베이스 개체database objects

스키마 개체schema objects
intint 아니요No
target_server_principal_idtarget_server_principal_id 감사 가능한 동작이 적용되는 서버 보안 주체입니다.Server principal that the auditable action applies to. intint Yes
target_database_principal_idtarget_database_principal_id 감사 가능한 동작이 적용되는 데이터베이스 보안 주체입니다.Database principal that the auditable action applies to. intint 아니요No
class_typeclass_type 감사가 수행되는 감사 가능한 엔터티의 형식입니다.Type of auditable entity that the audit occurs on. varchar(2)varchar(2) Yes
session_server_principal_namesession_server_principal_name 세션의 서버 보안 주체입니다.Server principal for the session. sysnamesysname Yes
server_principal_nameserver_principal_name 현재 로그인입니다.Current login. sysnamesysname Yes
server_principal_sidserver_principal_sid 현재 로그인 SID입니다.Current login SID. varbinaryvarbinary Yes
database_principal_namedatabase_principal_name 현재 사용자입니다.Current user. sysnamesysname 아니요No
target_server_principal_nametarget_server_principal_name 동작의 대상 로그인입니다.Target login of the action. sysnamesysname 아니요No
target_server_principal_sidtarget_server_principal_sid 대상 로그인의 SID입니다.SID of the target login. varbinaryvarbinary 아니요No
target_database_principal_nametarget_database_principal_name 동작의 대상 사용자입니다.Target user of the action. sysnamesysname 아니요No
server_instance_nameserver_instance_name 감사가 수행된 서버 인스턴스의 이름입니다.Name of the server instance where the audit occurred. 표준 machine\instance 형식을 사용합니다.Uses the standard machine\instance format. nvarchar(120)nvarchar(120) Yes
database_namedatabase_name 동작이 수행된 데이터베이스 컨텍스트입니다.The database context in which the action occurred. sysnamesysname 아니요No
schema_nameschema_name 동작이 수행된 스키마 컨텍스트입니다.The schema context in which the action occurred. sysnamesysname 아니요No
object_nameobject_name 감사가 수행된 대상 엔터티의 이름입니다.The name of the entity on which the audit occurred. 이 이름은 다음이 될 수 있습니다.This name can be:

서버 개체server objects

데이터베이스databases

데이터베이스 개체database objects

스키마 개체schema objects

TSQL 문(있는 경우)TSQL statement (if any)
sysnamesysname 아니요No
statementstatement TSQL 문(있는 경우)TSQL statement (if any) nvarchar(4000)nvarchar(4000) 아니요No
additional_informationadditional_information 이벤트에 대한 추가 정보이며 XML로 저장됩니다.Any additional information about the event, stored as XML. nvarchar(4000)nvarchar(4000) 아니요No

주의Remarks

일부 동작은 적용되지 않을 수 있는 열 값을 채우지 않습니다.Some actions do not populate a column's value because it might be non-applicable to the action.

SQL ServerSQL Server Audit는 감사 레코드의 문자 필드 하나당 4000자의 데이터를 저장합니다. Audit stores 4000 characters of data for character fields in an audit record. 감사 가능한 동작에서 반환된 additional_informationstatement 값이 4000자를 넘는 경우 sequence_no 열을 사용하여 단일 감사 동작에 대한 감사 보고서에 여러 레코드를 작성함으로써 이 데이터를 기록합니다.When the additional_information and statement values returned from an auditable action return more than 4000 characters, the sequence_no column is used to write multiple records into the audit report for a single audit action to record this data. 프로세스는 다음과 같습니다.The process is as follows:

  • statement 열이 4000자씩 나누어집니다.The statement column is divided into 4000 characters.

  • SQL ServerSQL Server Audit는 일부 데이터와 함께 감사 레코드에 대한 첫 번째 행으로 기록됩니다. Audit writes as the first row for the audit record with the partial data. 다른 모든 필드는 각 행에 복제됩니다.All the other fields are duplicated in each row.

  • sequence_no 값이 증가합니다.The sequence_no value is incremented.

  • 모든 데이터가 기록될 때까지 이 프로세스가 반복됩니다.This process is repeated until all the data is recorded.

    sequence_no 값을 사용하여 행을 순서대로 읽고 event_Time, action_idsession_id 열을 사용하여 동작을 식별함으로써 데이터를 연결할 수 있습니다.You can connect the data by reading the rows sequentially using the sequence_no value, and the event_Time, action_id and session_id columns to identify the action.

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.fn_get_audit_file(Transact-SQL)sys.fn_get_audit_file (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)