В Google Cloud SQL PostrgreSQL отказано в разрешении pg_stat_statements_reset () - PullRequest
0 голосов
/ 08 ноября 2018

Основной выпуск

Я не могу выполнить функцию SELECT pg_stat_statements_reset();, чтобы профилировать изменения в оптимизации запросов из-за недостаточных разрешений. Сообщение об ошибке гласит: permission denied for function pg_stat_statements_reset

Хотелось бы узнать, есть ли другие способы сброса pg_stats в Cloud SQL PostgreSQL?

Окружающая среда

  • PG версия: PostgreSQL 9.6.6 на x86_64-pc-linux-gnu, скомпилированная gcc (Ubuntu 4.8.4-2ubuntu1 ~ 14.04.3) 4.8.4, 64-битная
  • Платформа: Google Cloud SQL PostgreSQL
  • Пользователь: пользователь postgres по умолчанию с ролью cloudsqlsuperuser

Предпринятые шаги

Я нашел предыдущий ответ на эту тему, в котором предполагалось, что pg_stat_statements_reset() должен работать от пользователя postgres по умолчанию, созданного через облачную консоль. Тем не менее, перечисленное решение не работает, оно возвращает ту же ошибку отказа в разрешении

Смежный вопрос

1 Ответ

0 голосов
/ 25 апреля 2019

Google Cloud SQL поддерживает несколько модулей для PostgreSQL для расширения его функциональности.

Одно из расширений (модулей): pg_stat_statements . Это позволяет отслеживать статистику выполнения операторов SQL, выполняемых сервером. Для сброса статистики используется функция pg_stat_statements_reset ().

Перед использованием расширения (модуля) его необходимо установить:

  1. Подключиться к экземпляру PostgreSQL из Cloud Shell, используя значение по умолчанию user: postgres
gcloud sql connect [INSTANCE_ID] --user=postgres
  1. При подключении к базе данных создать расширение pg_stat_statements
CREATE EXTENSION pg_stat_statements
  1. Выполнить функцию сброса статистики. По умолчанию он может выполняться только суперпользователями :
SELECT pg_stat_statements_reset()
...