Как контролировать PostgreSQL аутентификацию по паролю как в Front end, так и в командной строке в Windows 10 и Redhat (Linux)? - PullRequest
0 голосов
/ 16 февраля 2020

В последнее время я использую PostgreSQL9.2 как в Windows 10, так и в Redhat (Linux). Но теперь я мало беспокоюсь об аутентификации доступа PostgreSQL. Поздно мне объяснить ...

Когда я впервые установил PostgreSQL в своей системе, я использовал два разных пароля для двух пользователей в роли postgres (по умолчанию) и adempiere (создан). В Redhat я использую команду psql -h localhost -U postgres db_name и psql -h localhost -U adempiere db_name. Иногда эта команда хочет пароль, иногда нет.

Недавно я использовал команду ALTER USER postgres WITH PASSWORD 'new_password'; и ALTER USER adempiere WITH PASSWORD 'new_password'; для изменения. Но здесь есть другая проблема. После изменения пароля при получении доступа к базе данных с помощью команды psql -h localhost -U adempiere db_name, я могу получить доступ как с old_passwod, так и с new_password.

Что я могу сделать для строгой аутентификации в моей базе данных Windows 10 и Redhat (linux)?

Вот часть моего pg_hba.conf для справки:

# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.



# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.2.151/32            trust
host    all             all             192.168.2.5/32            trust
host    all             all             192.168.2.6/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                md5
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

1 Ответ

2 голосов
/ 17 февраля 2020

Для принудительной аутентификации по паролю для каждого соединения замените trust на md5 везде в pg_hba.conf и перезагрузите сервер.

Использование PostgreSQL 9.2 опасно небрежно. Используйте более позднюю версию. С одной стороны, это предложит более безопасный scram-sha-256 метод хеширования для аутентификации по паролю.

...