Réponses:
ALTER DATABASE name OWNER TO new_owner;
Voir l'entrée du manuel Postgresql à ce sujet pour plus de détails.
ERROR: must be member of role ...= NE FONCTIONNE PAS AVEC RDS
La réponse de Frank Heikens ne mettra à jour que la propriété de la base de données. Souvent, vous souhaitez également mettre à jour la propriété des objets contenus (y compris les tables). À partir de Postgres 8.2, REASSIGN OWNED est disponible pour simplifier cette tâche.
MODIFICATION IMPORTANTE!
Ne jamais utiliser REASSIGN OWNED lorsque le rôle d'origine est postgres, cela pourrait endommager l'intégralité de votre instance DB. La commande mettra à jour tous les objets avec un nouveau propriétaire, y compris les ressources système (postgres0, postgres1, etc.)
Tout d'abord, connectez-vous à la base de données d'administration et mettez à jour la propriété de la base de données:
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;
Ceci est un équivalent mondial de ALTER DATABASE commande fournie dans la réponse de Frank, mais au lieu de mettre à jour une base de données particulière, cela change la propriété de toutes les bases de données appartenant à 'old_name'.
L'étape suivante consiste à mettre à jour la propriété des tables pour chaque base de données:
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;
Cela doit être effectué sur chaque base de données appartenant à 'old_name'. La commande mettra à jour la propriété de toutes les tables de la base de données.
postgreslui-même ... A appris ça à la dure.
REASSIGN OWNED(généralement parce que votre propriétaire l'est postgres), consultez les extraits dans stackoverflow.com/a/2686185/1839209 .