Hi all, doing a postgres dump I a couple of time in an annoying problem:
# pg_dumpall -g > pg_user.sql # head -n 12 pg_user.sql -- -- PostgreSQL database cluster dump --
\connect "template1"
-- -- Users --
DELETE FROM pg_shadow WHERE usesysid <> (SELECT datdba FROM pg_database WHERE datname = 'template0');
Now if the file pg_user.sql is used accidentally by a user that is not postgres the result is that all users are deleted ( also the user that is doing the restore ) and no other user is created.
May be the "DELETE" phase shall be:
DELETE FROM pg_shadow WHERE usesysid <> (SELECT datdba FROM pg_database WHERE datname = 'template0') AND usename <> current_user;
am I miss something ?
Regards Gaetano Mendola
---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings