<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Как изменить пароль в PostgreSQL: пошаговые инструкции для пользователей и админов]]></title><description><![CDATA[<p dir="auto">Изменение пароля в PostgreSQL - это базовая задача для админов баз данных. Она помогает поддерживать безопасность, когда учетные данные устаревают или скомпрометированы. В этой статье разберем основные способы: от простых SQL-команд до восстановления забытого пароля.</p>
<p dir="auto">Вы узнаете, как использовать psql, команды ALTER ROLE и ALTER USER, а также как редактировать pg_hba.conf для экстренных случаев. Это сэкономит время при управлении ролями в Postgres. Подходят инструкции для Linux, Windows и облачных сервисов вроде Neon.</p>
<h2>Основные способы смены пароля через psql</h2>
<p dir="auto">В PostgreSQL пароли привязаны к ролям, и superuser может менять их для любых пользователей. Самый простой метод - подключиться к psql как суперпользователь и выполнить команду. Это работает в терминале без дополнительных инструментов. Например, для пользователя admin вводим пароль дважды при запросе системы.</p>
<p dir="auto">Команда \password удобна для быстрой смены, но передает пароль в открытом виде - учтите это в продакшене. Альтернатива - ALTER ROLE, которая дает больше контроля. Она позволяет задать срок действия пароля с VALID UNTIL. Перед использованием проверьте права: только superuser или владелец роли может менять пароль.</p>
<p dir="auto">Вот ключевые команды:</p>
<ul>
<li><code>\password username</code> - интерактивный ввод нового пароля.</li>
<li><code>ALTER ROLE username WITH PASSWORD 'newpass';</code> - прямое задание пароля.</li>
<li><code>ALTER USER postgres WITH PASSWORD 'secure123';</code> - синоним для ролей с логином.</li>
</ul>
<p dir="auto"><em>Важно: пароль всегда в одинарных кавычках, и он логируется в истории psql.</em></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Команда</th>
<th>Преимущества</th>
<th>Недостатки</th>
</tr>
</thead>
<tbody>
<tr>
<td>\password</td>
<td>Простая, интерактивная</td>
<td>Нет срока действия</td>
</tr>
<tr>
<td>ALTER ROLE</td>
<td>Гибкая, с VALID UNTIL</td>
<td>Пароль в открытом виде</td>
</tr>
<tr>
<td>ALTER USER</td>
<td>Для ролей с логином</td>
<td>Требует подключения</td>
</tr>
</tbody>
</table>
<h2>Сброс пароля postgres при его потере</h2>
<p dir="auto">Если пароль от пользователя postgres забыт, стандартные команды не сработают без доступа. Здесь помогает редактирование pg_hba.conf - файла аутентификации. Сначала сделайте бэкап файла, чтобы не сломать настройки. Измените метод с md5 или scram-sha-256 на trust для локальных подключений.</p>
<p dir="auto">После этого перезапустите сервер PostgreSQL командой pg_ctl reload или через сервис. Подключитесь без пароля, смените его через ALTER USER и верните pg_hba.conf в исходное состояние. Это стандартный процесс для Windows, Linux и Bitnami-установок. На Windows редактируйте через Notepad как администратор.</p>
<p dir="auto">Шаги для сброса:</p>
<ol>
<li>Бэкап: <code>cp pg_hba.conf pg_hba.conf.bk</code>.</li>
<li>Изменить: заменить <code>md5</code> на <code>trust</code> в строке local all all.</li>
<li>Перезапуск: <code>sudo systemctl restart postgresql</code>.</li>
<li>Смена: <code>psql -U postgres</code>, затем <code>ALTER USER postgres WITH PASSWORD 'новый';</code>.</li>
<li>Восстановление: вернуть md5 и перезапустить снова.</li>
</ol>
<p dir="auto"><strong>В облаке вроде Neon процесс упрощен - используйте ALTER ROLE без правки конфигов.</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>ОС</th>
<th>Команда перезапуска</th>
<th>Путь к pg_hba.conf</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux</td>
<td>systemctl restart postgresql</td>
<td>/etc/postgresql/…/pg_hba.conf</td>
</tr>
<tr>
<td>Windows</td>
<td>services.msc</td>
<td>C:\Program Files\PostgreSQL.…</td>
</tr>
<tr>
<td>Bitnami</td>
<td>pg_ctl reload</td>
<td>/opt/bitnami/postgresql/conf/</td>
</tr>
</tbody>
</table>
<h2>Дополнительные опции и проверка изменений</h2>
<p dir="auto">После смены пароля проверьте результат командой \du username в psql. Она покажет атрибуты роли, включая срок validity. Для безопасности задавайте VALID UNTIL, например, <code>ALTER ROLE bob VALID UNTIL '2050-12-31';</code>. Это предотвратит использование старых паролей.</p>
<p dir="auto">В pgAdmin или GUI-инструментах процесс похож: правой кнопкой на роль - Properties - Definition - Password. Но для скриптов и автоматизации SQL лучше. Учитывайте, что scram-sha-256 - современный метод хэширования, заменяющий md5. Избегайте простых паролей вроде ‘123’.</p>
<p dir="auto">Полезные проверки:</p>
<ul>
<li><code>\du</code> - список ролей с атрибутами.</li>
<li><code>SELECT rolname FROM pg_roles;</code> - все роли.</li>
<li>Тестируйте подключение: <code>psql -U user -d db</code>.</li>
</ul>
<p dir="auto"><em>Пароль передается в cleartext - используйте SSL для удаленных подключений.</em></p>
<h2>Безопасность паролей и типичные ошибки</h2>
<p dir="auto">Частая ошибка - забывчивость о перезапуске после pg_hba.conf. Без него trust-соединения не активируются. Еще проблема: логирование пароля в истории psql - очищайте ее командой history -c. Для продакшена настройте ротацию паролей через скрипты.</p>
<p dir="auto">Рассмотрите расширения вроде pgcrypto для хэширования. В кластерах проверяйте репликацию - пароль меняется только на мастере. Если роль без LOGIN, добавьте атрибут перед сменой.</p>
<p dir="auto">Типичные промахи:</p>
<ul>
<li>Нет прав superuser.</li>
<li>Неправильный путь к pg_hba.conf.</li>
<li>Забыли вернуть md5 после сброса.</li>
</ul>
<p dir="auto"><strong>Всегда тестируйте на staging перед продом.</strong></p>
<h2>Защита после смены и что учитывать дальше</h2>
<p dir="auto">Смена пароля решает немедленные проблемы, но подумайте о политиках: минимальная длина, ротация каждые 90 дней. Инструменты вроде StrongDM автоматизируют управление доступом без хранения паролей.</p>
<p dir="auto">Осталось за кадром: интеграция с LDAP или Kerberos для enterprise. Если база в Docker, монтируйте pg_hba.conf как volume. В следующих материалах разберем кластеризацию с паролями.</p>
]]></description><link>https://forum.exlends.ru/topic/809/kak-izmenit-parol-v-postgresql-poshagovye-instrukcii-dlya-polzovatelej-i-adminov</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:56:24 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/809.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Feb 2026 08:00:00 GMT</pubDate><ttl>60</ttl></channel></rss>