Ответы:
ALTER DATABASE name OWNER TO new_owner;
Смотрите подробности в руководстве к Postgresql .
Ответ Фрэнка Хайкенса будет только обновлять базу данных владельцев. Часто вы также хотите обновить владельца принадлежащих объектов (включая таблицы). Начиная с 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 .