psql: FATAL: аутентификация идентификатора не удалась для пользователя "postgres" - PullRequest
348 голосов
/ 31 мая 2010

Я установил PostgreSQL и pgAdminIII на свою коробку Ubuntu Karmic.

Я могу успешно использовать pgAdminIII (т.е. подключиться / войти в систему), однако, когда я пытаюсь войти на сервер, используя то же имя пользователя / pwd в командной строке (используя psql), я получаю ошибку:

psql: FATAL:  Ident authentication failed for user "postgres"

Кто-нибудь сейчас решает эту проблему?

Ответы [ 21 ]

7 голосов
/ 18 июля 2014

Проблема по-прежнему в вашем файле pg_hba.conf. Эта строка: Вы можете найти этот файл в / etc / postgres / varion / main

local   all             postgres                                peer
Should be

local   all             postgres                                md5

Это краткое описание обеих опций в соответствии с официальными документами PostgreSQL по методам аутентификации.

Одноранговая аутентификация

Метод одноранговой аутентификации работает путем получения имени пользователя операционной системы клиента из ядра и использования его в качестве разрешенного имени пользователя базы данных (с необязательным отображением имени пользователя). Этот метод поддерживается только для локальных подключений.

Аутентификация по паролю

Методы аутентификации на основе пароля: md5 и пароль. Эти методы работают аналогично, за исключением того, что пароль передается по соединению, а именно, MD5-хэшированный и открытый текст соответственно.

Если вас вообще беспокоят атаки с "перехватом" пароля, тогда md5 предпочтительнее. Простой пароль всегда следует избегать, если это возможно. Однако md5 нельзя использовать с функцией db_user_namespace. Если соединение защищено шифрованием SSL, пароль можно использовать безопасно (хотя аутентификация SSL-сертификата может быть лучшим выбором, если вы используете SSL).

После изменения этого файла не забудьте перезапустить ваш сервер PostgreSQL. Если вы используете Linux, это будет sudo service postgresql restart.

6 голосов
/ 16 октября 2013

Мое решение для PostgreSQL 9.3 на Mac OSX в оболочке bash было использовать sudo для перехода в папку данных, а затем добавить необходимые строки в файл pg_hba.conf, чтобы все пользователи могли быть доверенными и войти. Вот что я сделал:

# in bash_profile edit PGDATA environmental variable
open ~/.bash_profile

# append this line to bash_profile
export PGDATA="/Library/PostgreSQL/9.3/data"

# reload bash_profile
source ~/.bash_profile

# open pg_hba.conf in vim
sudo vi /Library/PostgreSQL/9.3/data/pg_hba.conf

# append these two lines to the end of the pg_hba.conf file
local   all   all                  trust
host    all   all   127.0.0.1/32   trust

# can now login as user in bash
psql -d <db_name> -U <user_name> -W
4 голосов
/ 18 сентября 2014

Я потратил больше времени на устранение этой ошибки, которую хочу признать.

Порядок настройки аутентификации в pg_hba.conf уместен в вашем случае, я думаю. Конфигурационный файл по умолчанию содержит несколько строк в стандартной установке. Эти значения по умолчанию могут соответствовать условиям ваших попыток аутентификации, что приводит к невозможности аутентификации. Сбой происходит независимо от добавления дополнительной конфигурации в конец файла .conf.

Чтобы проверить, какая строка конфигурации используется, обязательно посмотрите сообщения в файле журнала по умолчанию. Вы можете увидеть что-то вроде этого

LOG:  could not connect to Ident server at address "127.0.0.1", port 113: Connection refused
FATAL:  Ident authentication failed for user "acme" 
DETAIL:  Connection matched pg_hba.conf line 82: "host     all             all             127.0.0.1/32            ident"

Оказывается, эта строка по умолчанию вызывает отклонение.

host    all             all             127.0.0.1/32            ident

попробуйте закомментировать.

4 голосов
/ 14 апреля 2013

Если вы сделали все это, и оно все еще не работает, проверьте срок действия этого пользователя:

Сбой аутентификации с помощью пароля Postgres

3 голосов
/ 16 сентября 2014

Один из способов сделать это - отредактировать pg_hba.conf

sudo vi /etc/postgresql/9.3/main/pg_hba.conf

Временно

# Database administrative login by Unix domain socket
local   all             postgres                                   trust

На этом вы закончили. Для безопасности, затем иди и

sudo -u postgres psql template1
ALTER USER postgres with encrypted password 'your_password';

затем вернитесь и установите pg_hba.conf обратно на

# Database administrative login by Unix domain socket
local   all             postgres                                   md5
2 голосов
/ 24 октября 2017

Для fedora26 и postgres9.6

Сначала войдите в систему как пользователь root
затем введите psql с помощью следующих команд
$ su postgres
затем введите $ psql

в psql найти расположение hba_file ==> означает pg_hba.conf

postgres = # show hba_file;

hba_file

/ и т.д. / PostgreSQL / 9.6 / Основной / pg_hba.conf
(1 ряд)

в файле pg_hba.conf изменить доступ пользователя к этому

host all all 127.0.0.1/32 md5

2 голосов
/ 09 сентября 2017

В моем случае, решение здесь: (для заинтересованных лиц) войти в postgres:

sudo -i -u postgres
psql
ALTER USER postgres WITH PASSWORD 'postgres'; # type your password here

привет

1 голос
/ 22 февраля 2016

У меня была похожая проблема, и я исправил ее в pg_hba.conf при удалении всех методов идент даже для адреса IP6 (несмотря на то, что у меня только IP4 на машине).

host all all 127.0.0.1/32 password
host all all ::1/128 password
#for pgAdmin running at local network
host all all 192.168.0.0/24 md5
0 голосов
/ 21 февраля 2017

Если вы используете его в CentOS, вам может потребоваться перезагрузить postgres после принятия вышеуказанных решений:

systemctl restart postgresql-9.3.service
0 голосов
/ 30 июня 2016

Это сработало для меня: http://tecadmin.net/fatal-ident-authentication-failed-for-user-postgres/#

local   all             postgres                                trust
local   all             myapp_usr                               trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
#host    all             all             ::1/128                 trust
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...