Как сбросить пароль postgresql
3 года назад
Nikolai Gagarinov
Ответы
Для сброса пароля в PostgreSQL можно воспользоваться следующими шагами:
-
Первым шагом необходимо изменить файл конфигурации PostgreSQL, чтобы можно было войти в режим восстановления. Для этого откройте файл
pg_hba.conf, который обычно находится в директорииdataвашего каталога базы данных PostgreSQL. Укажитеtrustв строке для метода аутентификации для вашей базы данных. -
После изменения файла конфигурации PostgreSQL, перезапустите сервер PostgreSQL, чтобы изменения вступили в силу.
-
Теперь можно зайти в PostgreSQL без пароля командой
psql -U postgres. -
Войдите в базу данных и сбросьте пароль с помощью команды
ALTER USER postgres PASSWORD 'новый_пароль';, гдеpostgres- имя пользователя, для которого нужно сбросить пароль, а'новый_пароль'- новый пароль, который нужно установить. -
После того как вы установили новый пароль, не забудьте вернуть обратно метод аутентификации в файле
pg_hba.confна свои исходные параметры и перезапустите сервер PostgreSQL.
Теперь вы можете использовать новый пароль для доступа к вашей базе данных PostgreSQL.
3 года назад
Olga Pejenkova
Как сбросить пароль в PostgreSQL
Сброс нужен, когда пароль утерян и войти в базу уже невозможно. Суть: временно отключить проверку пароля, задать новый, включить обратно.
Шаг 1. Найти файл pg_hba.conf
Обычно файл лежит здесь:
Шаг 2. Открыть файл и временно разрешить вход без пароля
Найдите строку для локального подключения и замените метод на trust:
Шаг 3. Перезапустить PostgreSQL
Шаг 4. Войти без пароля и задать новый
Шаг 5. Вернуть защищённый метод аутентификации
Откройте pg_hba.conf и верните md5 или scram-sha-256 на место:
Перезапустите сервер:
Шаг 6. Проверить, что новый пароль работает
Флаг -W заставит явно запросить пароль.
Разница между md5 и scram-sha-256
Если версия PostgreSQL 10 и выше — используйте scram-sha-256.
Важно
Не оставляйте метод trust в pg_hba.conf после восстановления.
С ним любой пользователь на сервере войдёт в базу без пароля.
5 месяцев назад
Никита Вихров
Забытый пароль от PostgreSQL восстановить нельзя, его задают заново. Для этого временно разрешают вход без пароля в файле pg_hba.conf, меняют пароль и возвращают настройку обратно.
Сначала попробуйте войти без сброса
На Linux системный пользователь postgres обычно входит без пароля:
Если вошли, сразу задайте пароль:
Команда спросит новый пароль дважды. Если этот способ не сработал, переходите к сбросу.
Сброс на Linux
-
Найдите файл настроек доступа. На Ubuntu и Debian:
/etc/postgresql/<версия>/main/pg_hba.conf. -
Сохраните копию:
sudo cp pg_hba.conf pg_hba.conf.bak. -
В строках
localиhost 127.0.0.1/32замените методscram-sha-256илиmd5наtrust: -
Перезапустите сервер:
sudo systemctl restart postgresql. -
Войдите без пароля и задайте новый:
-
Верните исходный файл:
sudo cp pg_hba.conf.bak pg_hba.confи перезапустите сервер.
Пока в файле стоит trust, к базе может подключиться любой пользователь компьютера. Не оставляйте этот режим.
Сброс на Windows
-
Откройте
C:\Program Files\PostgreSQL\<версия>\data\pg_hba.confв Блокноте от имени администратора. -
Замените
scram-sha-256наtrustв строках с127.0.0.1/32и::1/128. -
Перезапустите службу: Win + R →
services.msc→postgresql-x64-<версия>→ Перезапустить. -
Откройте SQL Shell (psql) или pgAdmin, подключитесь без пароля и выполните:
-
Верните
scram-sha-256вpg_hba.confи снова перезапустите службу.
Пароль от pgAdmin
pgAdmin 4 спрашивает два разных пароля:
- Мастер-пароль pgAdmin защищает сохранённые пароли внутри программы. Если забыли его, нажмите Reset Master Password в окне ввода. Сохранённые пароли серверов удалятся, их придётся ввести заново.
- Пароль пользователя базы, например
postgres. Его сбрасывают способом выше.
Docker
Внутри контейнера локальные подключения обычно разрешены без пароля.
Можно ли расшифровать пароль
Нет. PostgreSQL хранит хеш SCRAM-SHA-256, исходный пароль из него не получить. Поэтому пароль только задают заново.
Работу с PostgreSQL и правами пользователей разбирают на курсе «SQL для программистов».
15 дней назад
Никита Вихров






