Существует ли какая нибудь возможность узнать пароль пользователя в Postgres?
Доброго дня.
Достался в наследство сервер с кучей баз данных, и имею только пароль от пользователя ОС postgres.
А существует ли какая нибудь возможность узнать пароль пользователя в Postgres?
Не сбрасывать а именно узнать.
Я знаю что можно просто создать ещё одного с полными привилегиями, но тут уже просто любопытство играет:)
- Вопрос задан более трёх лет назад
- 6104 просмотра
Комментировать
Решения вопроса 1
PostgreSQL DBA
Пароли скорей всего сохранены как md5. Метод scram-sha-256 появился только в 10 и включая 12 релиз ещё не используется по-умолчанию (проблем с базой нет, сообщество даёт время на реализацию этого протокола в клиентских библиотеках, чтобы не как с mysql 8.0 получилось).
Хэши паролей md5 можно найти в pg_authid таблице системного каталога, считаются как
select rolpassword = ('md5' || md5('some password' || rolname)) from pg_authid where rolname = 'username';
То есть восстановить исходный пароль невозможно. Можно попробовать подобрать коллизию для хэша.
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PostgreSQL
Где и как хранить сообщения чата?
- 1 подписчик
- 05 янв.
- 118 просмотров

- PostgreSQL
Как сделать, чтобы при добавлении автоинкрементированного поля значение корректировалось?
- 1 подписчик
- 05 янв.
- 85 просмотров
Как узнать пароль пользователя postgres
При установке PostgreSQL по умолчанию к серверу имеет доступ только пользователь postgres , который создается инсталлятором в процессе установки программы.
Режим аутентификации для этой учетной записи в PostgreSQL установлен в ident , то есть позволяет авторизоваться только под пользователем postgres . В свою очередь учетная запись postgres создается как заблокированная для аутентификации и поэтому не имеет какого-либо предустановленного пароля.
Конечно же пароль можно установить принудительно, например через passwd postgres . При этом запись разблокируется, что при установке слабого пароля сделает уязвимой всю систему.
Одним из способов получения локального доступа к серверу через учетную запись postgres (без ее разблокировки) для первоначальной настройки является редактирование файла pg_hba.conf (который находится в папке /etc/postgresql/[версия]/main ) с целью разрешения локального соединения без проверки пароля:
# IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
После редактирования файла необходимо перезагрузить сервер:
/etc/init.d/postgresql restart
После этого можно подключиться к серверу для создания нужных баз данных и пользователей:
psql -U postgres -h localhost
Соответственно для удаленного доступа к серверу, например через dbeaver , можно использовать связку с SSH .
31.15. Файл паролей
Файл .pgpass в домашнем каталоге пользователя или файл, заданный в PGPASSFILE, может содержать пароли, которые будут использоваться, если для подключения требуется пароль (и пароль не задаётся другим способом). В Microsoft Windows этот файл называется %APPDATA%\postgresql\pgpass.conf (где %APPDATA% обозначает каталог данных приложений (Application Data) в профиле пользователя).
Этот файл должен содержать строки следующего формата:
сервер:порт:база_данных:имя_пользователя:пароль
(Вы можете вставить в этот файл комментарий-памятку, скопировав показанную строку в него и добавив в начало #.) Первые четыре поля могут содержать строковые значения, либо знак *, соответствующий всему. Применяться будет пароль, указанный в первой из строк, значения полей в которой соответствуют текущему соединению. (Поэтому, если вы используете звёздочки, поместите более конкретные записи первыми.) Если запись должна содержать символ : или \, добавьте перед ним \. Имени сервера localhost соответствуют локальные соединения и по TCP (по имени компьютера localhost), и через доменный сокет Unix (заданный в pghost, либо каталог сокетов по умолчанию). На резервном сервере имя базы данных replication соответствует подключениям потоковой репликации, которые устанавливает ведущий. Поле база_данных имеет ограниченную ценность, так как пользователи используют один пароль для всех баз данных в кластере.
В системах Unix разрешения .pgpass должны запрещать чтение его всеми или группой; этого можно добиться командой chmod 0600 ~/.pgpass. Если разрешения будут менее строгими, этот файл не будет прочитан. В Microsoft Windows предполагается, что файл хранится в безопасном месте, и никакие дополнительные проверки не производятся.
| Пред. | Начало | След. |
| Переменные окружения | Уровень выше | Файл соединений служб |
Определение пароля в postgresql
Я давно установил postgresql и забыл выбранный пароль. Как его узнать (к серверу 192.168.143.92 ( localhost:5432 ))?
Отслеживать
371 1 1 золотой знак 5 5 серебряных знаков 13 13 бронзовых знаков
задан 13 авг 2012 в 10:30
1,574 11 11 золотых знаков 57 57 серебряных знаков 107 107 бронзовых знаков
Узнать — вряд ли. Изменить — дело другое. foogazi.com/2008/03/23/…
15 авг 2012 в 13:32
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Попробуй в командной строке ввести: net user postgres postgres
Пароль должен сброситься на дефолтный: postgres
Отслеживать
ответ дан 13 авг 2012 в 11:40
VorobyevEvgeniy VorobyevEvgeniy
266 4 4 серебряных знака 16 16 бронзовых знаков
- postgresql
- пароль
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.