8

Suppose user foo owns a database gee, and user foo has granted user bar with all access privileges on database gee

gee=> \l
 List of databases
 Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 gee | foo | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/foo +
 | | | | | foo=CTc/foo +
 | | | | | bar=CTc/foo

We dump this database,

$ pg_dump -U foo -v -f gee.dump gee

In database gee user bar has created a schema. So because all of these users we restore database gee as user postgres (after user foo has created a database goo),

$ sudo -u postgres psql -d goo -f gee.dump

User bar does not have the access privileges on the database goo. But inside database goo every privilege is OK, for all users, on schemas and tables.

goo=> \l
 List of databases
 Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 goo | foo | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

Why are the access privileges on the database itself not restored?

James Anderson
5,7942 gold badges27 silver badges44 bronze badges
asked Jun 16, 2014 at 7:04
4
  • try use a superuser instead when pg_dump. Commented Jun 16, 2014 at 7:07
  • 1
    Does it emit a bunch of errors during pg_dump? Like, say, errors about GRANT and a user not existing? Commented Jun 16, 2014 at 7:11
  • @francs, it does not help. Commented Jun 16, 2014 at 7:19
  • @CraigRinger No, no errors. Commented Jun 16, 2014 at 7:19

1 Answer 1

6

Why are the access privileges on the database itself not restored?

It's a bug, or a design oversight. Though the responder to that report doesn't think so.

pg_dumpall --globals-only doesn't dump rights on the database. Neither does pg_dump as part of the database dump.

So grants on databases only get included in a full pg_dumpall.

I'll make some noise about it by poking this thread.

answered Jun 16, 2014 at 9:03

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.