2015-01-16 2 views
2

Я установил сервер Postgres db на CentOS и создал базу данных, mydb.ident vs md5 для аутентификации Postgres

psql получить доступ, как пользователь системы postgres и проверить, что она существует:

$ sudo -u postgres -i 
$ psql 
postgres=# \l 

Name | Owner | ...  
-------------------- 
mydb | postgres | ... 

Я затем настроить его:

(1) listen_addresses = 'localhost' является раскомментировать в postgresql.conf.

(2) Я установил пароль для пользователя postgres.

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

Но, подключение через psql -U postgres -h localhost и Pgadm3 неудачу с этой ошибкой:

Ident autentication failed for user "postgres" 

Я проверил /var/lib/pgsql/9.4/data/pg_hba.conf.

ident - метод по умолчанию для местных IPv6 и IPv4 соединений.

Я изменяю это от ident до md5.

Затем соединение через Pgadmi3 и psql работы, как ожидается,

Почему ident неудачу?

+0

http://www.postgresql.org/docs/9.4/static/auth-methods.html – zerkms

ответ

4

Это терпит неудачу из-за:

The ident authentication method works by obtaining the client's operating system user name from an ident server and using it as the allowed database user name (with an optional user name mapping). This is only supported on TCP/IP connections.

ident должно означать идентификации UNIX. Для работы ident вы должны запустить psql или PGAdmin пользователем postgres (по умолчанию владелец процессов Postgres на CentOS). Поэтому убедитесь, что вы сделали sudo su - postgres или sudo - postgres (и он работает, как вы показали).

md5 на самом деле означает md5 хэш идентификатор пароля. Для меня лично это самый простой способ.

Я уверен, что в вашем примере все работает правильно :-)

Смежные вопросы