Не могу перенаправить вывод в утилиту createuser. Postgresql

Не могу перенаправить вывод в утилиту createuser. Postgresql

17.05.2018 09:42:24 Просмотров 26 Источник

Нужно скриптом создать postgres юзера с паролем. Делаю через утилиту createuser под юзером postgres :

echo -e "PASSWORD\nPASSWORD\n" | createuser -P

в результате получаю запрос на ввод пароля: введите сюда описание изображения

Чо делать, как жить?

У вопроса есть решение - Посмотреть?

Ответы - Не могу перенаправить вывод в утилиту createuser. Postgresql / Не могу перенаправить вывод в утилиту createuser. Postgresql

JavaJunior

17.05.2018 09:56:09

Как вариант можно использовать expect. Что-то типа:

#!/usr/bin/expect
spawn createuser -P
expect "Enter password for new role:"
#below enter password
send "password"
expect eof
Sergey

17.05.2018 10:55:42

Чо делать, как жить?

Я в постгрессе не работал, но по аналогии, можно было бы попытаться это сделать в два шага в скрипте с параметрами "имя" и "пароль":

  1. Создаём пользователя без пароля

    createuser $1

  2. Изменяем таблицу пользователей, задавая пароль только что созданному пользователю:

    echo "ALTER USER $1 PASSWORD $2\nQUIT\n" | psql

Это я очень приблизительно написал, что бы идею только показать.

Является ответом!
Fat-Zer

17.05.2018 11:30:17

Как вариант

psql -c "CREATE ROLE ignat WITH LOGIN PASSWORD '123456'"
Закрыть X