Я следую этому уроку и вошел в систему как 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 ответ1

2

Вы путаете пользователей PostgreSQL и пользователей операционной системы.

Пользователь PostgreSQL может существовать без соответствующего пользователя операционной системы.

По умолчанию соединения используют peer аутентификацию, где вы должны работать как пользователь ОС с тем же именем, что и пользователь PostgreSQL, к которому вы пытаетесь подключиться. Вы можете изменить это в pg_hba.conf для всех пользователей или только для некоторых пользователей / БД. Для более подробной информации см. Главу « Проверка подлинности клиента» .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .