Есть ли причина, по которой pg_shadow показывает пароль, а в журнале пароль не назначен? - PullRequest
0 голосов
/ 16 ноября 2018

Я создал новый кластер базы данных postgresql 11.Я написал простой CRUD-скрипт, использующий SQLAlchemy, для проверки соединения на локальном хосте и получения вывода «ошибка аутентификации пользователя» из python.

Я проверил файл pg_hba.conf для нового кластера, и он показывает:

local   all             ian                        peer

Уже проверил pg_authid и pg_shadow, который ясно показывает пароль md5, назначенный владельцу базы данных "Иан «.Кроме того, я проверил, что новый кластер работает с pg_lsclusters, и он показывает, что он работает на порту 5433. Проверил журналы после попыток подключения и получил следующее сообщение:

2018-11-16 10:00:59.712 PST [2102] ian@iandb1 DETAIL:  User "ian" has no password assigned.
    Connection matched pg_hba.conf line 94: "host    all             all             ::1/128                 md5"

Небольшой фон: я уже подключилсяэтот скрипт для кластера БД по умолчанию, принадлежащего postgres.Я могу подключиться и выполнить CRUD-операции, используя имя пользователя и пароль postgres в строке подключения.

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

1 Ответ

0 голосов
/ 16 ноября 2018

Хорошо, я надеюсь, что этот пост спасет кого-то еще от небольшого разочарования, сразу же после того, как я отправил этот вопрос - что поставило меня в тупик на несколько часов, я нашел это:

источник: ссылка на статью

По умолчанию при создании кластера PostgreSQL аутентификация по паролю для суперпользователя базы данных («postgres») отключается.Самый простой и безопасный способ добавить пароль для пользователя «postgres» - это подключиться к локальному серверу с помощью «psql» (см. Шаги 1 и 2 выше), а затем ввести мета-команду «\ password» в psql.Вам будет предложено ввести пароль и подтвердить его.

postgres=# \password    
Enter new password:    
Enter it again:    
postgres=#

Я заменил имя нового владельца кластера 'ian' и назначил пароль.Я запустил скрипт, и теперь все работает нормально.Это мелочи, с которыми приходится сталкиваться новым программистам, я думаю ... Спасибо всем, кто может добавить мое объяснение здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...