Код, который я попытался выполнить в bash, выполненном root.Как перечислить базы данных, принадлежащие rolename в postgresql
#!/bin/bash
su - postgres <<EOF1
F="$(psql -d postgres --tuples-only -P format=unaligned -c "SELECT datname FROM pg_database JOIN pg_authid ON pg_database.datdba = pg_authid.oid WHERE rolname = 'username'")"
EOF1
echo $F
Это дает выход в ОШИБКА: Разрешение отказано в связи pg_authid
Но когда я пытаюсь
su - postgres <<EOF1
psql -d postgres --tuples-only -P format=unaligned -c "SELECT datname FROM pg_database JOIN pg_authid ON pg_database.datdba = pg_authid.oid WHERE rolname = 'username'"
EOF1
Это печатает все дб этого пользователя. Почему так?
Мне нужно сохранить выход для переменной bash для дальнейшей обработки.
Есть ли какая-то ошибка или anyother способ попробовать это ..
Спасибо.
Это сработало. Я ценю ваше Объяснение. – Johnbritto