<?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 часто приходится менять пароли пользователей для безопасности или доступа. Эта статья разберёт основные способы смены пароля - от простых команд до восстановления забытого. Вы узнаете, как избежать ошибок и выбрать лучший метод для вашей ситуации.</p>
<p dir="auto">Проблемы с доступом к базе данных возникают регулярно, особенно если пароль утерян или нужно обновить его по политике. Мы пройдёмся по командам <strong>ALTER USER</strong>, <strong>\password</strong> и настройкам для суперюзера. Это поможет быстро восстановить контроль без риска блокировки.</p>
<h2>Основные команды для смены пароля</h2>
<p dir="auto">Смена пароля в PostgreSQL требует подключения от пользователя с правами <strong>superuser</strong> или <strong>ALTER ROLE</strong>. Это стандартный подход, описанный в официальной документации. Например, если у вас есть пользователь ‘admin’, вы подключаетесь как postgres и выполняете команду. Такой метод работает в любой среде - Linux, Windows или облаке.</p>
<p dir="auto">Команда <strong>ALTER USER</strong> универсальна и позволяет менять пароль для любого роли. Она принимает имя пользователя и новый пароль в кавычках. Если вы работаете в терминале, сначала войдите в psql. Это предотвратит ошибки аутентификации. Давайте разберём варианты шаг за шагом.</p>
<ul>
<li><strong>ALTER USER username WITH PASSWORD ‘newpass’;</strong> - базовый синтаксис для смены пароля. Работает для всех ролей.</li>
<li>Используйте одинарные кавычки вокруг пароля, чтобы избежать ошибок парсинга.</li>
<li>После выполнения база сразу применит изменения - переподключение не нужно.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Команда</th>
<th>Описание</th>
<th>Когда использовать</th>
</tr>
</thead>
<tbody>
<tr>
<td>ALTER USER</td>
<td>Изменение пароля роли</td>
<td>Для любого пользователя с правами</td>
</tr>
<tr>
<td>ALTER ROLE</td>
<td>Аналог, но для ролей</td>
<td>В новых версиях PostgreSQL</td>
</tr>
<tr>
<td>\password</td>
<td>Интерактивный ввод</td>
<td>Если не хотите писать пароль в истории</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Важно</em>: команда передаёт пароль в открытом виде, так что используйте её осторожно в скриптах.</p>
<h2>Подключение как суперюзер postgres</h2>
<p dir="auto">По умолчанию пользователь <strong>postgres</strong> имеет повышенные права и часто не требует пароля локально. Чтобы войти, используйте sudo -u postgres psql в Linux. Это открывает psql-промпт, откуда можно менять пароли других. На Windows путь другой - через pgAdmin или прямой запуск psql.</p>
<p dir="auto">Если база на локальном хосте, проверьте файл pg_hba.conf. Там метод ‘trust’ позволяет вход без пароля. После смены верните ‘scram-sha-256’ для безопасности. Пример: подключитесь, смените пароль и выйдите командой \q. Такой workflow спасает при забытых доступах.</p>
<p dir="auto">Вот последовательность действий:</p>
<ol>
<li><code>sudo -u postgres psql</code> - вход в psql.</li>
<li><code>\password username</code> - интерактивная смена (введите новый пароль дважды).</li>
<li><code>ALTER USER postgres PASSWORD 'strongpass';</code> - для самого суперюзера.</li>
<li><code>\q</code> - выход.</li>
</ol>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>ОС</th>
<th>Команда входа</th>
<th>Особенности</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linux</td>
<td>sudo -u postgres psql</td>
<td>Требует sudo</td>
</tr>
<tr>
<td>Windows</td>
<td>psql -U postgres</td>
<td>Через меню Пуск</td>
</tr>
<tr>
<td>macOS</td>
<td>psql postgres</td>
<td>Локальный доступ</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>Перезапустите PostgreSQL</strong> после правок pg_hba.conf, чтобы изменения применились.</p>
<h2>Восстановление забытого пароля postgres</h2>
<p dir="auto">Забытый пароль суперюзера - частая проблема на продакшене. Сначала отредактируйте pg_hba.conf: найдите строки ‘local all all scram-sha-256’ и замените на ‘trust’. Это отключит проверку пароля локально. Сохраните файл и перезапустите сервис - systemctl restart postgresql.</p>
<p dir="auto">Теперь войдите без пароля: sudo -u postgres psql. Выполните \password postgres или ALTER USER. Верните pg_hba.conf в исходное состояние и перезапустите снова. Этот метод работает на всех версиях, но требует root-прав. Избегайте ‘trust’ на проде - используйте только временно.</p>
<ul>
<li>Откройте pg_hba.conf (обычно в /etc/postgresql/*/main/).</li>
<li>Замените метод на ‘trust’ для local.</li>
<li><em>После смены верните scram-sha-256</em> - иначе уязвимость.</li>
<li>Проверьте подключение: psql -U postgres -h localhost.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Шаг</th>
<th>Действие</th>
<th>Команда</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Редактировать conf</td>
<td>nano pg_hba.conf</td>
</tr>
<tr>
<td>2</td>
<td>Перезапуск</td>
<td>systemctl restart postgresql</td>
</tr>
<tr>
<td>3</td>
<td>Смена пароля</td>
<td>\password postgres</td>
</tr>
<tr>
<td>4</td>
<td>Восстановление conf</td>
<td>trust -&gt; scram-sha-256</td>
</tr>
</tbody>
</table>
<h2>Альтернативы и продвинутые сценарии</h2>
<p dir="auto">Для скриптов или автоматизации используйте PGPASSWORD=pass psql -U user -c “ALTER USER…”. Это скрывает пароль от истории. В pgAdmin смена проще - правой кнопкой на пользователя и ‘Properties’. Команда VALID UNTIL задаёт срок действия пароля.</p>
<p dir="auto">В кластерах или Docker учитывайте репликацию - меняйте на всех нодах. Официально ALTER ROLE davide WITH PASSWORD NULL удаляет пароль вовсе. Тестируйте в dev перед продом.</p>
<ul>
<li><strong>\password</strong> - безопаснее для интерактива.</li>
<li>VALID UNTIL ‘2026-02-27 12:00:00’ - истечение пароля.</li>
<li>PASSWORD NULL - отключение пароля.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Сценарий</th>
<th>Лучшая команда</th>
<th>Примечание</th>
</tr>
</thead>
<tbody>
<tr>
<td>Скрипт</td>
<td>PGPASSWORD + ALTER</td>
<td>Без эха</td>
</tr>
<tr>
<td>GUI</td>
<td>pgAdmin Properties</td>
<td>Визуально</td>
</tr>
<tr>
<td>Кластер</td>
<td>ALTER на всех</td>
<td>Синхронизация</td>
</tr>
</tbody>
</table>
<h2>Методы под разные платформы</h2>
<h2>Что выбрать для вашей задачи</h2>
<p dir="auto">Три команды покрывают 95% случаев: ALTER USER для точечной смены, \password для удобства, правка conf для восстановления. В новых версиях ALTER ROLE и ALTER USER идентичны. Главное - права суперюзера и правильный pg_hba.conf.</p>
<p dir="auto">Осталось разобраться с ролями в мульти-тенант системах или интеграцией с LDAP. Если база в контейнере, монтируйте volumes для conf. Подумать стоит над ротацией паролей по расписанию через cron.</p>
]]></description><link>https://forum.exlends.ru/topic/819/kak-izmenit-parol-polzovatelya-v-postgresql-poshagovaya-instrukciya</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:59:35 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/819.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Feb 2026 12:30:48 GMT</pubDate><ttl>60</ttl></channel></rss>