Как сбросить пароль 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 по умолчанию теперь имеет пароль, связанный с учетной записью, для использования в других ваших приложениях.
Читайте также: