
Мне было поручено обновить наши базы данных PostgreSQL, размещенные на GCP, с версии 9.6 до версии 13.
Инструкции, которые я нашел (https://cloud.google.com/sql/docs/postgres/upgrade-db) говорят, что нам нужно создать новую базу данных, а затем «Убедитесь, что целевой экземпляр имеет... Те же учетные записи пользователей с теми же привилегиями и паролями PostgreSQL»
У нас есть несколько баз данных с десятками пользователей и ролей, мы позволяем пользователям подключаться напрямую и устанавливать собственные пароли. Мы хотели бы выполнить обновление базы данных, не меняя все пароли.
Я пробовал использовать pg_dumpall для копирования пользователей в новую базу данных, но это не удалось, так как у меня нет разрешения на чтение pg_authid. Похоже, что нам нужна учетная запись суперпользователя, чтобы иметь возможность читать pg_authid, а GCP не разрешает учетные записи суперпользователей.
Есть ли способ обновить базы данных и сохранить существующие пароли?
решение1
Похоже, на момент, когда я задал вопрос, такой возможности не было, но с тех пор ситуация изменилась.
Google Cloud SQL теперь предлагает обновления основных версий на месте, при которых существующие пароли пользователей сохраняются.
https://cloud.google.com/sql/docs/postgres/upgrade-major-db-version-inplace