Обсуждение: Restoring a database as another user

Поиск
Список
Период
Сортировка

Restoring a database as another user

От
"David Garamond"
Дата:
My goal is to restore someone's (e.g. Jim's) database by the superuser to be owned by a new user (e.g. Bob). Jim and Bob connects using password and I (the superuser) do not know their passwords.

Is it possible to do pg_restore, connecting as the superuser, specifying --no-owner, but making so that all objects now be owned by the new user (e.g. Bob)? Or do I have to resort to other tricks (like doing ALTER OWNER later, or modifying pg_hba.conf temporarily so the superuser can connect as Jim without a password)?

Regards,
Dave

Re: Restoring a database as another user

От
Tom Lane
Дата:
"David Garamond" <davidgaramond@gmail.com> writes:
> My goal is to restore someone's (e.g. Jim's) database by the superuser to be
> owned by a new user (e.g. Bob). Jim and Bob connects using password and I
> (the superuser) do not know their passwords.

I think you'd need a two-step process:

    pg_restore --no-owner mydb.dump >mydb.script

    psql -U superuser template1
    psql=> create database foo owner bob;
    psql=> \c foo
    psql=> set session authorization bob;
    psql=> \i mydb.script


            regards, tom lane