From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Sergey Koposov <skoposov(at)cmu(dot)edu> |
Cc: | "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: pg_dump schema in pg11 without global permissions |
Date: | 2019-07-23 23:04:33 |
Message-ID: | 7bc24eb3-40a7-f402-db03-3b9c00eb1751@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 7/23/19 3:58 PM, Sergey Koposov wrote:
> On Tue, 2019-07-23 at 15:52 -0700, Adrian Klaver wrote:
>> On 7/23/19 3:42 PM, Sergey Koposov wrote:
>>>
>>> On Tue, 2019-07-23 at 15:37 -0700, Adrian Klaver wrote:
>>>>
>>>> On 7/23/19 3:23 PM, Sergey Koposov wrote:
>>>>>
>>>>>
>>>>> On Tue, 2019-07-23 at 15:21 -0700, Adrian Klaver wrote:
>>>>>>
>>>>>>
>>>>>> On 7/23/19 3:19 PM, Sergey Koposov wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm trying to copy a schema from one PG database (ver 11) to PG 10.
>>>>>>> Previously the first database version was 9.6 and the way I did the copying was
>>>>>>>
>>>>>>> ssh -o Compression=no user(at)host '/opt/pgsql/bin/pg_dump --no-tablespaces -n schemaname -Fc -U dbadmin dbname' | pg_restore -U dbadmin -h localhost -1 -d dbnme
>>>>>>>
>>>>>>> However after migrating from PG 9.6 to 11, when I did the same thing as before, I started getting a bunch of commands in the dump like this
>>>>>>>
>>>>>>> GRANT CONNECT ON DATABASE dbname TO usernameXX;
>>>>>>>
>>>>>>> which don't work for me because the list of users is different between different machines.
>>>>>>> It is clear that the change is related to the way pg_dump is implemented now in PG11 that global objects are dumped.
>>>>>>> But the question is how do I duplicate the previous behaviour, i.e. Dump just the schema and permission on the schema, not on the database.
>>>>>> https://www.postgresql.org/docs/11/app-pgdump.html
>>>>>>
>>>>>> -x
>>>>>> --no-privileges
>>>>>> --no-acl
>>>>>>
>>>>>> Prevent dumping of access privileges (grant/revoke commands).
>>>>> Yes I saw that, but that will not dump privileges on the schema itself, which were dumped before as far as I understand ...
>>>> So the roles for the schema don't change, but everything else does?
>>> The schema permissions are granted to a generic user 'dbuser'. And a bunch of users are members of this role and that's how they access the schema.
>>> The database permissions on the other hand are granted specifically per individual user.
>> What version of pg_dump are you using?
>>
>> When I dump a version 10 database using a version 11 pg_dump I do not
>> see: GRANT CONNECT ON DATABASE
>>
>> pg_dump -Fc -n utility -s -d production -U postgres -p 5422 -f
>> schema_test.out
>>
>> pg_restore -f schema_test_fc.sql schema_test.out
>
> I'm dumping version 11 database using version 11 pg_dump. I double checked this.
>
> I don't know if in your test-case you have custom users whom you granted connect permissions. I do have them.
> Also what I'm seeing matches perfectly the release notes on pgdump which explicitely mention dumping of the global properties.
> https://www.postgresql.org/docs/11/release-11.html#id-1.11.6.9.4
That is only supposed to happen if you use -C(--create) and I am seeing
that in your examples.
>
>
> S
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2019-07-23 23:09:46 | Re: pg_dump schema in pg11 without global permissions |
Previous Message | Sergey Koposov | 2019-07-23 22:58:54 | Re: pg_dump schema in pg11 without global permissions |