
Se me ha encomendado la tarea de actualizar nuestras bases de datos PostgreSQL alojadas en GCP de la versión 9.6 a la versión 13.
Las instrucciones que encontré (https://cloud.google.com/sql/docs/postgres/upgrade-db) dicen que necesitamos crear una nueva base de datos y luego "Asegúrese de que la instancia de destino tenga... Las mismas cuentas de usuario, con los mismos privilegios y contraseñas de PostgreSQL".
Contamos con una serie de bases de datos con docenas de usuarios y roles, permitimos a los usuarios conectarse directamente y establecer sus propias contraseñas. Nos gustaría realizar la actualización de la base de datos sin cambiar todas las contraseñas.
He analizado el uso de pg_dumpall para copiar a los usuarios a una nueva base de datos, pero falla porque no tengo permiso para leer pg_authid. Parece que necesitamos una cuenta de superusuario para poder leer pg_authid y GCP no permite cuentas de superusuario.
¿Hay alguna forma de actualizar las bases de datos y conservar las contraseñas existentes?
Respuesta1
Parece que no había una manera de hacer esto en el momento en que hice la pregunta, pero las cosas han avanzado desde entonces.
Google Cloud SQL ahora proporciona actualizaciones de versiones importantes locales, que mantendrán las contraseñas de usuario existentes.
https://cloud.google.com/sql/docs/postgres/upgrade-major-db-version-inplace