Tip
Microsoft Fabric Data Warehouse 是一個企業規模的關聯式倉庫,建立在資料湖基礎上,具備未來準備架構、內建 AI 及新功能。 如果你是資料倉儲新手,建議先從Fabric Data Warehouse開始。 現有的 專用 SQL 工作負載可升級至 Fabric,以取得資料科學、即時分析與報告等多項新功能。
Azure Synapse Analytics稽核追蹤資料庫事件並將其寫入Azure 儲存體,或送交Azure 事件中樞或Azure 監視器 Log Analytics進行下游處理與分析。
命名慣例
Blob 稽核
儲存在 Azure Blob 儲存體 中的稽核日誌會儲存在一個名為 sqldbauditlogs. 的容器中。 容器內的目錄階層為 <ServerName>/<DatabaseName>/<AuditName>/<Date>/。 blob 檔案名稱格式為 <CreationTime>_<FileNumberInSession>.xel,其中 CreationTime 使用 UTC hh_mm_ss_ms 格式,當 FileNumberInSession 一個會話跨越多個 blob 檔案時,是持續的索引。
例如,以下路徑適用於伺服器Server1上的資料庫Database1:
Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel
事件中樞
稽核事件會寫入命名空間,並設定為可稽核的事件中心。 事件會被捕捉在 Apache Avro 事件的主體中,並使用 JSON 格式搭配 UTF-8 編碼。
Log Analytics
稽核事件會寫入AzureDiagnostics設定的 Log Analytics 工作區中的表格。 資料庫稽核事件使用該SQLSecurityAuditEvents類別,Microsoft 支援作業則使用該DevOpsOperationsAudit類別。 查詢指引請參見 Log Analytics 查詢。
稽核日誌欄位
| 名稱(blob) | 名稱(Event Hubs/Log Analytics) | Description | Blob 類型 | Event Hubs/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 安全性:威脅防護 | nvarchar(4000) |
string |
database_name |
database_name_s |
該動作發生的資料庫上下文 | sysname |
string |
database_principal_id |
database_principal_id_d |
執行該動作的資料庫使用者上下文的識別碼 | 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 = true,0 = false | bit |
string |
| N/A | is_server_level_audit_s |
標示此審計是否發生在伺服器層級 | N/A | string |
object_ 身分證 |
object_id_d |
稽核發生所在之實體的識別碼。 這包括:伺服器物件、資料庫、資料庫物件和結構物件。 若實體為伺服器本身,或審計未在物件層級執行,則為 0 | int |
int |
object_name |
object_name_s |
稽核發生所在之實體的名稱。 這包括:伺服器物件、資料庫、資料庫物件和結構物件。 若實體為伺服器本身,或審計未在物件層級執行,則為 0 | sysname |
string |
obo_middle_tier_app_id |
obo_middle_tier_app_id_s |
是中階應用程式的應用程式 ID,該應用程式使用 OBO 存取方式連接到 Azure Synapse Analytics。 | 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 |
執行該動作的登入上下文識別碼 | 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 |
事件發生時的會議編號 | 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 |
傳遞做為自變數給 sp_audit_write的使用者定義事件標識碼。
NULL 針對系統事件 (預設值) 和使用者定義事件的非零。 更多資訊請參見 sp_audit_write(Transact-SQL) |
smallint |
int |
user_defined_information |
user_defined_information_s |
使用者定義的資訊作為參數傳遞給 sp_audit_write。 系統事件(預設)為 NULL,使用者自訂事件為非零。 更多資訊請參見 sp_audit_write(Transact-SQL) |
nvarchar(4000) |
string |