Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1quatE-000uCw-Bb for pgsql-admin@arkaria.postgresql.org; Sun, 22 Oct 2023 16:01:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1quatA-00HMN4-TO for pgsql-admin@arkaria.postgresql.org; Sun, 22 Oct 2023 16:01:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1quatA-00HMMw-4a for pgsql-admin@lists.postgresql.org; Sun, 22 Oct 2023 16:01:17 +0000 Received: from jakobs.com ([85.214.83.89] helo=rs.plausibolo.de) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1quat7-001laQ-Fz for pgsql-admin@lists.postgresql.org; Sun, 22 Oct 2023 16:01:15 +0000 Received: from localhost (localhost [127.0.0.1]) by rs.plausibolo.de (Postfix) with ESMTP id 237E83801A1; Sun, 22 Oct 2023 18:01:11 +0200 (CEST) Received: from rs.plausibolo.de ([127.0.0.1]) by localhost (h2367442.stratoserver.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8Yc_q8Qy_BbU; Sun, 22 Oct 2023 18:01:10 +0200 (CEST) Received: from [192.168.178.86] (xdsl-87-78-210-232.nc.de [87.78.210.232]) by rs.plausibolo.de (Postfix) with ESMTPSA id 8F838380154; Sun, 22 Oct 2023 18:01:10 +0200 (CEST) Message-ID: <48169403-a74e-aedc-933a-cdf3f9aa9b6e@jakobs.com> Date: Sun, 22 Oct 2023 18:01:09 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Content-Language: de-DE To: pgsql-admin@lists.postgresql.org References: From: Holger Jakobs Subject: Re: User/Roles, Owner, and privileges migration strategy In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------YUEFjUHHHaQg09Ytcne1esV6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------YUEFjUHHHaQg09Ytcne1esV6 Content-Type: multipart/mixed; boundary="------------290jqm4pXsf5KjffeUY4BUM8"; protected-headers="v1" From: Holger Jakobs To: pgsql-admin@lists.postgresql.org Message-ID: <48169403-a74e-aedc-933a-cdf3f9aa9b6e@jakobs.com> Subject: Re: User/Roles, Owner, and privileges migration strategy References: In-Reply-To: --------------290jqm4pXsf5KjffeUY4BUM8 Content-Type: multipart/alternative; boundary="------------JtSUi1EehQcPpnW0XwQn3I9Y" --------------JtSUi1EehQcPpnW0XwQn3I9Y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 QW0gMjIuMTAuMjMgdW0gMDQ6NTEgc2NocmllYiBBRElUWUEgRFVWVVJJOg0KPiBIaSBUZWFt LA0KPg0KPiBMZXQgbWUgdGFrZSBhIHVzZXIgc2NlbmFyaW8gaGVyZSwgSSBoYXZlIGFuIE9u LXByZW1pc2VzIFBvc3RncmVTUUwgDQo+IGluc3RhbmNlIHdpdGggNTAgZGF0YWJhc2VzLiBP dXQgb2Ygd2hpY2ggSSBuZWVkIHRvIG1pZ3JhdGUgb25seSAxNSANCj4gZGF0YWJhc2VzLiBU aGVyZSBhcmUgYXJvdW5kIDEwIGRpZmZlcmVudCB1c2VycyBhbmQgcm9sZXMgYW5kIG1pbGxp b25zIA0KPiBvZiBkaWZmZXJlbnQgZGF0YWJhc2Ugb2JqZWN0cy4NCj4gSW4gdGhpcyBleGFt cGxlIGF0IHRoZSBkYXRhYmFzZSBsZXZlbCB0aGUgb3duZXIgZm9yIHNvbWUgb2JqZWN0cyBh cmUgLQ0KPiBpbWFnZS5wbmcNCj4NCj4gV2hlbiBJIHBlcmZvcm0gcGdfZHVtcCB3aXRoIG93 bmVycyBhbmQgQUNMLiB0aGUgc3RhdGVtZW50cyBmb3JtZWQgYXJlIC0NCj4NCj4gICAqIENy ZWF0ZSBUYWJsZTINCj4gICAqIEFsdGVyIE93bmVyIFRhYmxlMiB0byB1c2VyMg0KPiAgICog R3JhbnQgQWxsIHByaXZpbGVnZXMgb24gVGFibGUyIHRvIHVzZXIyDQo+DQo+IFRoZSBpc3N1 ZSB3aGlsZSByZXN0b3JpbmcgdGhlIGFib3ZlIGR1bXAgZmlsZSBjcmVhdGVkIGluIGFueSAN Cj4gb24tcHJlbWlzZXMvQVdTL0dDUCBQb3N0Z3JlU1FMIGluc3RhbmNlIGZhaWxzIHNpbmNl IHRoZSBncmFudCANCj4gc3RhdGVtZW50cyBoYXZlIHRvIGJlIGV4ZWN1dGVkIGZpcnN0IGJl Zm9yZSB0aGUgQWx0ZXIgb3duZXIgc3RhdGVtZW50Lg0KPg0KPiBPbmUgb2YgdGhlIHNvbHV0 aW9ucyBpcyB0byBoYXZlIG11bHRpcGxlwqBwZ19kdW1wIHN0YXRlbWVudHMgbGlrZSAtDQo+ DQo+ICAgKiBwZ19kdW1wIC0gc2NoZW1hIG9ubHkgd2l0aCBubyBvd25lciBubyBBQ0wNCj4g ICAqIHBnX2R1bXDCoCAtc2NoZW1hIG9ubHkgd2l0aCBBQ0wgfCBzZWQgIkdyYW50IEFsbCIN Cj4gICAqIHBnX2R1bXAgLXNjaGFtZSBvbmx5IHdpdGggb3duZXIgfCBzZWQgIkFsdGVyIG93 bmVyIg0KPg0KPiBUaGUgYWJvdmUgc29sdXRpb24gbWlnaHQgaGF2ZSBhIHBlcmZvcm1hbmNl IGltcGFjdCBzaW5jZSB0aGUgc291cmNlIA0KPiBtaWdodCBjb250YWluIG1pbGxpb25zwqBv ZiBvYmplY3RzIGFuZCBwZXJmb3JtaW5nIHBnX2R1bXAgaXMgYW4gDQo+IGV4cGVuc2l2ZSBv cGVyYXRpb24gbXVsdGlwbGUgdGltZXMuIElzIHRoZXJlIGFueSBvdGhlciB3YXkgdG8gcGVy Zm9ybSANCj4gZGlmZmVyZW50IG93bmVyc2hpcCBvZiBvYmplY3RzIGFuZCBncmFudCBtaWdy YXRpb24gZnJvbSBzb3VyY2UgdG8gDQo+IHRhcmdldCBQb3N0Z3JlU1FMIGluc3RhbmNlcyBm b3IgdGhhdCBzcGVjaWZpYyBkYXRhYmFzZSBhbmQgaW4gYW4gDQo+IGF1dG9tYXRlZCB3YXk/ DQo+DQo+IFNvdXJjZSB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgaW5zdGFuY2UgY2FuIGJlIC0g MTAsMTEsMTINCj4gVGFyZ2V0IHZlcnNpb24gb2YgUG9zdGdyZVNRTCBpbnN0YW5jZSBjYW4g YmUgLSAxNCwgMTUNCj4NCj4gVGhhbmtzICYgUmVnYXJkcywNCj4gQWRpdHlhIEQNCj4NCj4g T24gRnJpLCAyMCBPY3QgMjAyMyBhdCAyMDozOSwgRGF2aWQgRy4gSm9obnN0b24gDQo+IDxk YXZpZC5nLmpvaG5zdG9uQGdtYWlsLmNvbT4gd3JvdGU6DQo+DQo+DQo+DQo+ICAgICBPbiBG cmlkYXksIE9jdG9iZXIgMjAsIDIwMjMsIEFESVRZQSBEVVZVUkkgPGFkaWxvdmUxOTg3QGdt YWlsLmNvbT4NCj4gICAgIHdyb3RlOg0KPg0KPiAgICAgICAgIEhpIFRlYW0sDQo+DQo+ICAg ICAgICAgQ2FuIHlvdSBwbGVhc2UgbGV0IHVzIGtub3cgd2hhdCBpcyB0aGUgYmVzdCBzdHJh dGVneSBvcg0KPiAgICAgICAgIGRpZmZlcmVudCBhcHByb2FjaGVzIHRvIG1pZ3JhdGUgdXNl cnMvcm9sZXMsIHByaXZpbGVnZXMgYW5kDQo+ICAgICAgICAgb3duZXIgdG8gZGlmZmVyZW50 IFBhYVMgUG9zdGdyZVNRTCBpbnN0YW5jZSBsaWtlIEFXUyBSRFMgb3INCj4gICAgICAgICBH Q1AgY2xvdWQgU1FMIGZyb20gb24tcHJlbWlzZXM/DQo+DQo+DQo+ICAgICBFeGVjdXRlIHRo ZSBtaWdyYXRpb24gc2NyaXB0cyB5b3UgaGF2ZSBzaXR0aW5nIGluIHZlcnNpb24gY29udHJv bA0KPiAgICAgYWdhaW5zdCB0aGUgbmV3IHNlcnZlciB0aGVuIHJlc3RvcmUgdGhlIGR1bXBl ZCBkYXRhLg0KPg0KPiAgICAgRGF2aWQgSi4NCj4NCg0KT3JkaW5hcnkgRHVtcCBmaWxlcyBh cmUgbWFkZSB0byBiZSByZXN0b3JlZCBieSBhIHN1cGVydXNlciByb2xlLCBzbyB0aGF0IA0K R1JBTlQgYW5kIEFMVEVSIHN0YXRlbWVudHMgY2FuIGJlIGV4ZWN1dGVkIGluIGFueSBvcmRl ci4NCg0KRHVtcCBmaWxlcyBjcmVhdGVkIHdpdGggdGhlIG9wdGlvbiAtLW5vLW93bmVyIGNh biBiZSBwbGF5ZWQgYmFjayBieSBhbnkgDQp1c2VyIGNhcGFibGUgb2YgY3JlYXRpbmcgb2Jq ZWN0cywgYnV0IHRoZSBjcmVhdGVkIG9iamVjdHMgd2lsbCBiZSBvd25lZCANCmJ5IHRoZSBj cmVhdGluZyB1c2VyLg0KDQoNCi0tIA0KSG9sZ2VyIEpha29icywgQmVyZ2lzY2ggR2xhZGJh Y2gsIFRlbC4gKzQ5LTE3OC05NzU5MDEyDQoNCg== --------------JtSUi1EehQcPpnW0XwQn3I9Y Content-Type: multipart/related; boundary="------------0Wp9v20eK1n1zAUWukO0v3PQ" --------------0Wp9v20eK1n1zAUWukO0v3PQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Am 22.10.23 um 04:51 schrieb ADITYA DUVURI:
Hi Team,

Let me take a user scenario here, I have an On-premises PostgreSQL instance with 50 databases. Out of which I need to migrate only 15 databases. There are around 10 different users and roles and millions of different database objects.
In this example at the database level the owner for some objects are -=C2=A0
3D"image.png"<= br>

When I perform pg_dump with owners and ACL. the statements formed are -
  • Create Table2
  • Alter Owner Table2 to user2
  • Grant All privileges on Table2 to user2
The issue while restoring the above dump file created in any on-premises/AWS/GCP PostgreSQL instance fails since the grant statements have to be executed first before the Alter owner statement.

One of the solutions is to have multiple=C2=A0pg_dump statements like -
  • pg_dump - schema only with no owner no ACL
  • pg_dump=C2=A0 -schema only with ACL | sed "Grant All"
  • pg_dump -schame only with owner | sed "Alter owner"
The above solution might have a performance impact since the source might contain millions=C2=A0of objects and= performing pg_dump is an expensive operation multiple times. Is there any other way to perform different ownership of objects and grant migration from source to target PostgreSQL instances for that specific database and in an automated way?

Source version of PostgreSQL instance can be - 10,11,12
Target version of PostgreSQL instance can be - 14, 15

Thanks & Regards,
Aditya D

On Fri, 20 Oct 2023 at 20:39, David G. Johnston <= david.g.johnston@gmail.com> wrote:


On Friday, October 20, 2023, ADITYA DUVURI <= adilove1987@gmail.com> wrote:
Hi Team,

Can you please let us know what is the best strategy or different approaches to migrate users/roles, privileges and owner to different PaaS PostgreSQL instance like AWS RDS or GCP cloud SQL from on-premises?

Execute the migration scripts you have sitting in version control against the new server then restore the dumped data.

David J.


Ordinary Dump files are made to be restored by a superuser role, so that GRANT and ALTER statements can be executed in any order.

Dump files created with the option --no-owner can be played back by any user capable of creating objects, but the created objects will be owned by the creating user.


--=20
Holger Jakobs, Bergisch Gladbach, Tel. +49-178-9759012
--------------0Wp9v20eK1n1zAUWukO0v3PQ Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Id: Content-Transfer-Encoding: base64 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 wEzc+4F/4/MF3mr4oVQLpnbTELs+NMk8u+YConI5KbWhR453XqTnS9/bI6KlX3rea6+8dnre Hi28PpFxbRuvrdXSLz3vtQeugHs/cA18vvg3r52et0cLr09kXNvGa2u19EvP59rr91fYPy/3 /5Smi5WTLpzejK6woHiXnpybtQF445RqqVZjcq6nn4q08YzGMENvDL39VKmNt79FxgauLJLD aQ1oXdRqA7irnrzWOhqtCW+cUr3W6ljO9fRTkTae0Rhm6I2ht5+KtDltykOpJm16wfr9jBvG HRYTuApbe/aosTVW6lerw3TOUXZ+O+bOvaAlhlPrl84L7KL5lua1zeVRtZoBsF96r9KjJr1P 5frVaj2dc5Sd3465c79piWHX+km79Nhp+k9Key+gtkjAlewoUp1D66JnTm/jKcn1i9bn6jqW 8VfP4fFiyJ2LxhxtJ++fHiraF1ihZ48S5C3wP7111ELn0NrrmbNWt7Xxcv2ie8DqvULGXz2H x4shdy4as9eu9L7J6z050mPaQ2l6sXoB0cWyWhMauLvZBb+yTkqxUpsxrB+eJM1b7v3AtfD5 4j1G10/apYeanUc5S/6f0h2BA09gC76F1lhv/5StWfk6d+x2al4rGoNto33SYyZ7w9AcWDEP 0IL8A66j9/OB1nFv/5TdF/Q+lR67nZrXisZg22if9BiRfpZIzcqDiKkPpWngrRdSaj+64MBM uwpU59E/31IH6frO2nhbXCGGFrtyEshJ8681H0vtr1pvwCq79nKdR/98S62l63vi3n6FGK5q yU9KV9lVrMBJpzcmqTPvWK00186NuzcG2690rHQ6f4DZVtcM8Ban7w/pvTB3rFaay7u3z9Qb g+1XOu5s+kPprIU5XThARE+eprWh37eONVpjdzFjPxl1hRiAK9MaGa0T7v3AP/h8sd6MPWvU FWK4isv9pDR9Y7hB4Qlm5vGKmrjDhmhjPLUvlGJYuX4yz6nrBXbh3g/0mVkrK+qOzxcxJz9f nLrm1G3++u4dkhrv0buBRfM4baffn9w4dmxeO+bwrIphdNxoP/ZKPAn5jLexOd9yv4jWStpO v++9N82g98aVMeyYw7MqhlXjihVjllz6oXTnQgCtIjeO1k3iCjnvxRC98fXovanW5K6ndo2j McxeP9u+NLY3J3An5DPeLrrvt9TKFerKi6H1/tgiOnZLDLnrqV3jaAyz18+2966ldewen59J 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 T6UAAAAASUVORK5CYII= --------------0Wp9v20eK1n1zAUWukO0v3PQ-- --------------JtSUi1EehQcPpnW0XwQn3I9Y-- --------------290jqm4pXsf5KjffeUY4BUM8-- --------------YUEFjUHHHaQg09Ytcne1esV6 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wmMEABEIACMWIQScuJCxWJK1p5BOebGKV5yTsxlhugUCZTVHRQUDAAAAAAAKCRCKV5yTsxlhuqQt AJ4gwy2JUUICCu5cV2Z2D09tE75EYQCdEo6jwODVxQ2JdeTX4V2eyHqH6qE= =pYrT -----END PGP SIGNATURE----- --------------YUEFjUHHHaQg09Ytcne1esV6--