
Я следую этому руководству и, войдя в систему как postgres, запускаю:
createuser --interactive
указал имя и выбрал суперпользователя
затем:
createdb dogspot
но при попытке
sudo -i -u dogspot
Я получил:
postgres@ip-172-31-12-126:/home/ubuntu$ sudo -i -u dogspot
sudo: unknown user: dogspot
sudo: unable to initialize policy plugin
но пользователь точно существует, потому что при попытке снова создать пользователя появляется сообщение об уже существующем. Некоторые подсказки, как это сделать правильно, будут оценены.
версия базы данных:
psql (PostgreSQL) 9.3.4
версия ОС:
Ubuntu 14.04 LTS
ОБНОВЛЯТЬ:
похоже, что все, что нужно было сделать, это создать пользователя Linux с соответствующим именем:
sudo useradd -d /home/dogspot -m dogspot
sudo passwd dogspot
решение1
Вы путаете пользователей PostgreSQL и пользователей операционной системы.
Пользователь PostgreSQL может существовать без соответствующего пользователя операционной системы.
По умолчанию для подключений используется peer
аутентификация, при которой вы должны работать как пользователь ОС с тем же именем, что и у пользователя PostgreSQL, к которому вы пытаетесь подключиться.pg_hba.conf
Но вы можете это изменить ., для всех пользователей или только для некоторых пользователей/БД. Подробнее см.аутентификация клиентаглава.