LINUX.ORG.RU
ФорумAdmin

pg_dump: а как же юзеры??

 ,


0

3

В качестве «швейцарского ножа» для бэкапа PostgreSQL все, кому не лень, используют pg_dump. При этом я не видел ещё ни одной статьи/заметки/упоминания в оф.документации того печального факта, что в дампе, созданном pg_dump'ом, нет никаких учётных записей пользователей.
Теперь предположим на минутку, что у нас 100500 пользователей базы, и всем им назначены какие-то права. Делаем pg_dump, ресторим на другой хост... И получаем полную туфту вместо базы, потому что права доступа к данным порой не менее важны, чем сами эти данные.
Эмм... подозреваю, что дампа должно быть два. Один из них - системной базы, содержащей учётки пользователей.
При этом второй дамп наверняка должен быть SQL-дампом, иначе будет проблематично смержить одну системную базу с другой (а так ну зафейлится часть SQL-команд, таки ничего страшного).
Мыслю ли я в нужном направлении?

★★★★★

Ответ на: комментарий от MikeDM

В чём, собственно, глупости? В базе данных не содержатся учётки пользователей. Ну ок, роли...
Я просто уже задолбался при restore'е мучаться с тем, что нужно ещё и юзеров предварительно всех пересоздать, это маразм какой-то.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от maxcom

права то там есть, а юзеров нет.

Вот именно! Видимо, у нас такие «спецы», что дальше локалхоста у них руки не растут. Или пользователь на базу один с правами суперюзера, так что невелика беда и правда :D

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Видимо, у нас такие «спецы», что дальше локалхоста у них руки не растут.

Ты бы ман сначала почитал, а потом кудахтал. Есть pg_dumpall, а pg_dump на другом уровне работает.

anonymous
()
Ответ на: комментарий от leave

Не-а. Мне нужно сдампить одну базу из 10-ти, зачем мне pg_dumpall? У меня ни терпения не хватит, ни места, чтобы всё сдампить. И по факту я отнюдь не уверен в том, что именно юзеров-то оно сдампит. Небось сделает дамп всех обычных баз и всё.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Сорри, кажется pg_dumpall -r и правда должен делать то, что требуется.
Вообще такая «очевидная» связка: pg_dump'ом делаем дамп базы, а pg_dumpall -r'ом копируем юзеров! Одна семантика чего стоит...

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от leave

Кстати, результат pg_dumpall -r и -g ресторится только обычным psql'ем, pg_restore это не признаёт :)
А ещё неиллюзорно доставляет то, КУДА pg_restore «восстанавливает» базу по умолчанию. Такой дебилизм только в Postgres могли придумать :D

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от ventilator

Я им и пользовался всегда, просто это не всегда подходит... В данном случае нужно было ещё и сменить версию PostgreSQL (9.1 -> 9.2)

DRVTiny ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.