Задать вопрос

Какой grant необходим для pg_restore?

Добрый день.

Подскажите, пж, с восстановлением из бэкапа на тестовый сервер.

На тесте создаю новую БД и две роли в ней

CREATE ROLE dbadm WITH LOGIN NOSUPERUSER;
CREATE ROLE task_manager WITH LOGIN NOSUPERUSER;


При восстановлении под dbadm получаю ошибку при назначении владельца:

pg_restore: creating TYPE "task_manager.assert_type"
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 2840; 1247 220283 TYPE assert_type task_manager
pg_restore: error: could not execute query: ERROR: permission denied for schema task_manager
Command was: ALTER TYPE task_manager.assert_type OWNER TO task_manager;


До восстановления схемы-то еще нет "permission denied for schema task_manager" - именно на нее же никак не дать права заранее.

Какой GRANT на тесте надо выдать "заранее" при создании роли, под которой идет восстановление из бэкапа,
чтобы корректно назначались владельцы в объектах схем, которых еще нет?

Эти не помогли:
GRANT task_manager TO dbadm WITH ADMIN OPTION;
GRANT ALL PRIVILEGES ON DATABASE db TO dbadm WITH GRANT OPTION;
GRANT ALL ON DATABASE db TO dbadm WITH GRANT OPTION;
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Lorien_Elf
@Lorien_Elf
Keep calm and drop database
"Only the owner or a superuser can use ALTER TABLE."
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Права можно выдать и для ещё не существующей схемы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы