Как изменить пароль postgresql
3 года назад
Nikolai Gagarinov
Ответы
Ссылка на оф.документацию с примерами: https://www.postgresql.org/docs/8.0/sql-alteruser.html
год назад
Виктор Гоценко
Для изменения пароля учетной записи пользователя в PostgreSQL необходимо выполнить следующие шаги:
- Зайдите в консоль PostgreSQL с правами суперпользователя (обычно это пользователь postgres):
- Выберите базу данных, к которой относится пользователь, у которого нужно изменить пароль:
- Измените пароль пользователя командой:
- После этого можно выйти из консоли PostgreSQL:
Теперь пользователь с указанным именем должен использовать новый пароль для доступа к базе данных.
2 года назад
Ivan Mamtsev
Как изменить пароль пользователя в PostgreSQL
Есть несколько способов — выбирайте тот, который подходит под вашу ситуацию.
Способ 1: через psql
Подключитесь от имени суперпользователя и выполните команду:
Если меняете пароль текущего пользователя, можно короче:
\password спросит пароль дважды и передаст его в базу в зашифрованном виде — безопаснее, чем писать пароль в строке команды, потому что он не попадает в историю.
Способ 2: одной командой из терминала без входа в psql
Способ 3: через переменную окружения, чтобы пароль не светился в истории
Проверить, что пароль изменился
Флаг -W заставит psql спросить пароль явно.
Частая ошибка
Если после смены пароля подключение всё равно работает без пароля — проверьте файл pg_hba.conf.
Там может быть метод аутентификации trust, который пускает без пароля вообще.
Найдите строку с вашим пользователем и убедитесь, что метод — md5 или scram-sha-256, а не trust.
5 месяцев назад
Никита Вихров
Пароль пользователя меняют командой ALTER USER:
Выполнить её может сам пользователь для себя или суперпользователь для любого другого.
Через psql
Подключитесь к базе. На Linux под системным пользователем postgres:
Внутри psql есть команда \password. Она спросит пароль дважды и не покажет его на экране:
Так пароль не попадёт в историю команд psql и в логи сервера.
Пароль другого пользователя
ALTER ROLE делает то же самое: в PostgreSQL пользователь — это роль с правом входа.
Ограничить срок действия пароля:
Если пароль postgres забыт
-
Найдите файл
pg_hba.conf. Путь покажет командаSHOW hba_file;, на Ubuntu он обычно в/etc/postgresql/<версия>/main/. -
В строке для локальных подключений замените метод
scram-sha-256илиmd5наtrust: -
Перезапустите сервер:
sudo systemctl restart postgresql. -
Подключитесь без пароля и задайте новый:
psql -U postgres, затем\password postgres. -
Верните в
pg_hba.confпрежний метод и снова перезапустите сервер.
Пока стоит trust, к базе может подключиться любой локальный пользователь. После смены пароля верните прежний метод.
Если после смены пароль не подходит
- Приложение берёт старый пароль из конфигурации или переменной окружения. Обновите
DATABASE_URLили файл настроек. - В
pg_hba.confметодpeer: он пускает по имени системного пользователя и пароль не проверяет. Подключайтесь через-h localhostили меняйте метод. - В Docker пароль из
POSTGRES_PASSWORDприменяется только при первом создании базы. Для уже созданного тома меняйте пароль черезALTER USER.
Работу с PostgreSQL и пользователями базы разбирают на курсе «SQL для программистов».
15 дней назад
Никита Вихров






