Ошибка аутентификации в одноранговой сети для пользователя со всеми привилегиями в Postgres 9.5
Я хочу создать пользователя, который имеет доступ только к указанной базе данных. Тем не менее, он должен иметь все разрешения. Я использую Postgresql 9.5 на Ubuntu 14.04. Итак, прежде всего, я создаю нового пользователя:
$createuser --interactive joe
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Далее я создаю новую базу данных с владельцем Джо:
$sudo -u postgres psql
$CREATE DATABASE myDB OWNER joe;
$GRANT ALL ON DATABASE myDB TO joe;
После этого я пытаюсь соединиться с пользователем joe для подключения к моей базе данных myDB:
$psql myDB -U joe
psql: FATAL: Peer authentication failed for user "joe"
Что мне делать дальше?
1 ответ
Решение
открыто
/etc/postgresql/9.5/main/pg_hba.conf
с корневым доступомsudo nano /etc/postgresql/9.5/main/pg_hba.conf
+ Изменить
peer
вmd5
в этих строках.Перед сменой
# "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 peer # IPv6 local connections: host all all ::1/128 peer
После вашего изменения
# "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Сохраните файл, нажав Ctrl-O. Выйти из нано с помощью Ctrl-X
Перезапустите postgresql, используя
sudo service postgresql restart