Как узнать пароль от postgresql
3 года назад
Nikolai Gagarinov
Ответы
Если вы забыли пароль от своей учетной записи в PostgreSQL или желаете узнать пароль другой учетной записи, то есть несколько способов сделать это:
-
Использование SQL-команды ALTER USER: Вы можете войти в интерфейс командной строки PostgreSQL (через psql или другой клиент) под администраторской учетной записью и выполнить следующую команду для смены пароля: ALTER USER username PASSWORD 'new_password';
-
Просмотр файла конфигурации PostgreSQL: В большинстве случаев, пароли пользователей хранятся в файле "pg_hba.conf" или "pg_ident.conf" в разделе "authentication settings". Однако, это не рекомендуется делать из соображений безопасности.
-
Сброс пароля администратора (superuser) через файл pg_hba.conf: Если забыли пароль суперпользователя, можно попробовать изменить параметры доступа к базе данных в файле pg_hba.conf, чтобы разрешить подключение без пароля для текущего пользователя. После этого можно выполнить ALTER USER для смены пароля.
-
Переустановка PostgreSQL: Если другие методы не помогли и доступ к базе данных критически необходим, можно переустановить PostgreSQL с обнулением паролей пользователей. Обратитесь к документации PostgreSQL для инструкций по переустановке.
Важно помнить, что обращение к файлам конфигурации и смена паролей в PostgreSQL требуют административных привилегий и должны выполняться с осторожностью, чтобы не нарушить безопасность и целостность базы данных.
3 года назад
Elena Gromova
Посмотреть пароль пользователя PostgreSQL нельзя: база хранит только хеш пароля. Если пароль забыт, его задают заново командой ALTER USER.
Почему пароль не показать
В pg_user на месте пароля звёздочки. В таблице pg_authid суперпользователь увидит строку вида SCRAM-SHA-256$4096:.... Это хеш: из него нельзя получить исходный пароль.
Где пароль мог сохраниться
Прежде чем сбрасывать, проверьте, не записан ли пароль где-то рядом:
pgAdmin и DBeaver хранят сохранённые пароли в зашифрованном виде. Посмотреть их в интерфейсе нельзя.
Как сбросить пароль, если не можете войти
Если вход в базу невозможен ни под каким пользователем:
- Найдите
pg_hba.conf. На Ubuntu:/etc/postgresql/<версия>/main/pg_hba.conf, на Windows:C:\Program Files\PostgreSQL\<версия>\data\pg_hba.conf. - В строке для локальных подключений замените
scram-sha-256илиmd5наtrust. - Перезапустите PostgreSQL:
sudo systemctl restart postgresqlили через «Службы» в Windows. - Подключитесь без пароля:
psql -U postgresи выполните\password postgres. - Верните прежний метод в
pg_hba.confи перезапустите сервер.
На Linux часто можно войти и без сброса: sudo -u postgres psql. Метод peer пускает системного пользователя postgres без пароля.
Docker
Если пароль из POSTGRES_PASSWORD не подходит, база была создана раньше с другим паролем: переменная применяется только при первом запуске с пустым томом. Смените пароль изнутри контейнера:
Работу с PostgreSQL разбирают на курсе «SQL для программистов».
15 дней назад
Никита Вихров






