

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

# 檢視稽核日誌
<a name="Appendix.SQLServer.Options.Audit.AuditRecords"></a>

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

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

如需設定保留的相關資訊，請參閱 [將 SQL Server 稽核新增至資料庫執行個體選項](Appendix.SQLServer.Options.Audit.Adding.md)。

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

```
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 中檢視稽核日誌記錄
<a name="Appendix.SQLServer.Options.Audit.AuditRecords.CloudWatch"></a>

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

**在 CloudWatch 中檢視稽核日誌**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在左側導覽窗格中，選擇**日誌**、**日誌管理**。

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

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

1. 在**日誌串流**索引標籤下，選擇日誌串流。

或者，您可以使用 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}"
```