Відповіді:
ALTER DATABASE name OWNER TO new_owner;
Докладнішу інформацію див . У статті посібника Postgresql щодо цього .
ERROR: must be member of role ...
= НЕ працює з RDS
Відповідь Франка Хайкенса буде лише оновити право власності на базу даних. Часто також потрібно оновити право власності на об'єкти, що містяться (включаючи таблиці). Починаючи з Postgres 8.2, для спрощення цього завдання доступний REASSIGN OWNED .
ВАЖЛИВО ЗМІСТ!
Ніколи не використовуйте REASSIGN OWNED
коли оригінальну роль postgres
, це може пошкодити весь екземпляр БД. Команда оновить усі об'єкти з новим власником, включаючи системні ресурси (postgres0, postgres1 тощо)
Спочатку підключіться до бази даних адміністратора та оновіть право власності на БД:
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;
Це глобальний еквівалент ALTER DATABASE
команди, наданий у відповіді Франка, але замість оновлення конкретної БД вона змінює право власності на всі БД, що належать "old_name".
Наступним кроком є оновлення права власності на таблиці для кожної бази даних:
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;
Це потрібно виконати для кожної БД, що належить 'old_name'. Команда оновить право власності на всі таблиці в БД.
postgres
сам ... Навчився цього важкого шляху.
REASSIGN OWNED
(як правило, тому що ваш власник postgres
) див. Фрагменти в stackoverflow.com/a/2686185/1839209 .