[BUGS] BUG #14788: `pg_restore -c` won't restore schema access privileges. - Mailing list pgsql-bugs

From fujimoto@ceptord.net
Subject [BUGS] BUG #14788: `pg_restore -c` won't restore schema access privileges.
Date
Msg-id 20170821104439.1455.12525@wrigleys.postgresql.org
Whole thread Raw
Responses Re: [BUGS] BUG #14788: `pg_restore -c` won't restore schema access privileges.  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [BUGS] BUG #14788: `pg_restore -c` won't restore schema access privileges.  (Masahiko Sawada <sawada.mshk@gmail.com>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      14788
Logged by:          Fujimoto Seiji
Email address:      fujimoto@ceptord.net
PostgreSQL version: 9.6.4
Operating system:   Linux 4.9.0 (Debian 9.1)
Description:

## How to reproduce

1. Create a new database:
   $ createdb --template=template0 test   $ psql -c '\dn+' test                         list of schemas     name  |
owner  |  access privileges   |      description   --------+----------+----------------------+------------------------
 public | postgres | postgres=uc/postgres+| standard public schema           |          | =uc/postgres         |   (1
row)

2. pg_dump the database with 'custom' format:
   $ pg_dump -Fc -f test.dump test

3. Restore the dump with '-c' option:
   $ pg_restore -c -d test test.dump 


## Bug/Problem

Now all the access privileges on the public schema are gone:
   $ psql -c '\dn+' test                           List of schemas     Name  |  Owner   | Access privileges |
Description  --------+----------+-------------------+------------------------    public | postgres |
|standard public schema   (1 row)
 


## Expected behabior

Granted privileges gets restored correctly.


## Additional notes

Interestingly, if the database has been dumped with '-c' option,
pg_restore
will restore the schema privileges correctly.
   $ createdb --template=template0 test   $ pg_dump  -Fc -c -f test.dump    $ pg_restore -c -d test test.dump   $ psql
-c'\dn+' test                             List of schemas     Name  |  Owner   |  Access privileges   |
Description  --------+----------+----------------------+------------------------    public | postgres |
postgres=UC/postgres+|standard public schema           |          | =UC/postgres         |   (1 row)
 

(I do not understand why '-c' option affects the custom format dump.
This behaviour itself contradicts what the documentation states)

> -c
> --clean
>
> ...
> This option is only meaningful for the plain-text format. For the
archive
> formats, you can specify the option when you call pg_restore. 
>
> https://www.postgresql.org/docs/9.6/static/app-pgdump.html



--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

pgsql-bugs by date:

Previous
From: fadheljmuhammad@gmail.com
Date:
Subject: [BUGS] BUG #14787: Postgresql_for_odoo
Next
From: John Pierce
Date:
Subject: Re: [BUGS] centos 7 repository