Как регистрировать SQL запросов в экземпляре Google Cloud SQL PostgreSQL 11? - PullRequest
1 голос
/ 27 мая 2020

Мне нужно регистрировать все запросы DDL и DML, выполненные в Google Cloud SQL PostgreSQL.

Я проверил множество веб-сайтов, но четкой информации нет. Я пробовал использовать расширение pgAudit, но оно не поддерживается Cloud SQL.

Может ли кто-нибудь предложить расширение для использования или любой другой способ регистрации SQL запросов? Кроме того, если пользовательские логины могут быть зарегистрированы, это тоже будет полезно.

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Короткий ответ - Флаги базы данных

Можно использовать решение, указанное в другом ответе, если PostgreSQL установлен локально или если у нас есть доступ к контейнеру сервера. Однако в Google Cloud к этому файлу нельзя получить прямой доступ из экземпляра.

Я обнаружил, что этого можно достичь в экземпляре Google Cloud SQL, задав различные параметры, указанные в этой ссылке - PostgreSQL параметры конфигурации как флаги базы данных.

Примечание: Все параметры не поддерживаются, поэтому проверьте официальную документацию Google, приведенную ниже.

Флаги базы данных Google Cloud для PostgreSQL

1 голос
/ 27 мая 2020

Добавить postgresql.conf:

log_statement=mod

https://www.postgresql.org/docs/12/runtime-config-logging.html говорит

регистрирует все операторы ddl, а также операторы изменения данных, такие как INSERT , ОБНОВЛЕНИЕ, УДАЛЕНИЕ, ОБРЕЗАТЬ и КОПИРОВАТЬ ИЗ. Операторы PREPARE, EXECUTE и EXPLAIN ANALYZE также регистрируются, если содержащиеся в них команды имеют соответствующий тип.

Чтобы регистрировать подключения и разъединения, добавьте postgresql.conf:

log_connections=on
log_disconnections=on
...