다음을 통해 공유


sys.event_log(Azure SQL Database)

적용 대상: Azure SQL Database

성공적인 Azure SQL Database 데이터베이스 연결 및 연결 실패를 반환합니다. 이 정보를 사용하여 데이터베이스 활동을 추적하거나 문제를 해결할 수 있습니다.

주의

많은 수의 데이터베이스 및/또는 많은 수의 로그인이 있는 논리 서버의 경우 sys.event_log 쿼리하면 master 데이터베이스에서 리소스 사용량이 높아 로그인 실패가 발생할 수 있습니다. 이 문제의 영향을 줄이려면 sys.event_log 쿼리를 제한합니다.

sys.event_log 뷰는 다음 열을 포함합니다.

열 이름 데이터 형식 설명
database_name sysname 데이터베이스 이름입니다. 연결이 실패하고 사용자가 데이터베이스 이름을 지정하지 않은 경우 이 열은 비어 있습니다.
start_time datetime2 집계 간격 시작의 UTC 날짜 및 시간입니다. 집계된 이벤트의 경우 시간은 항상 5분의 배수입니다. 예시:

'2022-03-30 16:00:00'
'2022-03-30 16:05:00'
'2022-03-30 16:10:00'
end_time datetime2 집계 간격 종료의 UTC 날짜 및 시간입니다. 집계된 이벤트의 경우 End_time 항상 동일한 행의 해당 start_time 5분 후입니다. 집계 되지 않은 이벤트의 경우 start_time 이벤트의 실제 UTC 날짜 및 시간과 같을 end_time .
event_category nvarchar(64) 이 이벤트를 생성한 상위 수준 구성 요소입니다.

가능한 값 목록은 이벤트 유형을 참조하세요.
event_type nvarchar(64) 이벤트의 유형입니다.

가능한 값 목록은 이벤트 유형을 참조하세요.
event_subtype int 발생 이벤트의 하위 유형입니다.

가능한 값 목록은 이벤트 유형을 참조하세요.
event_subtype_desc nvarchar(64) 이벤트 하위 형식에 대한 설명입니다.

가능한 값 목록은 이벤트 유형을 참조하세요.
severity int 오류의 심각도입니다. 가능한 값은 다음과 같습니다.

0 = 정보
1 = 경고
2 = 오류
event_count int 지정된 시간 간격(start_time 및 end_time) 내에서 지정된 데이터베이스에 대해 이 이벤트가 발생한 횟수입니다.
description nvarchar(max) 이벤트에 대한 자세한 설명입니다.

가능한 값 목록은 이벤트 유형을 참조하세요.
additional_data XML 이 열은 사용되지 않으며 이전 버전과의 호환성을 위해 유지됩니다.

이벤트 유형

이 보기의 각 행에서 기록된 이벤트는 범주(event_category), 이벤트 유형(event_type) 및 하위 유형(event_subtype)으로 식별됩니다. 다음 표에서는 이 보기에서 수집되는 이벤트 유형을 나열합니다.

연결 범주의 이벤트의 경우 sys.database_connection_stats 보기에서 요약 정보를 사용할 수 있습니다.

참고 항목

이 보기에는 발생할 수 있는 모든 SQL Database 데이터베이스 이벤트가 포함되지 않으며 여기에 나열된 이벤트만 포함됩니다. 추가 범주, 이벤트 유형 및 하위 형식은 SQL Database의 향후 릴리스에서 추가될 수 있습니다.

event_category event_type event_subtype event_subtype_desc severity description
인터넷 connection_successful 0 connection_successful 0 데이터베이스에 성공적으로 연결되었습니다.
인터넷 connection_failed 0 invalid_login_name 2 이 버전의 SQL Server에서는 로그인 이름이 유효하지 않습니다.
인터넷 connection_failed 1 windows_auth_not_supported 2 Windows 로그인은 이 버전의 SQL Server에서 지원되지 않습니다.
인터넷 connection_failed 2 attach_db_not_supported 2 사용자가 지원되지 않는 데이터베이스 파일을 첨부하도록 요청했습니다.
인터넷 connection_failed 3 change_password_not_supported 2 사용자가 지원되지 않는 사용자 로그인 암호 변경을 요청했습니다.
인터넷 connection_failed 4 login_failed_for_user 2 사용자가 로그인하지 못했습니다.
인터넷 connection_failed 5 login_disabled 2 로그인을 사용할 수 없습니다.
인터넷 connection_failed 7 blocked_by_firewall 2 클라이언트 IP 주소는 서버에 액세스할 수 없습니다.

사용 권한

Azure SQL Database의 논리 서버에서 master 데이터베이스에 액세스할 수 있는 권한이 있는 사용자는 이 보기에 대한 읽기 전용 액세스 권한을 갖습니다.

설명

이벤트 집계

이 보기에 대한 이벤트 정보는 5분 간격 내에 수집 및 집계됩니다. event_count 열은 지정된 시간 간격 내에 특정 데이터베이스에 대해 특정 event_typeevent_subtype 발생한 횟수를 나타냅니다.

참고 항목

교착 상태와 같은 일부 이벤트는 집계되지 않습니다. 이러한 이벤트의 경우 event_count 1이고 start_time end_time 이벤트가 발생한 실제 UTC 날짜 및 시간과 같습니다.

예를 들어 사용자가 데이터베이스 Database1에 연결하지 못하는 경우 잘못된 로그인 이름으로 인해 UTC(2022년 3월 30일 11:00~11:05) 사이에 7번 이 정보를 사용할 수 있습니다. 이 정보는 이 보기의 단일 행에서 사용할 수 있습니다.

database_name start_time end_time event_category event_type event_subtype event_subtype_desc severity event_count description additional_data
Database1 2022-03-30 11:00:00 2022-03-30 11:05:00 connectivity connection_failed 4 login_failed_for_user 2 7 Login failed for user. NULL

간격 start_time 및 end_time

이벤트가 start_time 이후 및 해당 간격에 대해 end_time 전에 발생할 때 집계 간격에 이벤트가 포함됩니다. 예를 들어 정확히 2022-03-30 19:25:00.0000000 발생하는 이벤트는 아래 표시된 두 번째 간격에만 포함됩니다.

start_time                    end_time  
2022-03-30 19:20:00.0000000   2022-03-30 19:25:00.0000000  
2022-03-30 19:25:00.0000000   2022-03-30 19:30:00.0000000  

데이터 업데이트

이 보기의 데이터는 시간이 지남에 따라 누적됩니다. 일반적으로 데이터는 집계 간격이 시작된 후 1시간 이내에 누적되지만 모든 데이터가 보기에 표시되는 데 최대 24시간이 걸릴 수 있습니다. 이 기간 동안 단일 행 내의 정보는 주기적으로 업데이트될 수 있습니다.

데이터 보존

이 보기의 데이터는 데이터베이스 수와 각 데이터베이스가 생성하는 고유 이벤트 수에 따라 최대 30일 동안 보존됩니다. 이 정보를 더 오랫동안 보존하려면 데이터를 별도의 데이터베이스에 복사합니다. 뷰의 초기 복사본을 만들면 데이터가 누적되면 보기의 행이 업데이트될 수 있습니다. 데이터의 복사본을 최신 상태로 유지하려면 주기적으로 행의 테이블 검색을 수행하여 기존 행의 이벤트 수 증가를 찾고 새 행을 식별합니다(시작 및 종료 시간을 사용하여 고유한 행을 식별할 수 있음). 그런 다음 이러한 변경 내용으로 데이터 복사본을 업데이트합니다.

오류가 포함되지 않음

이 보기에는 모든 연결 및 오류 정보가 포함되지 않을 수 있습니다.

  • 이 보기에는 발생할 수 있는 모든 SQL Database 데이터베이스 오류가 포함되지 않으며 이 문서의 이벤트 유형지정된 오류만 포함됩니다.
  • SQL Database 데이터 센터 내에서 컴퓨터 오류가 발생하면 이벤트 테이블에서 소량의 데이터가 누락될 수 있습니다.
  • DoSGuard를 통해 IP 주소가 차단된 경우 해당 IP 주소의 연결 시도 이벤트를 수집할 수 없으며 이 보기에 표시되지 않습니다.

예제

Azure SQL Database의 논리 서버에서 master 데이터베이스에 연결하여 다음 Transact-SQL 쿼리를 실행합니다.

sys.event_log 보기 쿼리

다음 쿼리는 2022년 3월 25일 정오와 2022년 3월 30일 정오(UTC) 사이에 발생한 모든 이벤트를 반환합니다. 기본적으로 쿼리 결과는 start_time(오름차순)로 정렬됩니다.

SELECT database_name, start_time, end_time, event_category,
	event_type, event_subtype, event_subtype_desc, severity,
	event_count, description
FROM sys.event_log
WHERE start_time >= '2022-03-25 12:00:00'
    AND end_time <= '2022-03-30 12:00:00';  

사용자에 대한 쿼리 로그인 실패

다음 쿼리는 2022년 3월 25일 UTC(10:00~11:00) 사이에 발생한 사용자에 대해 실패한 연결 실패를 반환합니다.

SELECT database_name, start_time, end_time, event_category,
	event_type, event_subtype, event_subtype_desc, severity,
	event_count, description
FROM sys.event_log
WHERE event_type = 'connection_failed'
    AND event_subtype = 4
    AND start_time >= '2022-03-25 10:00:00'
    AND end_time <= '2022-03-25 11:00:00';  

다음 단계

다음 문서에서 Azure SQL Database에 대해 자세히 알아보세요.