Chris,
I've just found a bit of undesirable functionality which I would call a bug in
pg_dump. I'm not sure everyone would, but we'll see.
Problem: the script which dumps globals such as users (pg_dumpall -g)
involves deleting *all* users from the pg_shadow table via a direct update to
that table. What this means in effect is that, should you attempt to use
"pg_dumpall -g" to *move* a set of users from one active server to another
(such as for transferring a database) the resulting pg_dump file will delete
all of the users which previously existed on that server.
This is a non-trivial accident to have happen on a shared machine; once users
are dumped, all of their ownerships and permissions go with them. If you
have a complex permissions system, better hope you backed up first!
I find this behavior highly undesirable, and consider it a bug. The globals
dump should just add users, and not delete any.
--
-Josh BerkusAglio Database SolutionsSan Francisco