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