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

avatar
Saad
4 октября 2012 в 05:45
1560916
22
1310

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

Источник

Ответы (22)

avatar
solaimuruganv
4 октября 2012 в 05:55
1860

Для входа без пароля:

sudo -u user_name psql db_name

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

ALTER USER user_name WITH PASSWORD 'new_password';
greg
4 октября 2012 в 07:42
166

Это позволяет очистить пароль в истории команд postgresql пользователя.

RickyA
30 октября 2013 в 13:03
161

@greg: удалите его: rm ~/.psql_history

equivalent8
14 апреля 2014 в 15:58
59

не по теме, но если кто-то ищет "как изменить имя пользователя", чем ALTER USER myuser RENAME TO newname; ... по какой-то причине Google указывал мне здесь, когда я искал это :)

Rescribet
6 февраля 2015 в 17:14
5

@RickyA Не забудьте также очистить журналы базы данных, они также могут содержать пароли в виде открытого текста.

Boyan
23 марта 2016 в 11:17
11

Почему вы используете кавычки "и"? Я имею в виду, есть разница, и в запросе DML вы должны использовать "при работе со строками, но есть ли особая причина использовать их оба здесь?

Boyan
23 марта 2016 в 11:18
2

Использование одинарной кавычки для имени роли не работает, но мне все еще интересно, почему?

P Daddy
13 апреля 2016 в 05:11
9

Пользователь - это объект, а не строка. Сравните с ALTER TABLE "table_name" или даже SELECT * FROM "table_name". Вы не можете использовать одинарные кавычки в этих контекстах с таблицами, и то же самое с пользователями / ролями.

tforgione
3 декабря 2016 в 12:31
2

@RickyA удаление файла не означает, что пароль будет удален в системе жестко, его можно найти с помощью криминалистики с такими вещами, как photorec, поэтому вам нужно будет shred и т. Д.

dualed
15 февраля 2017 в 15:03
2

@DragonRock не поможет вам ни с твердотельными накопителями, ни даже с более новыми версиями ext в целом.

tforgione
15 февраля 2017 в 16:39
1

@dualed да, ты прав. Полностью избавиться от файла довольно сложно. Лучше вообще никогда не сохранять его!

Andi-lo
7 августа 2017 в 12:32
0

Просто любопытно, но почему (теперь неиспользуемый) пароль является проблемой в файлах журнала? Он был изменен и поэтому бесполезен, или я ошибаюсь?

sekmo
16 октября 2017 в 10:48
0

что делает первая строка?

Alphaaa
23 января 2018 в 16:45
5

@greg @RickyA вместо удаления всего .psql_history достаточно ввести команду с некоторым пробелом перед ALTER USER, и она не будет сохранена в .psql_history. Этот же удобный прием доступен и в стандартной оболочке.

Natim
8 февраля 2018 в 09:16
3

используйте ENCRYPTED PASSWORD

Gregory Arenius
20 марта 2018 в 19:05
1

@Alphaaa Я думаю, что это работает, только если у вас установлен \set HISTCONTROL ignorespace в файле .psqlrc.

Alphaaa
21 марта 2018 в 18:25
0

Да, @GregoryArenius, ваш файл .psqlrc должен содержать \set HISTCONTROL ignorespace или \set HISTCONTROL ignoreboth, чтобы мое предложение сработало.

Rohmer
2 августа 2018 в 23:04
3

@Natim Из документов: The password is always stored encrypted in the system catalogs. The ENCRYPTED keyword has no effect, but is accepted for backwards compatibility. Но вы можете отправить зашифрованный пароль: If the presented password string is already in MD5-encrypted or SCRAM-encrypted format, then it is stored as-is regardless of password_encryption. postgresql.org/docs/current/static/sql-createrole.html

Laryx Decidua
19 декабря 2018 в 12:51
2

Если вы используете команду \password в psql, то история не будет содержать пароль. (По крайней мере, в версии 9.2.24)

FlyingV
1 июня 2020 в 18:25
1

### Используйте DOUBLE QUOTE для пользователя, если он содержит точку.

Peter Krauss
19 июля 2020 в 11:14
0

незашифрованный пароль запоминается psql историей или оболочкой ... То же самое для команды SQL ENCRYPTED PASSWORD (!). Как использовать зашифрованный / хешированный (например, SHA256) пароль?

AndreKR
23 февраля 2021 в 07:09
0

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

Max Raskolnikov
3 октября 2021 в 15:12
0

-bash: -u: команда не найдена

avatar
rams zipppp
30 октября 2021 в 10:34
2

изменить пароль на postgres для пользователя postgres

# ALTER USER postgres WITH ENCRYPTED PASSWORD '<NEW-PASSWORD>';
avatar
CHAVDA MEET
30 октября 2021 в 10:05
1

Установка пароля для роли postgres

$ sudo -u postgres psql

у вас будет что-то вроде:

postgres=#

изменить пароль на postgres для пользователя postgres

# ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';

у вас будет что-то вроде:

ALTER ROLE
postgres=#

Для этого нам нужно отредактировать файл pg_hba.conf.

=====> Не стесняйтесь заменить nano любым редактором по вашему выбору

$ sudo nano /etc/postgresql/9.5/main/pg_hba.conf

Теперь нам нужно перезапустить Postgres, чтобы изменения вступили в силу.

$ sudo service postgresql restart
avatar
kleines filmröllchen
13 апреля 2021 в 09:05
1

Большинство ответов были в основном правильными, но вам нужно обратить внимание на мелочи. Моя проблема заключалась в том, что я никогда не устанавливал пароль для postgres, поэтому я не мог войти в командную строку SQL, которая позволяла мне изменять пароли. Вот шаги, которые я успешно выполнил (обратите внимание, что большинству или всем командам нужен пользователь sudo / root):

  • Отредактируйте pg_hba.conf в каталоге данных кластера БД, к которому вы пытаетесь подключиться.
    • Папку каталога данных можно найти, проверив командную строку systemd, которую легко получить с помощью systemctl status postgresql@VERSION-DB_CLUSTER. Замените VERSION своей версией PSQL, а DB_CLUSTER - именем вашего кластера базы данных. Это может быть основным, если он был создан автоматически, например. postgresql@13-main. В качестве альтернативы мой bash предоставил автозаполнение после ввода postgresql@, поэтому вы можете попробовать это или найти службы postgresql в списке всех служб (systemctl -a). После того, как у вас есть вывод состояния, найдите вторую командную строку после CGroup, которая должна быть довольно длинной и начинаться с /usr/lib/postgresql/13/bin/postgres или аналогичного (в зависимости от версии, дистрибутива и метода установки). Вы ищете каталог после -D, например /var/lib/postgresql/13/main.
  • Добавьте следующую строку: host all all 127.0.0.1/32 trust. Это позволяет всем пользователям всех баз данных безоговорочно подключаться к базе данных через IPv4 на локальном компьютере , не запрашивая пароль . Это временное исправление, и не забудьте удалить эту строку позже. Чтобы быть уверенным, я закомментировал host all all 127.0.0.1/32 md5 (md5 может быть заменен на scram-sha-256), который действителен для тех же данных для входа в систему, просто требуя пароль.
  • Перезапустите службу базы данных: systemctl restart postgresql@... Снова используйте ту же службу, которую вы нашли ранее.
  • Убедитесь, что служба запущена правильно с systemctl status postgresql@....
  • Подключитесь к psql и, что очень важно, заставьте psql не запрашивать пароль . По моему опыту, он запросит пароль, даже если серверу все равно, и все равно отклонит ваш логин, если ваш пароль был неправильным. Это можно сделать с помощью флага -w. Полная командная строка выглядит примерно так: sudo -u postgres psql -w -h 127.0.0.1 -p 5432. Здесь postgres - ваш пользователь, и вы могли его изменить. 5432 - это порт сервера для конкретного кластера и может быть выше, если вы используете более одного кластера (например, у меня 5434).
  • Измените пароль с помощью специальной команды \password.
  • Не забудьте удалить пароль, игнорировать обходной путь и перезапустить сервер, чтобы применить конфигурацию.
avatar
Andreas Covidiot
5 марта 2021 в 13:46
1

Я был в Windows (Server 2019; PG 10), поэтому соединения типа local (pg_hba.conf: local all all peer) не поддерживаются. Следующее должно работать как в системах Windows, так и в Unix:

  1. резервное копирование pg_hba.conf на pg_hba.orig.conf например,
  2. создать pg_hba.conf только с этим: host all all 127.0.0.1/32 trust
  3. перезапустить pg (служба)
  4. выполнить psql -U postgres -h 127.0.0.1
  5. введите (в консоли pgctl) alter user postgres with password 'SomePass';
  6. восстановить pg_hba.conf с 1. выше
avatar
Sufyan Elahi
2 октября 2020 в 17:30
1

проверьте pg_hba.conf

Если используется метод аутентификации «одноранговый», имя / пароль пользователя операционной системы клиента должны совпадать с именем пользователя и паролем базы данных. В этом случае установите одинаковые пароли для пользователя Linux postgres и пользователя БД postgres.

подробности см. В документации: https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html

avatar
Timothy Macharia
13 июня 2020 в 19:27
12

Если у вас Windows.

Откройте файл pg_hba.conf и измените его с md5 на peer

Откройте cmd, введите psql postgres postgres

Затем введите \password, чтобы получить запрос на ввод нового пароля.

См. Этот средний пост для получения дополнительной информации и подробных шагов.

Brian Minton
13 июня 2020 в 21:47
2

Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из обзора

Timothy Macharia
13 июня 2020 в 22:37
0

Спасибо @BrianMinton за внимание.

Soyuzbek Orozbek Uulu
23 декабря 2020 в 05:24
3

это сработало для меня, используя trust вместо peer

avatar
FlyingV
1 июня 2020 в 18:28
5

TL; DR:

Во многих системах учетная запись пользователя часто содержит точку или какую-то точку (пользователь: john.smith, horise.johnson). В этих случаях необходимо будет внести изменения в принятый выше ответ. Для изменения требуется, чтобы имя пользователя было заключено в двойные кавычки.

Example:

ALTER USER "username.lastname" WITH PASSWORD 'password'; 

Рациональный:

Postgres довольно разборчив в том, когда использовать «двойные кавычки», а когда «одинарные кавычки». Обычно при вводе строки вы используете одинарные кавычки.

avatar
99Sono
1 ноября 2019 в 17:41
2

В общем, просто используйте пользовательский интерфейс администратора pg для выполнения действий, связанных с базой данных.

Если вместо этого вы больше сосредотачиваетесь на автоматизации настройки базы данных для вашей локальной разработки или CI и т. Д ...

Например, вы можете использовать такую ​​простую комбинацию.

(a) Создайте фиктивного суперпользователя через jenkins с помощью команды, подобной этой:

docker exec -t postgres11-instance1 createuser --username=postgres --superuser experiment001

в вашей базе данных postgres будет создан суперпользователь с именем эксперимент001.

(б) Дайте этому пользователю пароль, выполнив НЕИнтерактивную команду SQL.

docker exec -t postgres11-instance1 psql -U experiment001 -d postgres -c "ALTER USER experiment001 WITH PASSWORD 'experiment001' "

Postgres, вероятно, лучшая база данных для инструментов командной строки (неинтерактивных). Создание пользователей, запуск SQL, резервное копирование базы данных и т. Д. В общем, с postgres все довольно просто, и в целом довольно тривиально интегрировать это в сценарии установки разработки или в автоматическую конфигурацию CI.

avatar
Yordan Georgiev
20 октября 2019 в 08:35
4

и полностью автоматизированный способ с помощью bash and expect (в этом примере мы предоставляем нового администратора postgres с недавно подготовленным postgres pw как на уровне ОС, так и на уровне времени выполнения 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 
PASSWORD  '"$postgres_db_useradmin_pw"' LOGIN ;
 "
avatar
jkdba
20 августа 2019 в 19:52
4

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

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

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

С учетом вышесказанного, вот как мы можем изменить пароль пользователя, построив md5 пароля.

  • Postgres, когда хеширует пароль как md5, объединяет пароль с именем пользователя, а затем добавляет текст «md5» к результирующему хешу.
  • пример: «md5» + md5 (пароль + имя пользователя)

  • В bash:

    ~$ echo -n "passwordStringUserName" | md5sum | awk '{print "md5"$1}'
    md5d6a35858d61d85e4a82ab1fb044aba9d
  • В PowerShell:
    [PSCredential] $Credential = Get-Credential

    $StringBuilder = New-Object System.Text.StringBuilder

    $null = $StringBuilder.Append('md5');

    [System.Security.Cryptography.HashAlgorithm]::Create('md5').ComputeHash([System.Text.Encoding]::ASCII.GetBytes(((ConvertFrom-SecureStringToPlainText -SecureString $Credential.Password) + $Credential.UserName))) | ForEach-Object {
        $null = $StringBuilder.Append($_.ToString("x2"))
    }

    $StringBuilder.ToString();

    ## OUTPUT
    md5d6a35858d61d85e4a82ab1fb044aba9d
  • Итак, наконец, наша команда ALTER USER будет выглядеть как
    ALTER USER UserName WITH PASSWORD 'md5d6a35858d61d85e4a82ab1fb044aba9d';
  • Соответствующие ссылки (обратите внимание, что я буду ссылаться только на последние версии документов, для более старых версий они немного меняются, но md5 по-прежнему поддерживает обратный путь.)
  • создать роль
  • Пароль всегда хранится в зашифрованном виде в системных каталогах. Ключевое слово ENCRYPTED не действует, но допускается для обратной совместимости. Метод шифрования определяется параметром конфигурации password_encryption. Если представленная строка пароля уже находится в формате с шифрованием MD5 или SCRAM, то она сохраняется как есть, независимо от password_encryption (поскольку система не может расшифровать указанную зашифрованную строку пароля, чтобы зашифровать ее в другом формате). Это позволяет перезагружать зашифрованные пароли во время дампа / восстановления.

  • параметр конфигурации для шифрование пароля
  • документ аутентификации пароля postgres
  • сборка пароля postgres md5
avatar
Akitha_MJ
29 июня 2019 в 19:09
41

Чтобы изменить пароль

 sudo -u postgres psql

затем

\password postgres

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

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

Coliban
8 января 2021 в 13:17
0

Если я это сделаю, он запросит пароль

avatar
haxpor
25 марта 2018 в 19:47
9

В моем случае на Ubuntu 14.04 с установленной postgres 10.3. Мне нужно выполнить следующие шаги

  • su - postgres для переключения пользователя на postgres
  • psql для входа в оболочку postgres
  • \password затем введите свой пароль
  • \q для выхода из сеанса оболочки
  • Затем вы переключаетесь обратно на root, выполнив exit и настраивая свой pg_hba.conf (мой находится на /etc/postgresql/10/main/pg_hba.conf), убедившись, что у вас есть следующая строка

    local all postgres md5

  • Перезапустите службу postgres, используя service postgresql restart
  • Теперь переключитесь на пользователя postgres и снова войдите в оболочку postgres. Вам будет предложено ввести пароль.
Archit Kapoor
27 июля 2018 в 10:19
0

Я не думаю, что вам действительно нужно перезапускать службу postgresql после изменения пароля. Мне удалось сбросить пароль, перезапустив его. \ пароль - самый быстрый способ. В противном случае вам понадобится команда ALTER USER.

avatar
lcnicolau
3 марта 2018 в 04:05
14

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

sudo -u postgres psql -c "\password"
avatar
Chris Dare
12 февраля 2018 в 11:52
7

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

\password

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

ALTER USER 'the username' WITH PASSWORD 'the new password';
avatar
Viktor Nordling
30 августа 2017 в 16:55
89

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

\password

в консоли Postgres.

Согласно ALTER USER документации:

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

Примечание: ALTER USER - это псевдоним для ALTER ROLE

Martin
16 апреля 2018 в 15:59
14

Это также можно использовать для изменения паролей для других пользователей: \password username

Coliban
23 февраля 2021 в 11:25
0

Не находит \ пароль (в Linux)

Andy
24 февраля 2021 в 16:23
0

@Coliban, при запуске вы должны увидеть приглашение psql.

Coliban
25 февраля 2021 в 10:42
0

@Andy: да, но psql по какой-то причине не подключился к БД. Я установил новую версию с новыми паролями, теперь все в порядке. Спасибо

avatar
Salvador Dali
21 апреля 2016 в 20:53
14

Это был первый результат в 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>;
avatar
Vajira Lasantha
25 мая 2015 в 23:14
50

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

sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
Pedro Cordeiro
24 апреля 2018 в 20:01
6

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

TheRealChx101
21 июля 2019 в 20:46
3

вы можете использовать здесь переменные среды? Я хочу автоматизировать это в сценарии развертывания

avatar
yglodt
21 февраля 2015 в 08:58
117

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

ALTER USER username WITH ENCRYPTED PASSWORD 'password';
John29
3 ноября 2017 в 19:03
62

Это ключевое слово не имеет значения для текущей версии. Из postgresql.org/docs/current/static/sql-createrole.html The password is always stored encrypted in the system catalogs. The ENCRYPTED keyword has no effect, but is accepted for backwards compatibility.

phep
7 мая 2019 в 11:35
11

Остерегаться! Комментарий @ John29 верен только для Postgresql 10 и выше. Для всех остальных версий имеет значение флаг ЗАШИФРОВАНИЕ.

Peter Krauss
19 июля 2020 в 11:12
0

незашифрованный пароль запоминается psql историей или оболочкой ... Как использовать хешированный (например, SHA1) пароль?

avatar
Murtaza Kanchwala
9 октября 2014 в 14:03
30

Перейдите в конфигурацию Postgresql и отредактируйте pg_hba.conf

sudo vim /etc/postgresql/9.3/main/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 -U postgres

Вы войдете и увидите терминал Postgresql

затем введите

\password

и введите НОВЫЙ пароль для пользователя Postgres по умолчанию. После успешного изменения пароля снова перейдите в pg_hba.conf и верните изменение на «md5»

теперь вы будете авторизованы как

psql -U postgres

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

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

G M
4 июля 2015 в 22:12
0

Не работает: user@user-NC10:~$ psql -U postgres psql: FATAL: Peer authentication failed for user "postgres"

Murtaza Kanchwala
5 июля 2015 в 18:43
0

Хорошо, сделайте другой метод sudo su - postgres psql. Вы войдете в терминал и затем измените там пароль. Это альтернативный способ. Сообщите мне, работает ли это для вас или вам нужно полное объяснение

G M
11 июля 2015 в 15:08
0

мм, я пробовал, но у меня другая ошибка: / usr / bin / psql: строка 19: использование: команда не найдена / usr / bin / psql: строка 21: использование: команда не найдена / usr / bin / psql: строка 23: использование: команда не найдена / usr / bin / psql: строка 24: использование: команда не найдена / usr / bin / psql: psql: строка 26: синтаксическая ошибка рядом с неожиданным токеном $version,' /usr/bin/psql: psql: line 26: my ($ version, $ cluster, $ db , $ port, $ host); ' Спасибо за вашу помощь!

avatar
ruruskyi
11 января 2014 в 20:39
10

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

local   all   all   trust

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

samsri
28 мая 2017 в 07:52
1

вам также необходимо перезапустить службу postgres, чтобы изменения вступили в силу sudo systemctl restart postgresql.service

JMStudios.jrichardson
16 августа 2017 в 23:12
0

куда должен идти этот файл pg_hba.conf?

avatar
Clint Bugs
4 октября 2012 в 05:50
810

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

  1. Войдите в psql:
$ sudo -u postgres psql
  1. Затем в консоли psql измените пароль и выйдите:
postgres=# \password postgres
Enter new password: <new-password>
postgres=# \q

или используя запрос

ALTER USER postgres PASSWORD '<new-password>';

или одной строкой

sudo -u postgres psql -c "ALTER USER postgres PASSWORD '<new-password>';"

Примечание:

Если это не сработает, измените конфигурацию аутентификации, отредактировав /etc/postgresql/9.1/main/pg_hba.conf (путь будет отличаться) и измените:

local   all         all                  peer # change this to md5

## to

local   all         all                  md5 # like this

Затем перезапустите сервер:

$ sudo service postgresql restart
Saad
4 октября 2012 в 05:51
3

какой пароль по умолчанию для postgres? поменял случайно; можно сбросить?

David LeBauer
26 июля 2013 в 14:49
2

(в psql 9.2) если я наберу \p, он даст мне пароль; если я наберу \password postgres, он выдает пароль, а затем выдает предупреждения \p extra argument "assword" ignored; \p extra argument "postgres" ignored

Lmwangi
3 сентября 2014 в 18:28
0

Если вы внесли изменения с помощью \ password и находитесь на том же хосте, что и сервер postgres, попробуйте указать, что вы хотите, чтобы ваше соединение проходило через inet, а не через сокет unix. т.е. используйте параметр -h: psql -h 127.0.0.1. Это спасло меня от редактирования файла конфигурации pg_hba

Zachary Scott
28 августа 2017 в 21:04
0

Если только для справки, local all postgres md5 разрешает локальный вход для postgres с интерактивным вводом пароля, но, что еще лучше, существует host all all 127.0.0.1/32 md5 позволяет sudo psql --host 127.0.0.1 --username postgres --password входить в систему в интерактивном режиме для входа в postgres без изменений pg_hba.conf.

otocan
13 февраля 2019 в 11:14
9

Это намного лучше, чем оставлять пароль в истории команд SQL.

TheRealChx101
21 июля 2019 в 20:45
1

@ZacharyScott Что ты говоришь?

Punnerud
28 августа 2019 в 06:31
3

Чтобы изменить пароль пользователя postgres в Linux: sudo passwd postgres

levibostian
26 февраля 2020 в 13:12
0

Если вы хотите изменить пароль для другого пользователя, кроме postgres, команда \password принимает имя роли в качестве первого аргумента: \password <role_name> postgresql.org/docs/9.0/sql-alterrole.html

Dimitar Dimitrov
28 марта 2021 в 19:35
0

Это правильный ответ. Большое спасибо, я вижу, что давно проголосовал за него, так рад, что снова нашел его , !

xtian
9 июня 2021 в 13:00
0

@Punnerud, "Чтобы изменить пароль пользователя postgres в Linux: sudo passwd postgres" Holy Smokes! Я был так сбит с толку. И у Postgres, и у Linux один и тот же пользователь. Я новичок в postgres и использую его с новым сайтом Django. Мне нужна была резервная копия БД и выбор 5 случайных руководств, это не было хорошо объяснено. LSS это решило проблему с паролем, так что я мог сделать резервную копию.