查看审核日志
审核日志存储在 D:\rdsdbdata\SQLAudit 中。
SQL Server 完成写入到审核日志文件之后(当文件达到其大小限制时),Amazon RDS 会将文件上传到您的 S3 存储桶。如果启用了保留,Amazon RDS 会将文件移入到保留文件夹:D:\rdsdbdata\SQLAudit\transmitted。
有关配置保留的信息,请参阅将 SQL Server Audit 添加到数据库实例选项。
在上传审核日志文件之前,审核记录会一直保留在数据库实例上。您可以通过运行以下命令来查看审核记录。
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 中查看审计日志
-
通过 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在左侧导航窗格中,依次选择日志、日志管理。
-
在日志组搜索框中输入您的数据库实例名称。
-
选择相应的日志组。
-
在日志流选项卡下,选择日志流。
或者,您可以使用 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}"