PG ident.конф работает?

когда я пытаюсь запустить psql, говорит:

psql --version
psql (PostgreSQL) 9.3.12
psql
psql: FATAL:  Peer authentication failed for user "testuser"

вот мой pg_hba.conf:

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

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer    map=testmap
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

вот мой pg_ident.conf:

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
testmap         testuser                postgres

и postgresql.conf:

data_directory = '/var/lib/postgresql/9.3/main'
hba_file = '/etc/postgresql/9.3/main/pg_hba.conf'
ident_file = '/etc/postgresql/9.3/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/9.3-main.pid'
listen_addresses = '*'
port = 5432
max_connections = 100
unix_socket_directories = '/var/run/postgresql'
ssl = true
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'
shared_buffers = 128MB
log_line_prefix = '%t '
log_timezone = 'UTC'
datestyle = 'iso, mdy'
timezone = 'UTC'
lc_messages = 'C'
lc_monetary = 'C'
lc_numeric = 'C'
lc_time = 'C'
default_text_search_config = 'pg_catalog.english'

Версия PostgreSQL: 9.3.12

что я делаю неправильно?

9
задан sata
16.03.2023 7:07 Количество просмотров материала 2886
Распечатать страницу

1 ответ

цель этой карты для testuser для входа в систему как db postgres пользователей.

In pg_hba.conf на map ключевое слово должно применить к postgres пользователей.

также в вызове psql,postgres как пользователь должен быть явно указан в качестве аргумента.

это работает для меня:

файл pg_hba.conf:

# Database administrative login by Unix domain socket
local   all             postgres                                peer  map=testmap

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer   

ссылка:

psql -U postgres

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

3
отвечен Daniel Vérité 2023-03-17 14:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх