如需配置 pgAudit 日志记录行为,请设置 pgaudit.log
标志或 pgaudit.role
标志:
设置
pgaudit.log
以启用和配置会话日志记录。您可以在实例、数据库或角色上设置此标志,以定义 pgAudit 日志记录的操作范围。您可以将该标志设置为一个值,以定义 pgAudit 日志记录的操作类型。设置
pgaudit.role
以启用和配置对象日志记录,该日志记录会记录影响特定关系的语句。您可以将此标志设置为角色的名称,然后向您希望记录的特定对象授予语句访问权限。语句访问权限包括SELECT, INSERT, UPDATE, and DELETE
。pgAudit 会记录任何用户运行的与访问权限和对象组合相符的所有操作。
以下部分提供了示例,展示了设置 pgAudit 日志记录行为的选项。
如需了解此扩展程序的其他功能,请参阅 pgAudit 文档。
为实例中的所有数据库配置会话审核日志记录
如需为实例中的所有数据库配置审核,请在实例级设置 pgaudit.log
标志。
例如:
- 如需为实例中所有数据库的所有操作启用审核,请执行以下操作:
gcloud alloydb instances update my-instance \ --database-flags pgaudit.log=all[,flag2=value2...] \ --region=us-central1 \ --cluster=my-cluster \ --project=my-project
- 如需仅针对实例中所有数据库的读取和写入操作启用审核,请执行以下操作:
gcloud alloydb instances update my-instance \ --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \ --region=us-central1 \ --cluster=my-cluster \ --project=my-project
请注意使用备用分隔符语法,这样您就可以在标志值中使用英文逗号字符。
如需了解如何配置数据库标志,请参阅配置数据库标志。
为特定数据库配置会话审核日志记录
您可以通过在数据库级别设置 pgaudit.log
标志来为特定数据库配置审核。
例如,如需为数据库 finance 启用读写审核,请执行以下操作:
finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';
为单个用户配置会话审核日志记录
您可以通过在各个角色级别设置 pgaudit.log
来为特定用户启用审核。
例如,如需为用户 Alice 执行的所有数据库操作设置审核,请执行以下操作:
finance=> ALTER ROLE alice SET pgaudit.log = 'all';
配置对象审核日志记录
关系的审核比特定数据库的审核范围小一些。审核关系时,系统会将一个唯一的审核员角色分配给 pgaudit.role
参数。此操作会记录授予此角色的任何对象或关系。
例如:
- 如需为员工数据库中“薪水”关系的所有
SELECT
查询配置审核,请执行以下操作:employee=> CREATE ROLE auditor WITH NOLOGIN;
employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
employee=> GRANT SELECT ON salary TO auditor;
您还可以审核给定关系的一部分列。
例如:
- 如需配置仅当从 salary 关系访问
income
和tax_status
列时才会发生的审核日志记录,请执行以下操作:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;