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

420

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

Теги:

8 ответов

580
Лучший ответ

Для пароля меньше логина:

sudo -u user_name psql db_name

В reset пароль, если вы забыли:

ALTER USER 'user_name' WITH PASSWORD 'new_password';
  • 91
    Это позволило очистить пароль в истории команд пользователя postgresql.
  • 77
    @greg: удалите его: rm ~/.psql_history
Показать ещё 16 комментариев
381

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

sudo -u postgres psql

Тогда:

\ password postgres

Затем выйти:

\ д

Если это не работает, перенастройте проверку подлинности.

Изменить /etc/postgresql/9.1/main/pg_hba.conf (путь будет отличаться) и изменить:

    local   all             all                                     peer

в

    local   all             all                                     md5

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

sudo service postgresql restart
  • 2
    какой пароль по умолчанию для postgres? изменил это случайно; можно сбросить?
  • 0
    попробуйте еще раз с этим кодом ...
Показать ещё 4 комментария
42

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

ALTER USER username WITH ENCRYPTED PASSWORD 'password';
  • 4
    Почему я не знал о команде ENCRYPTED. Наверное, хорошо, что я не администратор ...
  • 22
    Это ключевое слово не имеет значения для текущей версии. От 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.
14

Перейдите в свой Postgresql Config и Edit pg_hba.conf

sudo vim /etc/postgresql/9.3/main/pg_hba.conf

Затем измените эту строку:

Database administrative login by Unix domain socket
local      all              postgres                                md5

to:

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

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

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

  • 0
    Это не работает: user@user-NC10:~$ psql -U postgres psql: FATAL: Peer authentication failed for user "postgres"
  • 0
    Хорошо, выполните другой метод sudo su - postgres psql. Вы войдете в терминал, а затем смените там пароль. Это альтернативный способ. Дайте мне знать, если это работает для вас, или вам нужно полное объяснение
Показать ещё 1 комментарий
12

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

sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
  • 2
    Спасибо за хороший ответ.
  • 1
    Просто помните, что это, вероятно, сохранит пароль пользователя базы данных в вашей истории команд.
7

Это был первый результат в 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>;
5

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

\password

в консоли Postgres.

Источник:

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

из https://www.postgresql.org/docs/9.0/static/sql-alterrole.html.

  • 1
    Это правильный ответ с точки зрения безопасности.
  • 4
    Это также может быть использовано для изменения паролей для других пользователей: \password username
4

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

local   all   all   trust

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

  • 1
    вам также нужно перезапустить службу postgres, чтобы изменения вступили в силу sudo systemctl restart postgresql.service
  • 0
    куда должен идти этот файл pg_hba.conf?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню