Hi pgsql-hackers,

I have a relatively trivial proposal - this affects pg_dumpall exclusively. 
Primary use case in ability to use pg_dumpall without SUPERUSER.

* Add --no-alter-role flag to only use CREATE ROLE syntax instead of CREATE 
then ALTER.
* Add --exclude-role flag similar to --exclude-database, semantically 
equivalent but applying to ROLEs.
* Add --no-granted-by flag to explicitly omit GRANTED BY clauses.
* Likely controversial - add --merge-credentials-file which loads ROLE/PASSWORD 
combinations from an ini file and adds to dump output if ROLE password not 
present. Implemented with an external library, inih.

All together, based against REL_12_STABLE:
https://github.com/remingtonc/postgres/compare/REL_12_STABLE...remingtonc:REL_12_STABLE_DUMPALL_CLOUDSQL

Example usage used against GCP Cloud SQL:
pg_dumpall --host=$HOST --username=$USER --no-password \
    --no-role-passwords --merge-credentials-file=$CREDENTIALS_PATH \
    --quote-all-identifiers --no-comments --no-alter-role --no-granted-by \
    --exclude-database=postgres\* --exclude-database=template\* 
--exclude-database=cloudsql\* \
    --exclude-role=cloudsql\* --exclude-role=postgres\* \
    --file=$DUMP_PATH

Before I go to base against master and split in to individual patches - does 
this seem reasonable?

Best,
Remington


Reply via email to