적용 대상:SQL Server
SQL Server 감사 기능을 통해 서버 수준 및 데이터베이스 수준의 이벤트 그룹 및 이벤트를 감사할 수 있습니다. 자세한 내용은 SQL Server Audit(데이터베이스 엔진)을 참조하세요. SQL Server.
감사는 감사 대상에 기록되는 0개 이상의 감사 작업 항목으로 구성됩니다. 이진 파일, Windows 애플리케이션 이벤트 로그 또는 Windows 보안 이벤트 로그가 감사 대상이 될 수 있습니다. 대상에 전달된 레코드에는 다음 표에 설명된 요소가 포함될 수 있습니다.
열 이름 | 설명 | Type | 항상 사용 가능 |
---|---|---|---|
event_time | 감사 가능한 작업이 발생한 날짜 및 시간입니다. | datetime2 | 예 |
sequence_number | 너무 커서 감사에 대한 쓰기 버퍼에 맞지 않는 단일 감사 레코드 내의 레코드 시퀀스를 추적합니다. | int | 예 |
action_id | 동작의 ID입니다. 팁: action_id 조건자로 사용하려면 문자열에서 숫자 값으로 변환해야 합니다. 자세한 내용은 action_id/class_type 조건자에서 SQL Server 감사 필터링을 참조하세요. |
varchar(4) | 예 |
succeeded | 이벤트를 트리거한 작업이 성공했는지 여부를 나타냅니다. 로그인 이벤트 이외의 모든 이벤트에 대해 이 작업은 작업이 아닌 권한 검사 성공 또는 실패 여부만 보고합니다. - 1 = 성공 - 0 = 실패 |
bit | 예 |
permission_bitmask | 일부 작업에서 이는 부여, 거부 또는 취소된 권한입니다. | varbinary(16) | 아니요 |
is_column_permission | 열 수준 사용 권한인지 여부를 나타내는 플래그입니다. permission_bitmask = 0이면 0을 반환합니다. - 1 = True - 0 = False |
bit | 아니요 |
session_id | 이벤트가 발생한 세션의 ID입니다. | smallint | 예 |
server_principal_id | 동작을 수행한 로그인 컨텍스트의 ID입니다. | int | 예 |
database_principal_id | 작업을 수행한 데이터베이스 사용자 컨텍스트의 ID입니다. 적용되지 않으면 0을 반환합니다. 예를 들어 서버 작업입니다. | int | 아니요 |
target_server_principal_id | GRANT/DENY/REVOKE 작업이 수행되는 서버 보안 주체입니다. 해당되지 않는 경우 0을 반환합니다. | int | 예 |
target_database_principal_id | GRANT/DENY/REVOKE 작업이 수행되는 데이터베이스 보안 주체입니다. 해당되지 않는 경우 0을 반환합니다. | int | 아니요 |
object_id | 감사가 발생한 엔터티의 ID입니다. 여기에는 다음이 포함됩니다. 서버 개체 databases 데이터베이스 개체 스키마 개체 엔터티가 서버 자체이거나 개체 수준에서 감사가 수행되지 않는 경우 0을 반환합니다. 예를 들어 인증입니다. |
int | 아니요 |
class_type | 감사가 수행되는 감사 가능한 엔터티의 유형입니다. | varchar(2) | 예 |
session_server_principal_name | 세션에 대한 서버 보안 주체입니다. | sysname | 예 |
server_principal_name | 현재 로그인입니다. | sysname | 예 |
server_principal_sid | 현재 로그인 SID입니다. | varbinary(85) | 예 |
database_principal_name | 현재 사용자입니다. | sysname | 아니요 |
target_server_principal_name | 작업의 대상 로그인입니다. 해당되지 않는 경우 NULL을 반환합니다. | sysname | 아니요 |
target_server_principal_sid | 대상 로그인의 SID입니다. 해당되지 않는 경우 NULL을 반환합니다. | varbinary(85) | 아니요 |
target_database_principal_name | 작업의 대상 사용자입니다. 해당되지 않는 경우 NULL을 반환합니다. | sysname | 아니요 |
server_instance_name | 감사가 수행된 서버 인스턴스의 이름입니다. 표준 서버\인스턴스 형식이 사용됩니다. | sysname | 예 |
database_name | 작업이 수행된 데이터베이스 컨텍스트입니다. Nullable입니다. 서버 수준에서 발생하는 감사에 대해 NULL을 반환합니다. | sysname | 아니요 |
schema_name | 동작이 수행된 스키마 컨텍스트입니다. | sysname | 아니요 |
object_name | 감사가 수행된 대상 엔터티의 이름입니다. 여기에는 다음이 포함됩니다. 서버 개체 databases 데이터베이스 개체 스키마 개체 Nullable입니다. 엔터티가 서버 자체이거나 개체 수준에서 감사가 수행되지 않는 경우 NULL을 반환합니다. 예를 들어 인증입니다. |
sysname | 아니요 |
statement | TSQL 문(있는 경우)입니다. 해당되지 않는 경우 NULL을 반환합니다. | nvarchar(4000) | 아니요 |
additional_information | 단일 이벤트에만 적용되는 고유 정보는 XML로 반환됩니다. 감사 가능한 몇 가지 작업에는 이러한 종류의 정보가 포함됩니다. TSQL 스택이 연결된 작업의 경우 한 수준의 TSQL 스택이 XML 형식으로 표시됩니다. XML 형식은 다음과 같습니다. <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack> 프레임 nest_level 프레임의 현재 중첩 수준을 나타냅니다. 모듈 이름은 3부 형식(database_name, schema_name 및 object_name)으로 표시됩니다. 모듈 이름은 구문 분석되어 , , '/' '_x' 와 같은 '\<' 잘못된 xml 문자를 이스케이프'>' 합니다. 로 이스케이프 _xHHHH\_ 됩니다. HHHH는 문자의 4자리 16진수 UCS-2 코드를 의미합니다.Nullable입니다. 이벤트에서 보고한 추가 정보가 없으면 NULL을 반환합니다. |
nvarchar(4000) | 아니요 |
file_name | 레코드가 제공된 감사 로그 파일의 경로 및 이름입니다. | varchar(260) | 예 |
audit_file_offset |
적용 대상: SQL Server만 해당 감사 레코드가 포함된 파일의 버퍼 오프셋입니다. |
bigint | 아니요 |
user_defined_event_id |
적용 대상: SQL Server 2012(11.x) 이상, Azure SQL Database 및 SQL Managed Instance 시스템 이벤트의 경우 NULL에 인수 sp_audit_write 로 전달된 사용자 정의 이벤트 ID(기본값) 및 사용자 정의 이벤트의 경우 0이 아닌 이벤트 ID입니다. 자세한 내용은 sp_audit_write(Transact-SQL)를 참조하세요. |
smallint | 아니요 |
user_defined_information |
적용 대상: SQL Server 2012(11.x) 이상, Azure SQL Database 및 SQL Managed Instance 저장 프로시저를 사용하여 sp_audit_write 감사 로그에 기록하려는 추가 정보를 기록하는 데 사용됩니다. |
nvarchar(4000) | 아니요 |
audit_schema_version | 항상 1 | int | 예 |
sequence_group_id |
적용 대상: SQL Server만 해당 고유 식별자 |
varbinary(85) | 아니요 |
transaction_id |
적용 대상: SQL Server만(2016부터) 한 트랜잭션에서 여러 감사 이벤트를 식별하는 고유 식별자 |
bigint | 아니요 |
client_ip |
적용 대상: Azure SQL Database + SQL Server(2017년부터) 클라이언트 애플리케이션의 원본 IP |
nvarchar(128) | 아니요 |
application_name |
적용 대상: Azure SQL Database + SQL Server(2017년부터) 감사 이벤트를 발생시킨 문을 실행한 클라이언트 애플리케이션의 이름 |
nvarchar(128) | 아니요 |
duration_milliseconds |
적용 대상: Azure SQL Database 및 SQL Managed Instance 쿼리 실행 기간(밀리초) |
bigint | 아니요 |
response_rows |
적용 대상: Azure SQL Database 및 SQL Managed Instance 결과 집합에 반환된 행 수입니다. |
bigint | 아니요 |
affected_rows |
적용 대상: Azure SQL Database만 해당 실행된 문의 영향을 받는 행 수입니다. |
bigint | 아니요 |
connection_id |
적용 대상: Azure SQL Database 및 SQL Managed Instance 서버의 연결 ID |
GUID | 아니요 |
data_sensitivity_information |
적용 대상: Azure SQL Database만 해당 데이터베이스의 분류된 열을 기반으로 감사된 쿼리에서 반환되는 정보 유형 및 민감도 레이블입니다. Azure SQL Database 데이터 검색 및 분류에 대해 자세히 알아보기 |
nvarchar(4000) | 아니요 |
host_name | 클라이언트 연결의 호스트 이름 | nvarchar(128) | 아니요 |
session_context | 연결에 대한 세션 컨텍스트 정보 | nvarchar(4000) | 아니요 |
client_tls_version | 클라이언트 연결에서 사용하는 TLS 버전 번호 | int | 아니요 |
client_tls_version_name | 클라이언트 연결에서 사용하는 TLS 버전 이름 | nvarchar(128) | 아니요 |
database_transaction_id | 데이터베이스 트랜잭션 식별자 | bigint | 아니요 |
ledger_start_sequence_number |
적용 대상: SQL Server 2022 이상 원장 작업에 대한 원장 시작 시퀀스 번호 |
bigint | 아니요 |
external_policy_permissions_checked | 작업 중에 확인된 외부 정책 권한 | nvarchar(4000) | 아니요 |
설명
일부 작업은 작업에 적용할 수 없으므로 열 값을 채울 수 없습니다.
SQL Server 감사는 감사 레코드의 문자 필드에 대한 4,000자의 데이터를 저장합니다. 감사 가능한 작업에서 반환된 additional_information 및 문 값이 4,000자 이상을 반환하는 경우 sequence_number 열은 이 데이터를 기록하기 위한 단일 감사 작업에 대한 여러 레코드를 감사 보고서에 쓰는 데 사용됩니다. 프로세스는 다음과 같습니다.
문 열은 4,000자로 나뉩니다.
SQL Server Audit은 일부 데이터와 함께 감사 레코드에 대한 첫 번째 행으로 기록됩니다. 다른 모든 필드는 각 행에 복제됩니다.
sequence_number 값이 증가합니다.
이 프로세스는 모든 데이터가 기록될 때까지 반복됩니다.
sequence_number 값을 사용하여 행을 순차적으로 읽고 event_Time, action_id 및 session_id 열을 사용하여 데이터를 연결하여 작업을 식별할 수 있습니다.
관련 콘텐츠
- 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.fn_get_audit_file(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)