Как сбросить пароль postgresql ubuntu

Обновлено: 21.11.2024

Выполните следующие действия:
1) Откройте файл pg_hba.conf в текстовом редакторе.
Этот файл находится в

/каталог данных. Например, /opt/database/data.

2) В файле pg_hba.conf найдите строку для пользователя postgres. Это выглядит примерно так:

local all all password
или
local all postgres md5

Пользователи сети начинают строку с "host", а также указывают IP-адрес и сетевую маску:
host all postgres 10.255.255.10

Если ваша система настроена на одинаковую аутентификацию всех пользователей, вместо имени пользователя вы увидите «все»:
local all all md5
Примечание. Метод может быть установлен как « md5" или "пароль" или один из многих других вариантов.

3) Закомментируйте строку, относящуюся либо ко всем пользователям, либо к пользователю postgres, и добавьте следующую строку:

local all postgres ident sameuser

Приведенная выше строка позволяет вам подключиться от имени пользователя postgres без указания пароля.
Local предназначен только для подключений к сокету домена UNIX.

local all postgres ident sameuser

Совет. Скопируйте изменяемые строки и прокомментируйте исходные строки.

Выполните примерно следующую команду:

6) Выполните следующую команду, чтобы изменить доступ sudo для пользователя postgres:

Это позволяет запускать команды от имени пользователя postgres.

7) Запустите psql, клиент командной строки для PostgreSQL.

Это приводит к тому, что psql открывает базу данных PostgreSQL. Он не должен запрашивать пароль. Вот как выглядит приглашение для входа:

Введите "help", чтобы получить помощь.

8) В командной строке psql выполните следующую команду psql, чтобы изменить пароль базы данных:

ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЬ postgres С ЗАШИФРОВАННЫМ ПАРОЛЕМ 'пароль';

9) Psql перечисляет следующее, чтобы указать на успех:

10) Введите следующее, чтобы выйти из psql:

11) Снова откройте файл pg_hba.conf и верните исходные настройки. Используйте либо md5, либо аутентификацию по паролю, но md5 более безопасен.

12) Снова перезапустите службу postgres

13) Для проверки снова запустите psql. Он должен запросить у вас (сброс) пароль.

Вывод: в этом руководстве мы шаг за шагом покажем, как сбросить пароль пользователя postgres в PostgreSQL.

По какой-то причине после установки PostgreSQL вы можете забыть пароль пользователя postgres. В этом случае вам нужно знать, как сбросить пароль.

PostgreSQL использует файл конфигурации pg_hba.conf, хранящийся в каталоге данных базы данных (например, C:\Program Files\PostgreSQL\12\data в Windows), для управления аутентификацией клиента. hba в pg_hba.conf означает аутентификацию на основе хоста.

Чтобы сбросить пароль пользователя postgres, вам нужно изменить некоторые параметры в этом файле конфигурации, войти в систему как postgres без пароля и сбросить пароль.

Следующие шаги показывают, как сбросить пароль для пользователя postgres:

Шаг 1. Сделайте резервную копию файла pg_hba.conf, скопировав его в другое место или просто переименовав в pg_hba.conf.bk

Шаг 2. Отредактируйте файл pg_dba.conf и измените все локальные подключения с md5 на доверительные. Сделав это, вы сможете войти на сервер базы данных PostgreSQL без использования пароля.

Шаг 3. Перезапустите сервер PostgreSQL. Если вы работаете в Windows, вы можете перезапустить PostgreSQL из служб:

Или выполните следующую команду из оконного терминала:

«C:\Program Files\PostgreSQL\12\data» — это каталог данных.

Шаг 4. Подключитесь к серверу базы данных PostgreSQL с помощью любого инструмента, такого как psql или pgAdmin:

PostgreSQL не требует пароля для входа.

Шаг 5. Выполните следующую команду, чтобы установить новый пароль для пользователя postgres.

Шаг 6. Восстановите файл pg_dba.conf, перезапустите сервер базы данных PostgreSQL и подключитесь к серверу базы данных PostgreSQL с новым паролем.

В этом руководстве вы узнали, как сбросить пароль пользователя postgres.

Даже для локального сервера БД рекомендуется предоставлять пароль для каждого пользователя. Пользователь PostgreSQL по умолчанию (который также является администратором) — postgres .

Стандартный способ получить доступ к нашей БД — использовать команду psql через терминал (у меня Manjaro Linux). Итак, набираем:

Выйти из полноэкранного режима

Мы вводим наш пароль и получаем сообщение

Без паники!

Прежде всего, мы должны найти «Файл конфигурации аутентификации клиента PostgreSQL», который имеет имя pg_hba.conf . В Manjaro он находится по пути /var/lib/postgres/data/pg_hba.conf. Будьте осторожны, что требуется иметь права root.

Выйти из полноэкранного режима

Меняем аутентификацию md5 в "локальном" соединении на доверие

Выйти из полноэкранного режима

и перезагружаем наш сервер

Выйти из полноэкранного режима

Теперь PostgreSQL не запрашивает пароль, и мы можем подключаться к пользователю postgres

Следующий шаг — сбросить пароль

Мы выходим из psql, возвращаем pg_hba.conf в прежнее состояние (аутентификация md5) и перезапускаем сервер. Мы можем подключиться, используя наш новый пароль для пользователя postgres .

Обсуждение (0)

Для дальнейших действий вы можете заблокировать этого человека и/или сообщить о нарушении

Во-первых, важно понимать, что для большинства дистрибутивов Unix пользователь Postgres по умолчанию не требует и не использует пароль для аутентификации. Вместо этого, в зависимости от того, как изначально был установлен Postgres и какую версию вы используете, метод аутентификации по умолчанию будет либо ident, либо peer .

аутентификация ident использует сервер идентификации операционной системы, работающий на TCP-порту 113, для проверки учетных данных пользователя.

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

Войти и подключиться как пользователь по умолчанию

Для большинства систем пользователем Postgres по умолчанию является postgres, и для аутентификации пароль не требуется. Таким образом, чтобы добавить пароль, мы должны сначала войти в систему и подключиться как пользователь postgres.

Если вы успешно подключились и видите приглашение psql, перейдите к разделу «Изменение пароля».

Если вы получили сообщение об ошибке о том, что база данных «postgres» не существует, попробуйте вместо этого подключиться к базе данных template1 и в случае успеха перейдите к разделу «Изменение пароля».

Ошибка аутентификации

Если вы получаете сообщение об ошибке аутентификации при попытке подключения к клиенту psql, вам может потребоваться изменить файл конфигурации аутентификации Postgres (pg_hfa.conf).

Файл конфигурации аутентификации представляет собой список правил аутентификации. Прокрутите файл вниз, пока не найдете первую строку, отображающую пользователя postgres в третьем столбце (если такая строка существует). При необходимости раскомментируйте строку (уберите точку с запятой) или, если строка отсутствует полностью, добавьте следующую строку вверху файла и сохраните изменения:

Это правило аутентификации просто сообщает Postgres, что для локальных подключений, установленных ко всем базам данных для пользователя postgres, аутентификация выполняется с использованием однорангового протокола.

Примечание. Некоторые старые версии Postgres предпочитают метод аутентификации по умолчанию ident, но в большинстве современных установок вместо него будет использоваться одноранговый метод, как указано выше. Возможно, вам придется протестировать оба варианта, если ваши результаты отличаются.

Теперь, когда файл конфигурации обновлен, повторите шаги, описанные в разделе «Вход и подключение в качестве пользователя по умолчанию», чтобы попытаться подключиться в качестве пользователя postgres по умолчанию. В случае успеха продолжите смену пароля.

Смена пароля

Установив соединение с Postgres в командной строке psql, введите команду ALTER USER, чтобы изменить пароль пользователя postgres:

В случае успеха Postgres выдаст подтверждение ALTER ROLE, как показано выше.

Наконец, выйдите из клиента psql с помощью команды \q.

Все готово. Пользователь postgres по умолчанию теперь имеет пароль, связанный с учетной записью, для использования в других ваших приложениях.

Читайте также: