0

我希望能深入了解在 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 操作。设置这个,我现在得到了我需要的东西。

数据库标志

Cloud Logging API 数据访问日志

Cloud SQL 数据访问日志

4

1 回答 1

0

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

于 2021-10-29T12:57:31.307 回答