Обсуждение: dumping a password-protected db from a perl script or a binary

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

dumping a password-protected db from a perl script or a binary

От
dima
Дата:
How can i dump a password-protected database using perl (DBI or pg) or C
(using libpq)? I can't pass the password to pg_dump utility (I was
trying to pass it via tty also) when running system() from perl.



Re: dumping a password-protected db from a perl script or a binary

От
Artur Pietruk
Дата:
On Mon, Nov 04, 2002 at 04:32:38PM +0300, dima wrote:
> How can i dump a password-protected database using perl (DBI or pg) or C
> (using libpq)? I can't pass the password to pg_dump utility (I was
> trying to pass it via tty also) when running system() from perl.

    Isn't example below something like what you are trying to do:

====8<====
#include <stdio.h>
#include <stdlib.h>

int main(void) {
        system("export PGDATABASE=\"test\"; export PGPASSWORD=\"test\"; export PGUSER=\"test\"; psql");

        exit(0);
}
====8<====

    ? Here psql should connect to db 'test' as user 'test', password
'test'. Check if it works with pg_dump.

    I hope that helps! BTW - there are also other ways to do that...
Check docs of your pg version. $PGPASSWORD is deprecated.

    Best regards,
--
--- Artur Pietruk, arturp@plukwa.net

Re: dumping a password-protected db from a perl script or

От
dima
Дата:
>>How can i dump a password-protected database using perl (DBI or pg) or C
>>(using libpq)? I can't pass the password to pg_dump utility (I was
>>trying to pass it via tty also) when running system() from perl.
>
>
>     Isn't example below something like what you are trying to do:
>
> ====8<====
> #include <stdio.h>
> #include <stdlib.h>
>
> int main(void) {
>         system("export PGDATABASE=\"test\"; export PGPASSWORD=\"test\"; export PGUSER=\"test\"; psql");
>
>         exit(0);
> }
> ====8<====
>
>     ? Here psql should connect to db 'test' as user 'test', password
> 'test'. Check if it works with pg_dump.

This doesn't work on my 7.2.1 installation :/
I need to run pg_dump actually.



Re: dumping a password-protected db from a perl script or

От
dima
Дата:
>>How can i dump a password-protected database using perl (DBI or pg) or C
>>(using libpq)? I can't pass the password to pg_dump utility (I was
>>trying to pass it via tty also) when running system() from perl.
>
>
>     Isn't example below something like what you are trying to do:
>
> ====8<====
> #include <stdio.h>
> #include <stdlib.h>
>
> int main(void) {
>         system("export PGDATABASE=\"test\"; export PGPASSWORD=\"test\"; export PGUSER=\"test\"; psql");
>
>         exit(0);
> }
> ====8<====
>
>     ? Here psql should connect to db 'test' as user 'test', password
> 'test'. Check if it works with pg_dump.
>
>     I hope that helps! BTW - there are also other ways to do that...
> Check docs of your pg version. $PGPASSWORD is deprecated.

Thanks to Artur! I solved my problem another way using his hint.
I needed to make backups of a non-constant set of DBs as a cron job. I
connected to the main DB the usual way & made "select datname from
pg_database". Then I setup the environment correctly & forked a child
(pg_dump) for every DB in the list i got.
It will be a pity if $PGPASSWORD would dissapear in the future releases
of PostgreSQL since users wouldn't be able to automate some DB
maintainance tasks. I enjoy MySQL allowing to provide password @ the
prompt actually. Maybe this feature would be added to Postgres later.