如何在 Google Cloud SQL PostgreSQL 11 实例上记录 SQL 查询?
How to log SQL queries on a Google Cloud SQL PostgreSQL 11 instance?
我必须记录在 Google Cloud SQL PostgreSQL 实例上执行的所有 DDL 和 DML 查询。
查了很多网站,都没有明确的信息。我尝试使用 pgAudit
扩展,但 Cloud SQL.
不支持该扩展
有人可以建议要使用的扩展名或任何其他记录 SQL 查询的方式吗?
另外,如果可以记录用户登录,那也会很有帮助。
加入postgresql.conf
:
log_statement=mod
https://www.postgresql.org/docs/12/runtime-config-logging.html 说
logs all ddl statements, plus data-modifying statements such as
INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. PREPARE, EXECUTE, and
EXPLAIN ANALYZE statements are also logged if their contained command
is of an appropriate type.
要记录连接和断开连接,请添加 postgresql.conf
:
log_connections=on
log_disconnections=on
简答 - 数据库标志
如果本地安装了 PostgreSQL 或者我们可以访问服务器容器,则可以使用其他答案中提供的解决方案。但是,在 Google 云中,无法从实例直接访问此文件。
我发现这可以在 Google 云 SQL 实例上通过将此 link - PostgreSQL configuration parameters 中给出的各种参数设置为数据库标志来实现。
注意:不支持所有参数,因此请在官方文档中通过下面给出的Google进行验证。
2020 年 10 月 12 日 Google Cloud SQL for PostgresSQL 添加了对 pgAudit 的支持。请查看这些 docs 了解更多信息。
我必须记录在 Google Cloud SQL PostgreSQL 实例上执行的所有 DDL 和 DML 查询。
查了很多网站,都没有明确的信息。我尝试使用 pgAudit
扩展,但 Cloud SQL.
有人可以建议要使用的扩展名或任何其他记录 SQL 查询的方式吗? 另外,如果可以记录用户登录,那也会很有帮助。
加入postgresql.conf
:
log_statement=mod
https://www.postgresql.org/docs/12/runtime-config-logging.html 说
logs all ddl statements, plus data-modifying statements such as INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. PREPARE, EXECUTE, and EXPLAIN ANALYZE statements are also logged if their contained command is of an appropriate type.
要记录连接和断开连接,请添加 postgresql.conf
:
log_connections=on
log_disconnections=on
简答 - 数据库标志
如果本地安装了 PostgreSQL 或者我们可以访问服务器容器,则可以使用其他答案中提供的解决方案。但是,在 Google 云中,无法从实例直接访问此文件。
我发现这可以在 Google 云 SQL 实例上通过将此 link - PostgreSQL configuration parameters 中给出的各种参数设置为数据库标志来实现。
注意:不支持所有参数,因此请在官方文档中通过下面给出的Google进行验证。
2020 年 10 月 12 日 Google Cloud SQL for PostgresSQL 添加了对 pgAudit 的支持。请查看这些 docs 了解更多信息。