Azure Database for PostgreSQL 中的数据库活动的审核日志记录可通过 pgaudit
扩展获取。
pgaudit
提供详细的会话和/或对象审核日志记录。
如果希望 Azure 资源级日志用于计算和存储缩放等作,请参阅 Azure 活动日志。
使用注意事项
默认情况下, pgaudit
日志语句和常规日志语句是使用 Postgres 的标准日志记录工具发出的。 在 Azure Database for PostgreSQL 中,可以将所有日志配置为发送到 Azure Monitor 日志存储,以便在 Log Analytics 中进行后续分析。 如果启用 Azure Monitor 资源日志记录,日志会自动(采用 JSON 格式)发送到 Azure 存储、事件中心和/或 Azure Monitor 日志,具体取决于你的选择。
若要了解如何设置到 Azure 存储、事件中心或 Azure Monitor 日志的日志记录,请访问 服务器日志文章的资源日志部分。
安装扩展
若要使用 pgaudit
扩展,需要在计划使用该扩展的数据库中 允许列表、 加载和 创建 扩展。
配置扩展设置
pgaudit
允许配置会话或对象审核日志记录。
会话审核日志记录 会发出已执行语句的详细日志。
对象审核日志记录的审核 范围限定于特定关系。 可以选择设置一种或两种类型的日志记录。
启用pgaudit
后,可以配置其参数以开始日志记录。
若要配置 pgaudit
,可以按照以下说明作:
使用 Azure 门户:
选择 Azure Database for the PostgreSQL 的实例。
在资源菜单中的 “设置”下,选择 “服务器参数”。
pgaudit
搜索参数。选择要编辑的相应参数。 例如,若要开始日志记录
INSERT
、UPDATE
、DELETE
、TRUNCATE
和COPY
语句,请设置为pgaudit.log
WRITE
。选择“ 保存 ”按钮保存更改。
提供每个参数的定义的官方文档pgaudit
。 首先测试参数,并确认你收到预期的行为。
例如,设置为pgaudit.log_client
ON
不仅将审核事件写入服务器日志,还将它们发送到客户端进程(如 psql)。 此设置通常应保持禁用状态。
pgaudit.log_level
仅在启用时 pgaudit.log_client
启用。
在 Azure Database for PostgreSQL 中,pgaudit.log
无法使用文档中所述-
的pgaudit
(减号)符号快捷方式进行设置。 应单独指定所有必需的语句类(READ
、WRITE 等)。
如果将参数log_statement
设置为DDL
或运行或ALL
运行或CREATE ROLE/USER ... WITH PASSWORD ... ;
命令ALTER ROLE/USER ... WITH PASSWORD ... ;
,则 PostgreSQL 会在 PostgreSQL 日志中创建一个条目,其中密码以明文形式记录,这可能会导致潜在的安全风险。 这是 PostgreSQL 引擎设计的预期行为。
但是,pgaudit
可以使用扩展并设置为 pgaudit.log
DDL
,该扩展不会在 Postgres 服务器日志中记录任何CREATE/ALTER ROLE
语句,这与设置为log_statement
DDL
时不同。 如果需要记录这些语句,也可以设置为pgaudit.log
ROLE
,这会在日志记录CREATE/ALTER ROLE
时对日志中的密码进行修订。
审核日志格式
每个审核条目都以 AUDIT:
. 文档详细介绍pgaudit
了条目的其余部分的格式。
入门指南
若要快速开始,请设置为pgaudit.log
ALL
并打开服务器日志以查看输出。
查看审核日志
访问日志的方式取决于所选终结点。 请参阅 Azure 存储的 日志存储帐户 文章。 请参阅事件中心的 流 Azure 日志 文章。
对于 Azure Monitor 日志,日志将发送到所选工作区。 Postgres 日志使用 AzureDiagnostics 收集模式,以便可以从 AzureDiagnostics 表查询它们。 在 Azure Monitor 日志查询 概述中了解有关查询和警报的详细信息。
可以使用此查询开始。 可以根据查询配置警报。
在 Postgres 日志中搜索最后一天特定服务器的所有 pgaudit
条目
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"
安装了 pgaudit 扩展的主要版本升级
在主版本升级期间,pgaudit 扩展会自动删除,然后在升级完成后重新创建。 还原扩展时,不会自动保留在或其他相关参数中 pgaudit.log
设置的任何自定义配置。