Tip
Microsoft Fabric Data Warehouse는 데이터 레이크 기반의 엔터프라이즈 규모 관계형 웨어하우스로, 미래 대비 아키텍처, 기본 제공 AI 및 새로운 기능을 제공합니다. 데이터 웨어하우징이 처음이라면, Fabric Data Warehouse부터 시작하세요. 기존 전용 SQL 풀 워크로드는 업그레이드하면 Fabric을 통해 데이터 과학, 실시간 분석 및 보고 전반에 걸쳐 새로운 기능에 액세스할 수 있습니다.
Azure Synapse Analytics 감사는 데이터베이스 이벤트를 추적하여 Azure Storage에 기록하거나, Azure Event Hubs 또는 Azure Monitor Log Analytics에 전송하여 후속 처리 및 분석을 수행합니다.
명명 규칙
블롭 감사
Azure Blob Storage에 저장된 감사 로그는 sqldbauditlogs. 컨테이너 내 디렉터리 계층 구조는 <ServerName>/<DatabaseName>/<AuditName>/<Date>/입니다. 블롭 파일 이름 형식은 <CreationTime>_<FileNumberInSession>.xel이며, CreationTime 여기서 는 UTC hh_mm_ss_ms 형식을 사용하고, FileNumberInSession 세션이 여러 블롭 파일을 가로질러 있을 때 실행 중인 인덱스입니다.
예를 들어, 다음 경로는 서버Server1의 데이터베이스 Database1 에 유효합니다:
Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel
Event Hubs
감사 이벤트는 네임스페이스와 감사용으로 구성된 이벤트 허브에 기록됩니다. 이벤트는 Apache Avro 이벤트 본문에 캡처되며, UTF-8 인코딩이 적용된 JSON 형식을 사용합니다.
Log Analytics
감사 이벤트는 구성된 Log Analytics 워크스페이스의 테이블에 AzureDiagnostics 기록됩니다. 데이터베이스 감사 이벤트는 이 SQLSecurityAuditEvents 카테고리를 사용하며, Microsoft 지원 작업은 이 DevOpsOperationsAudit 카테고리를 사용합니다. 쿼리 안내는 Log Analytics 쿼리를 참조하세요.
감사 로그 필드
| 이름 (블롭) | 이름 (이벤트 허브/Log Analytics) | Description | Blob 유형 | 이벤트 허브/Log Analytics 유형 |
|---|---|---|---|---|
action_id |
action_id_s |
동작의 ID입니다. | varchar(4) |
string |
action_name |
action_name_s |
작전의 명칭 | N/A | string |
additional_information |
additional_information_s |
이벤트에 대한 추가 정보는 XML로 저장됩니다 | nvarchar(4000) |
string |
affected_rows |
affected_rows_d |
쿼리에 영향을 받는 행 수 | bigint |
int |
application_name |
application_name_s |
클라이언트 애플리케이션 이름 | nvarchar(128) |
string |
audit_schema_version |
audit_schema_version_d |
항상 1 | int |
int |
class_type |
class_type_s |
감사가 이루어지는 감사 대상 기관의 유형 | varchar(2) |
string |
class_type_desc |
class_type_description_s |
감사가 이루어지는 감사 대상 기관의 설명 | N/A | string |
client_ip |
client_ip_s |
클라이언트 애플리케이션의 원본 IP | nvarchar(128) |
string |
connection_id |
N/A | 서버의 연결 ID | GUID |
N/A |
data_sensitivity_information |
data_sensitivity_information_s |
데이터베이스의 분류된 열을 기반으로 감사된 쿼리에서 반환되는 정보 유형 및 민감도 레이블입니다. 자세한 내용은 Azure Synapse Analytics security: Threat protection을 참조하세요 | nvarchar(4000) |
string |
database_name |
database_name_s |
해당 동작이 발생한 데이터베이스 맥락 | sysname |
string |
database_principal_id |
database_principal_id_d |
동작이 수행되는 데이터베이스 사용자 컨텍스트의 ID | int |
int |
database_principal_name |
database_principal_name_s |
동작이 수행되는 데이터베이스 사용자 컨텍스트의 이름 | sysname |
string |
duration_milliseconds |
duration_milliseconds_d |
쿼리 실행 기간(밀리초) | bigint |
int |
event_time |
event_time_t |
감사 대상 액션이 발동되는 날짜와 시간 | datetime2 |
datetime |
host_name |
N/A | 클라이언트 호스트 이름 | string |
N/A |
is_column_permission |
is_column_permission_s |
열 수준 사용 권한인지 여부를 나타내는 플래그입니다. 1 = 참, 0 = 거짓 | bit |
string |
| N/A | is_server_level_audit_s |
이 감사가 서버 수준에서 이루어졌는지 나타내는 플래그입니다 | N/A | string |
object_ ID |
object_id_d |
감사가 수행된 대상 엔터티의 ID입니다. 여기에는 서버 객체, 데이터베이스, 데이터베이스 객체, 스키마 객체가 포함됩니다. 엔터티가 서버 자체이거나 감사가 객체 수준에서 수행되지 않을 경우 0입니다 | int |
int |
object_name |
object_name_s |
감사가 수행된 대상 엔터티의 이름입니다. 여기에는 서버 객체, 데이터베이스, 데이터베이스 객체, 스키마 객체가 포함됩니다. 엔터티가 서버 자체이거나 감사가 객체 수준에서 수행되지 않을 경우 0입니다 | sysname |
string |
obo_middle_tier_app_id |
obo_middle_tier_app_id_s |
OBO 접근을 통해 Azure Synapse Analytics에 연결된 중간 계층 애플리케이션의 애플리케이션 ID. | varchar(120) |
string |
permission_bitmask |
permission_bitmask_s |
해당하는 경우 부여, 거부 또는 해지된 사용 권한을 표시합니다. | varbinary(16) |
string |
response_rows |
response_rows_d |
결과 집합에서 반환된 행 수 | bigint |
int |
schema_name |
schema_name_s |
동작이 수행된 스키마 컨텍스트입니다.
NULL 스키마 외부에서 발생하는 감사에 대해서는 |
sysname |
string |
| N/A | securable_class_type_s |
감사 대상 객체에 class_type 매핑되는 보안 객체 |
N/A | string |
sequence_group_id |
sequence_group_id_g |
고유 식별자 | varbinary |
GUID |
sequence_number |
sequence_number_d |
너무 커서 감사에 대한 쓰기 버퍼에 맞지 않는 단일 감사 레코드 내의 레코드 시퀀스를 추적합니다. Azure Synapse Analytics 감사는 감사 기록의 문자 필드에 대해 4000자 분량의 데이터를 저장합니다. 4000자를 초과할 경우, 처음 4000자를 넘는 데이터는 잘려 나갑니다 | int |
int |
server_instance_name |
server_instance_name_s |
감사가 이루어진 서버 인스턴스의 이름 | sysname |
string |
server_principal_id |
server_principal_id_d |
동작이 수행되는 로그인 컨텍스트의 ID | int |
int |
server_principal_name |
server_principal_name_s |
현재 로그인 | sysname |
string |
server_principal_sid |
server_principal_sid_s |
현재 로그인 SID | varbinary |
string |
session_id |
session_id_d |
사건이 발생한 세션의 ID | smallint |
int |
session_server_principal_name |
session_server_principal_name_s |
세션용 서버 프린시펄 | sysname |
string |
statement |
statement_s |
실행된 T-SQL 문(있다면) | nvarchar(4000) |
string |
succeeded |
succeeded_s |
이벤트를 발생시킨 동작의 성공 여부를 나타냅니다. 로그인 및 배치 이외의 이벤트에 대해서는 권한 검사 성공 여부만 보고하며, 작업 자체는 보고하지 않습니다. 1 = 성공, 0 = 실패 | bit |
string |
target_database_principal_id |
target_database_principal_id_d |
연산이 수행되는 데이터베이스 주체 GRANT//DENYREVOKE 에 해당하지 않으면 0입니다 |
int |
int |
target_database_principal_name |
target_database_principal_name_s |
동작의 대상 사용자입니다.
NULL 해당되지 않는 경우 |
string |
string |
target_server_principal_id |
target_server_principal_id_d |
작업이 수행되는 서버 보안 주체 GRANT/DENY/REVOKE 입니다. 해당되지 않으면 0 반환 |
int |
int |
target_server_principal_name |
target_server_principal_name_s |
동작의 대상 로그인입니다.
NULL 해당되지 않는 경우 |
sysname |
string |
target_server_principal_sid |
target_server_principal_sid_s |
대상 로그인의 SID입니다.
NULL 해당되지 않는 경우 |
varbinary |
string |
transaction_id |
transaction_id_d |
Not populated for Azure Synapse Analytics | bigint |
int |
user_defined_event_id |
user_defined_event_id_d |
인수로 전달된 사용자 정의 이벤트 ID입니다 sp_audit_write.
NULL 시스템 이벤트(기본값) 및 사용자 정의 이벤트의 경우 0이 아닙니다. 자세한 내용은 sp_audit_write (Transact-SQL) 문서를 참조하세요 |
smallint |
int |
user_defined_information |
user_defined_information_s |
사용자 정의 정보는 인자로 전달됩니다.sp_audit_write 시스템 이벤트(기본값)는 NULL, 사용자 정의 이벤트는 0이 아닌 것으로 표시됩니다. 자세한 내용은 sp_audit_write (Transact-SQL) 문서를 참조하세요 |
nvarchar(4000) |
string |