如要配置 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;
您还可以审核给定关系的一部分列。
例如:
- 如要配置只有在有人通过薪资关系访问
income
和tax_status
列时才发生的审核日志记录,可进行如下设置:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;