nikhil raj wrote:
> /usr/lib/postgresql/11/bin/psql -p 5432 -U postgres -d $DBLIST -c "GRANT
> CONNECT ON DATABASE \"$DBLIST\" TO cpupdate"
> ERROR: database " CDF_100_1313" does not exist
That's because you don't use the unaligned format to get the
list of results. You should add -A to psql options.
Or better yet, use a simpler method that does not use
shell variables at all and work with a single psql call:
$ psql -U postgres -d postgres <<EOF
select format('GRANT CONNECT ON DATABASE %I TO cpupdate',
datname) FROM pg_database WHERE <insert conditions here>
\gexec
EOF
That's possible because you don't need to be connected to
a database to grant the right to connect to that database.
Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite