Сброс пароля в PostgreSQL

Забыли пароль учетной записи postgres в PostgreSQL? Выполнить сброс не сложно. Для этого необходимо выполнить пару манипуляций.

1. Правим файл pg_hba.conf

Находим файл в папке Data директории установки PostgreSQL. В Windows путь выглядит примерно так c:\Program Files\PostgreSQL\9.2.4-1.1C\data\

В этом файле нужно найти такие строчки

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5

Меняем md5 на trust.

2. Удаляем файл pgpass.conf

В Windows этот файл находится в c:\Users\Administrator\AppData\Roaming\postgresql\

Здесь хранится старый пароль от PostgreSQL. Простое изменение хранимого здесь пароля мне не помогло. Поэтому я его просто удалил.

3. Меняем пароль в pgAdmin

Запускаем pgAdmin и нам предлагается ввести пароль. Если отметить галочку сохранить, то пароль будет сохранен в  pgpass.conf и больше программой запрашиваться не будет.

Чтобы обеспечить безопасность использования паролей необходимо вернуть алгоритм шифрования md5. Для этого в файле pg_hba.conf параметр trust обратно меняем на md5.

Для подключения на локальном компьютере к PostgreSQL с помощью psql, pg_dump в локальных адресах  IPv4 127.0.0.1/32 и IPv6 ::1/128 значение trust нужно оставить.

7 thoughts on “Сброс пароля в PostgreSQL

  1. Максим

    Ты не сменил и не сбросил пароль. Ты отключил все механизмы защиты, поэтому он теперь пускает не с новым паролем, а вообще с ЛЮБЫМ. Строка trust как раз и отключает проверку пароля. А файл pgpass.conf нужен для того что бы утилитка pgAdmin могла туда сохранить пароль и не спрашивать его больше. Именно поэтому он храниться в твоем профиле, что бы никто другой не мог туда зяглянуть.
    Пароль пользователя меняется командой ALTER USER user_name WITH PASSWORD 'new_password';

    Удали статью, а то кучи начинающих "АДМИНОВ" понаоткрывают голую жопу по твоим советам.

    1. admin Автор записи

      Прежде чем писать такой комментарий

      Строка trust как раз и отключает проверку пароля.

      ..внимательней читайте статью, там написано

      параметр trust обратно меняем на md5

      Про файл pgpass.conf тоже в статье сказано.
      Так что с голой жопой останутся только такие же невнимательные как ты.

    2. Вася

      Глохни, петух. Как я смогу изменить пароль, если не могу на сервер зайти без пароля, придурок!

      1. Glafir

        Тебе выше написали, что параметры доступа в pg_hba.conf изменены так, чтобы пустить потом тебя БЕЗ пароля с localhost. Да, когда меняете этот файл, перещапускать БД не забывайте.
        Потом влетай в консоль psql -Upostgres -W -hlocalhost c пустым паролем, и меняй себе его наздоровье.
        Затем возверни настройки обратно в md5 и перезапусти БД.

  2. Glafir

    Виндовозники привыкли мышкой водить. Нет чтоб в терминале просто и со вкусом ALTER USER user_name WITH PASSWORD 'new_password';

  3. Евгений

    На локальном компьютере это оказалось оптимальным решением. Конечно, в сочетании с обычной сменой пароля, когда смог попасть в админку. Если Вы и петух, то очень полезный для сообщества) Спасибо Вам!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *