Перейти к содержимому

Как узнать пароль пользователя postgres

  • автор:

Существует ли какая нибудь возможность узнать пароль пользователя в 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

  • PostgreSQL

Где и как хранить сообщения чата?

  • 1 подписчик
  • 05 янв.
  • 118 просмотров

postgresql

  • 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *