查看 pgAudit 为 AlloyDB for PostgreSQL 生成的审核日志

本页介绍了如何查看 pgAudit 生成的审核日志;该扩展程序可帮助您配置许多日志,遵守政府、财务和 ISO 认证通常需要这些日志。本页面还介绍了 pgAudit 的日志格式。如需详细了解 pgAudit,请参阅 pgAudit 简介

准备工作

如需查看审核日志,您必须执行以下操作:

查看审核日志

针对给定实例生成的 pgAudit 日志将作为数据访问审核日志发送到 Cloud Logging。

您可以使用 Logs Explorer 应用查看生成的 pgAudit 日志。

如需查看 pgAudit 日志,请在日志浏览器应用中选择 cloudaudit.googleapis.com/data_access 日志过滤器。

如需查看 AlloyDB 项目的所有 pgAudit 日志,请使用高级过滤条件界面执行以下查询:

resource.type="alloydb.googleapis.com/Instance"
logName="projects/your-project-name/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"

pgAudit 日志格式

数据访问审核日志中的每个 pgAudit 日志条目都包含一些字段,代表针对查询收集的信息。如需详细了解这些日志条目字段,请参阅 pgAudit 文档

pgAudit 日志条目示例:

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "alloydb.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

下面介绍了数据访问审核日志中的字段:

  • auditClass。所记录的语句的类型。可能的值包括 READ、WRITE、FUNCTION、ROLE、DDL、MISC 和 MISC_SET。
  • auditType。SESSION 或 OBJECT。
  • chunkCount。对 parameterstatement 字段中提供的数据可能发生分块。chunkCount 字段表示区块的总数。另请参阅 chunkIndex 字段的说明。
  • chunkIndex。在当前 request 容器的 parameterstatement 字段中指定数据块的索引编号。初始编号为 1。 另请参阅 chunkCount 字段的说明。
  • command。例如,ALTER TABLE 或 SELECT。
  • 参数chunkIndex 字段可以确定此字段的内容;请参阅 chunkIndex 字段的说明。 如果设置了 `pgaudit.log_parameter` 的值,则 parameter 字段可以包含语句参数作为 CSV 引用数据。如果没有参数,则此字段包含 [none]。否则,此字段包含 [not logged]
  • statement。在后端执行的语句。 chunkIndex 字段可以确定 statement 字段的内容;请参阅 chunkIndex 字段的说明。
  • statementId。此会话的唯一语句 ID。每个语句 ID 代表一个后端调用。即使未记录某些语句,语句 ID 也是有序的。
  • substatementId。主语句中的每个子语句的顺序 ID。

后续步骤