TIL #PostgreSQL 16 and above has a level above the SUPERUSER role: the “bootstrap superuser,” from whom you cannot revoke SUPERUSER privileges: https://www.postgresql.org/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER
And since internal components may still refer to it by name or expect it to be present, you can’t effectively rename it.
So if you create a #database cluster and decide to name that first user after the application for which you're originally using PostgreSQL, you’re stuck with that name for the life of the cluster. You may think you’re keeping things simple at the time, but you’re setting yourself (and others) up for confusion later.
Better to just initialize the cluster with the default superuser name of `postgres`, and then create an app-specific user with lower privileges.
#DevOps #PlatfformEngineering #databases #SQL #Postgres