Как изменить пароль для пользователя PostgreSQL?
Для входа в систему без пароля:
sudo -u user_name psql db_name
Чтобы сбросить пароль, если вы его забыли:
ALTER USER user_name WITH PASSWORD 'new_password';
Затем введите:
$ sudo -u postgres psql
Затем:
\password postgres
Затем выйти из psql
:
\q
Если это не сработает, перенастройте аутентификацию.
Отредактируйте /etc/postgresql/9.1/main/pg_hba.conf
(путь будет отличаться) и измените:
local all all peer
на:
local all all md5
Затем перезапустите сервер:
$ sudo service postgresql restart
Вы можете и должны иметь пользователи'с зашифрованным паролем:
ALTER USER username WITH ENCRYPTED PASSWORD 'password';
Я считаю, что лучший способ изменить пароль, просто использовать:
\password
в консоли Постгреса.
Источник:
следует соблюдать осторожность при указании незашифрованный пароль с В эту команду. Пароль будет передаваться на сервер в В открытом виде, и это может также быть авторизованы в клиенте's команда история или логов сервера. используя psql содержит команду \пароль, которые могут быть использованы , Чтобы изменить роль'пароля без передачи пароля открытым текстом.
от https://www.postgresql.org/docs/9.0/static/sql-alterrole.html.
Чтобы изменить пароль с помощью командной строки в Linux, используйте:
sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
Перейти с вашим PostgreSQL config и отредактировать файл pg_hba.конф
судо ВИМ /и т. д./в PostgreSQL/9.3/главная/файле pg_hba.conf
и
Затем измените эту строку :
Database administrative login by Unix domain socket
local all postgres md5
к :
Database administrative login by Unix domain socket
local all postgres peer
потом перезапустить сервис PostgreSQL через команду sudo затем
команду psql-у Постгреса
Вы сейчас вошли и увидите терминал с PostgreSQL
затем введите
\пароль
и введите новый пароль для Postgres пользователя по умолчанию, после успешного изменения пароля перейдите в файле pg_hba.conf и отменить изменения, чтобы "мд5, то"
теперь вы будете зарегистрированы в качестве
команду psql-у Постгреса
с вашим новым паролем.
Дайте мне знать, если вы обнаружите какие-либо проблемы в нем.
Это был первый результат в Google, когда я искал как переименовать пользователя, так:
ALTER USER <username> WITH PASSWORD '<new_password>'; -- change password
ALTER USER <old_username> RENAME TO <new_username>; -- rename user
Несколько других команд полезно для управления пользователями:
CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;
Переместить пользователя в другую группу
ALTER GROUP <old_group> DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;
Конфигурация, которая стоит у меня на сервере, была сильно изменена, и мне удалось изменить пароль только после того, как я установил trust аутентификацию в файле pg_hba.conf
:
local all all trust
Не забудьте изменить его обратно на пароль или md5.
В моем случае на Ubuntu 14.04, установлен с Постгреса 10.3. Я нужно выполнить следующие действия
Су - сервер
к данных
psql В
ввести логическую оболочкупароль \
введите пароль\Q
, чтобы выйти из сеанса консоли выход
и настройки файл pg_hba.conf
и (мое-в в/etc/postgresql и/10/главное/файл pg_hba.конф
), убедившись, что у вас есть следующая строкаместные все Постгреса с MD5`
перезапустить службу PostgreSQL
сервер
пользователя и введите Постгреса опять оболочка. Он подскажет вам пароль.используйте это:
\password
введите новый пароль для этого пользователя, а затем подтвердите его. Если вы Don'т помню пароль и вы хотите изменить его, вы можете войти как Postgres и затем использовать это:
ALTER USER 'the username' WITH PASSWORD 'the new password';
Похож на другие ответы в синтаксис, но это должно быть известно, что вы также можете пройти MD5 для паролей, так что вы не передавая простой текстовый пароль.
Вот несколько сценариев непреднамеренных последствий изменения пароля пользователей в виде обычного текста.
= ДДЛ
или выше, то ваш обычный текстовый пароль будет отображаться в журналах ошибок.С что сказал, Вот как мы можем изменить пользователя'пароля путем построения MD5 для пароля.
Постгреса, когда хэш пароля как MD5, солей пароль с именем пользователя, затем добавляет текст "и в MD5" на результирующий хэш.
и GT; например: "в виде MD5" В+С MD5(пароль + логин)
В bash:
Баш ~$ Эхо -Н "и passwordStringUserName" По - | программы md5sum | awk и#39;{напечатать на "Алгоритм MD5" по$1}' md5d6a35858d61d85e4a82ab1fb044aba9d
В PowerShell: ``в PowerShell [Учетные_данные_рѕ] $Учетные Данные = Корпорацией
$То StringBuilder = Новый-Системный Объект.Текст.То StringBuilder
значение $null = $класса StringBuilder.Добавить('с MD5');
[System.Security.Cryptography.HashAlgorithm]::Create('md5').ComputeHash([System.Text.Encoding]::ASCII.GetBytes(((ConvertFrom-SecureStringToPlainText -Класс SecureString $Учетные Данные.Пароль) + $Учетные Данные.Имя))) | По Каждому Элементу-Объекта { значение $null = $класса StringBuilder.Функции append($_.Метод toString (на"Х2" - а)) }
$То StringBuilder.Метод toString();
md5d6a35858d61d85e4a82ab1fb044aba9d ``
Так, наконец, команда нашего альтер пользователя будет выглядеть
psql в Изменить имя пользователя с паролем 'md5d6a35858d61d85e4a82ab1fb044aba9d';
Полезные ссылки (обратите внимание, я только ссылки на последние версии документов для пожилых он изменяет некоторые но MD5-это по-прежнему поддерживают некоторое время назад.)
пароль всегда хранится в зашифрованном виде в системных каталогах. Зашифрованные сайта не имеет никакого эффекта, но принимается для обеспечения обратной совместимости. Метод шифрования определяется конфигурацией password_encryption параметра. Если строка пароль уже в MD5 зашифрован или катись-зашифрованном виде, то оно хранится как есть, независимо от password_encryption (поскольку система не может расшифровать указанный зашифрованную строку пароля, шифровать его в другой формат). Это позволяет перезаряжать зашифрованные пароли во время сброса/восстановления.
настройка конфигурации password_encryption
и полностью автоматизированный способ с Bash и ожидать ( в пример у нас новый сервер администрирования с вновь подготовленных данных ПВ на ОС и Postgres времени выполнения уровня )
# the $postgres_usr_pw and the other bash vars MUST be defined
# for reference the manual way of doing things automated with expect bellow
#echo "copy-paste: $postgres_usr_pw"
#sudo -u postgres psql -c "\password"
# the OS password could / should be different
sudo -u root echo "postgres:$postgres_usr_pw" | sudo chpasswd
expect <<- EOF_EXPECT
set timeout -1
spawn sudo -u postgres psql -c "\\\password"
expect "Enter new password: "
send -- "$postgres_usr_pw\r"
expect "Enter it again: "
send -- "$postgres_usr_pw\r"
expect eof
EOF_EXPECT
cd /tmp/
# at this point the postgres uses the new password
sudo -u postgres PGPASSWORD=$postgres_usr_pw psql \
--port $postgres_db_port --host $postgres_db_host -c "
DO \$\$DECLARE r record;
BEGIN
IF NOT EXISTS (
SELECT
FROM pg_catalog.pg_roles
WHERE rolname = '"$postgres_db_useradmin"') THEN
CREATE ROLE "$postgres_db_useradmin" WITH SUPERUSER CREATEROLE
CREATEDB REPLICATION BYPASSRLS
PASSWORD '"$postgres_db_useradmin_pw"' LOGIN ;
END IF;
END\$\$;
ALTER ROLE "$postgres_db_useradmin" WITH SUPERUSER CREATEROLE
CREATEDB REPLICATION BYPASSRLS
Пароль '" и postgres_db_useradmin_pw на"$;' логин ; и"
В общем, просто используйте PG интерфейс администратора для ведения деятельности, связанной с БД.
Если же вы объектив в автоматизации установки баз данных для локальной разработки, или ИЦ и т. д...
Например, вы можете использовать простые комбо как это.
(а) создать фиктивную супер пользователя через Дженкинс с команду, аналогичную следующей:
docker exec -t postgres11-instance1 createuser --username=postgres --superuser experiment001
это позволит создать супер пользователя experiment001 в вас Postgres БД.
(б) дать этому пользователю пароль при запуске неинтерактивных команд SQL.
docker exec -t postgres11-instance1 psql -U experiment001 -d postgres -c "ALTER USER experiment001 WITH PASSWORD 'experiment001' "
Сервер является, вероятно, лучшей базы для командной строки (неинтерактивные) оснастки. Создание пользователей, работающих с SQL, делаете резервную копию базы данных и т. д... В целом это все довольно простые, с Postgres и это в целом довольно тривиально, чтобы интегрировать в свои разработки сценариев установки или в автоматизированной конфигурации ИЦ.