【问题标题】:pgAudit not logging anything in GCP Cloud SQLpgAudit 未在 GCP Cloud SQL 中记录任何内容
【发布时间】:2021-12-06 12:56:10
【问题描述】:

我希望能深入了解在 GCP Cloud SQL 中将 pgAudit 用于 PostgreSQL 12 托管实例时遇到的问题。

到目前为止,我已完成以下设置:

数据库标志:

cloudsql.enable_pgaudit=on
pgaudit.log=ddl
pgaudit.log_client=yes (turned this one on for debugging purposes)
pgaudit.log_relation=on

启用 cloudsql.enable_pgaudit 标志并重新启动实例后,我发出了 CREATE EXTENSION pgaudit 命令,并确认它是成功的。我还按照 Google 文档中的建议启用了数据访问日志(他们没有指定 IAM 中需要哪些权限,所以我在一切方面都犯了错误)。我还尝试设置 pgaudit.log=all 来查看是否可以捕获任何内容,同样的捕获结果是没有记录任何内容。

使用 pgaudit.log_client=on,我希望在 DBeaver 中查看服务器输出时看到返回的审核日志信息,但那里什么也没有。

有人对我可能遗漏的内容有任何见解吗?我的目标最终是通过会话记录来捕获 DDL 操作。我通常通过创建一个删除表来尝试测试以获取这些操作的日志,即

create table dstest_table (columnone varchar(150));
drop table dstest_table;

我已经尝试了更多的方法来让它工作,包括在数据库级别另外设置标志。到目前为止,似乎没有任何记录。

更新:从来没有让 pgAudit 正常工作,但是,发现可以通过服务器上的 log_statement=ddl 标志在 pgAudit 之外记录 DDL 操作。设置这个,我现在得到了我需要的东西。

Database Flags

Cloud Logging API Data Access Log

Cloud SQL Data Access Log

【问题讨论】:

    标签: postgresql google-cloud-platform pgaudit


    【解决方案1】:

    log_statement=ddl 作为标志允许在不使用 pgAudit 的情况下记录 DDL 语句,因此大部分设置都是不必要的。设置此标志,我需要的操作现在已记录。

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 2012-07-01
      • 2013-11-24
      • 2020-04-18
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 2021-11-29
      • 2018-09-03
      相关资源
      最近更新 更多