Как изменить пароль пользователя PostgreSQL?

Как изменить пароль для пользователя PostgreSQL?

Решение

Для входа в систему без пароля:

sudo -u user_name psql db_name

Чтобы сбросить пароль, если вы его забыли:

ALTER USER user_name WITH PASSWORD 'new_password';
Комментарии (18)

Затем введите:

$ 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
Комментарии (7)

Вы можете и должны иметь пользователи'с зашифрованным паролем:

ALTER USER username WITH ENCRYPTED PASSWORD 'password';
Комментарии (3)

Я считаю, что лучший способ изменить пароль, просто использовать:

\password

в консоли Постгреса.

Источник:

следует соблюдать осторожность при указании незашифрованный пароль с В эту команду. Пароль будет передаваться на сервер в В открытом виде, и это может также быть авторизованы в клиенте's команда история или логов сервера. используя psql содержит команду \пароль, которые могут быть использованы , Чтобы изменить роль'пароля без передачи пароля открытым текстом.

от https://www.postgresql.org/docs/9.0/static/sql-alterrole.html.

Комментарии (2)

Чтобы изменить пароль с помощью командной строки в Linux, используйте:

sudo -u  psql -c "ALTER USER  PASSWORD '';"
Комментарии (2)

Перейти с вашим 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-у Постгреса

с вашим новым паролем.

Дайте мне знать, если вы обнаружите какие-либо проблемы в нем.

Комментарии (3)

Для Изменения Пароля

 sudo -u postgres psql

тогда

\password postgres

теперь введите новый пароль и подтвердите

затем \Q для выхода

Комментарии (0)

Чтобы запросить новый пароль сервер пользователь (не показывая его в команду):

sudo -u postgres psql -c "\password"
Комментарии (0)

Это был первый результат в Google, когда я искал как переименовать пользователя, так:

ALTER USER  WITH PASSWORD '';  -- change password
ALTER USER  RENAME TO ;    -- rename user

Несколько других команд полезно для управления пользователями:

CREATE USER  PASSWORD '' IN GROUP ;
DROP USER ;

Переместить пользователя в другую группу

ALTER GROUP  DROP USER ;
ALTER GROUP  ADD USER ;
Комментарии (0)

Конфигурация, которая стоит у меня на сервере, была сильно изменена, и мне удалось изменить пароль только после того, как я установил trust аутентификацию в файле pg_hba.conf:

local   all   all   trust

Не забудьте изменить его обратно на пароль или md5.

Комментарии (2)

В моем случае на Ubuntu 14.04, установлен с Постгреса 10.3. Я нужно выполнить следующие действия

  • Су - сервер к данных
  • psql В ввести логическую оболочку
  • пароль \ введите пароль
  • \Q, чтобы выйти из сеанса консоли
  • Переключитесь в корне путем выполнения выход и настройки файл pg_hba.conf и (мое-в в/etc/postgresql и/10/главное/файл pg_hba.конф), убедившись, что у вас есть следующая строка

местные все Постгреса с MD5`

  • Перезагрузите ваш сервер сервиса перезапустить службу PostgreSQL
  • Теперь переключаемся на сервер пользователя и введите Постгреса опять оболочка. Он подскажет вам пароль.
Комментарии (1)

используйте это:

\password

введите новый пароль для этого пользователя, а затем подтвердите его. Если вы Don'т помню пароль и вы хотите изменить его, вы можете войти как Postgres и затем использовать это:

ALTER USER 'the username' WITH PASSWORD 'the new password';
Комментарии (0)

Похож на другие ответы в синтаксис, но это должно быть известно, что вы также можете пройти MD5 для паролей, так что вы не передавая простой текстовый пароль.

Вот несколько сценариев непреднамеренных последствий изменения пароля пользователей в виде обычного текста.

  1. Если у вас нет SSL и изменения удаленно вы передаете пароль в текстовом виде по сети.
  2. Если у вас есть конфигурации ведения журнала в журнал log_statement инструкции DDL = ДДЛ или выше, то ваш обычный текстовый пароль будет отображаться в журналах ошибок.
  3. Если вы не защищаете этих журналах свои проблемы.
  4. Если вы собираете эти журналы/ЭТЛ их и показывать их там, где другие имеют доступ они могли видеть этот пароль и т. д.
  5. Если вам позволяют пользователю управлять своим паролем, они неосознанно раскрывая пароль администратора или низкий уровень сотрудника, которому поручено провести обзор журналов.

С что сказал, Вот как мы можем изменить пользователя'пароля путем построения 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

  • сервер проверки подлинности пароля документа doc

  • дом Постгреса MD5 пароля

Комментарии (0)

и полностью автоматизированный способ с Bash и ожидать ( [в пример][1] у нас новый сервер администрирования с вновь подготовленных данных ПВ на ОС и 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 
Комментарии (0)

В общем, просто используйте 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 и это в целом довольно тривиально, чтобы интегрировать в свои разработки сценариев установки или в автоматизированной конфигурации ИЦ.

Комментарии (0)