View a markdown version of this page

檢視稽核日誌 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢視稽核日誌

稽核日誌被儲存於 D:\rdsdbdata\SQLAudit

SQL Server 完成稽核日誌檔案的寫入後 — 當檔案到達大小限制時 —Amazon RDS 會將檔案上傳到 S3 儲存貯體。如果啟用了保留,Amazon RDS 會將檔案移動到保留資料夾內︰D:\rdsdbdata\SQLAudit\transmitted

如需設定保留的相關資訊,請參閱 將 SQL Server 稽核新增至資料庫執行個體選項

稽核記錄會保存在資料庫執行個體上,直到稽核日誌檔案被上傳為止。您可以執行下列命令,以查看稽核記錄。

SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\*.sqlaudit' , default , default )

您可以使用相同的命令,將篩選器變更為 D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit,以查看保留資料夾中的稽核記錄。

SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit' , default , default )

在 CloudWatch 中檢視稽核日誌記錄

如果您選擇將稽核日誌上傳至 CloudWatch,您可以依照下列步驟存取日誌記錄 (JSON 格式)。

在 CloudWatch 中檢視稽核日誌
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 在左側導覽窗格中,選擇日誌日誌管理

  3. 日誌群組搜尋方塊中輸入您的資料庫執行個體名稱。

  4. 選擇適當的日誌群組。

  5. 日誌串流索引標籤下,選擇日誌串流。

或者,您可以使用 AWS CLI 來查詢日誌串流。下列範例會擷取稽核日誌事件,並將其匯出至 CSV 檔案。

# Parameters # ----------- LOG_GROUP="/aws/rds/instance/<your-db-instance-id>/sqlaudit" START_DATE="2026-06-18" END_DATE="2026-06-19" OUTPUT_FILE="sql_audit_extract.csv" # Convert dates to epoch milliseconds # ----------------------------------- START_TIME=$(date -d "${START_DATE}" +%s)000 END_TIME=$(date -d "${END_DATE}" +%s)000 # Fetch log events # ---------------- # Note: --no-paginate returns all results in a single call. # For large result sets, consider using --page-size or manual pagination. RESPONSE=$(aws logs filter-log-events \ --log-group-name "${LOG_GROUP}" \ --start-time "${START_TIME}" \ --end-time "${END_TIME}" \ --output json \ --no-paginate) # Parse and export to CSV # Extract the 'message' field from each event (JSON formatted messages), # then convert to CSV using jq. # Get CSV headers from the first record # ------------------------------------- HEADERS=$(echo "${RESPONSE}" | jq -r ' [.events[0].message | fromjson | keys[]] | @csv ') # Write headers to output file # ---------------------------- echo "${HEADERS}" > "${OUTPUT_FILE}" # Write all records to output file # -------------------------------- echo "${RESPONSE}" | jq -r ' .events[].message | fromjson | [.[]] | @csv ' >> "${OUTPUT_FILE}" # Script execution summary # ------------------------- RECORD_COUNT=$(echo "${RESPONSE}" | jq '.events | length') echo "Exported ${RECORD_COUNT} records to ${OUTPUT_FILE}"