postgres: резервное копирование и восстановление от имени другого пользователя: следует ли использовать и --username, и --role вместе с --no-owner - PullRequest
0 голосов
/ 05 мая 2020

Я прочитал несколько сообщений об этом топе c

В настоящее время для резервного копирования я делаю следующее. Мой владелец базы данных - owner1

pg_dump --username=postgres -Fc dbname -f db_name.dump 

. Я слышал, что любой суперпользователь (здесь postgres) или даже пользователь с разрешением на чтение может делать резервную копию. Это не обязательно должен быть владелец базы данных.

Теперь я хочу выполнить восстановление с другим пользователем, который также является superuser (мы назовем его owner2).

У меня есть база данных под названием owner2_db, созданная owner2

pg_restore -v -d owner2_db --no-owner --username=owner2 --role=owner2 db_name.dump

Потому что в некоторых местах, которые я видел, они не используют --role=owner2. Так что в моем случае правильный?

1 Ответ

0 голосов
/ 05 мая 2020

Если вы подключаетесь к базе данных как роль x, нет необходимости запускать дополнительный SET ROLE x, поэтому вы можете опустить параметр --role. Это полезно, если вы хотите, чтобы объекты принадлежали роли NOLOGIN.

При восстановлении от имени другого пользователя, а исходные роли не существуют в целевом кластере, вы можете использовать Опции -x и -O.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...