Как поменять пароль к бд postgresql
Перейти к содержимому

Как поменять пароль к бд postgresql

  • автор:

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

В этом учебном пособии вы узнаете, как изменить пароль пользователя в PostgreSQL с синтаксисом и примерами.

Описание

Оператор ALTER USER используется для изменения пароля пользователя в базе данных PostgreSQL.

Синтаксис

Синтаксис для изменения пароля с помощью оператора ALTER USER в PostgreSQL:

ALTER USER user_name
WITH [ ENCRYPTED | UNENCRYPTED ] PASSWORD ‘new_password’
| VALID UNTIL ‘expiration’;

Параметры или аргументы

user_name Пользователь, пароль которого вы хотите изменить. new_password Новый пароль, который будет назначен пользователю. expiration Дата / время, когда срок действия пароля истечет. Если вы не хотите, чтобы срок действия пароля истек, установите для expiration значение ‘infinity’.

Пример

Рассмотрим пример, который показывает, как использовать оператор ALTER USER в PostgreSQL для изменения пароля.
Например, если вы хотите обновить пользователя с именем trizor паролем zubastik , вы должны выполнить следующий оператор ALTER USER в PostgreSQL:

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

Начал программировать, пока не полезли ошибки в php на некоторые функции, о том что при обращении к БД, нужно чтобы пользователь обязательно был с паролем.
Пробовал через phppgadmin задать пароль, но ничего не выходит.

#1
16:01, 28 мая 2013

> Пробовал через phppgadmin задать пароль, но ничего не выходит.
Ясное дело, пароль хешируется. Подключись к базе через консоль, измени пароль юзера.
http://www.postgresql.org/docs/8.0/static/sql-alteruser.html

#2
21:18, 28 мая 2013

Запрос прошел удачно, но как я понял пароль так и не появился в БД похоже. Ошибки так и сыпятся

#3
22:11, 28 мая 2013

А из консоли твой юзер может достучаться до базы?

psql -W -U
#4
22:31, 28 мая 2013

Ghost2
Я ступил — делал SQL запрос. Как мне в консоль попасть? Просто через командную строку сделать команду?

#5
23:35, 28 мая 2013

> Как мне в консоль попасть?
Я же написал выше. У OpenServer есть консоль?

#6
23:50, 28 мая 2013

Ghost2
В общем с помощью psql -W -U я вошел в БД
Но я что-то не пойму когда мне это писать ALTER USER postgres WITH PASSWORD ‘пароль_мой’;

#7
1:14, 29 мая 2013

Kavis
> Но я что-то не пойму когда мне это писать ALTER USER postgres WITH PASSWORD
> ‘пароль_мой’;
Прямо в консоли и пиши

#8
23:52, 30 мая 2013

D:\WebServers\web4\OpenServer>psql ALTER USER postgres WITH PASSWORD ‘parol’;
psql: предупреждение: лишний аргумент «postgres» проигнорирован
psql: предупреждение: лишний аргумент «WITH» проигнорирован
psql: предупреждение: лишний аргумент «PASSWORD» проигнорирован
psql: предупреждение: лишний аргумент «‘parol’;» проигнорирован
psql: ВАЖНО: роль «USER» не существует

#9
0:15, 31 мая 2013

Сделал так
Входим в БД
psql -W -U postgres postgres

postgres=# ALTER USER postgres PASSWORD ‘postgres’
postgres-# \password postgres
Введите новый пароль:
Повторите его:
Пароли не совпадают.
postgres-# \password postgres
Введите новый пароль:
Повторите его:
postgres-#
В итоге пароль не сменился

#10
0:38, 31 мая 2013

Kavis
> Не помогает((
Потому что ты зашел скорее всего не под суперпользователем.

#11
0:41, 31 мая 2013

Какое-то издевательство:
в pg_hba.conf изменить метод авторизации для localhost с trust на парольный. (password)
В итоге
ОТМЕТКА: принято подключение: узел=127.0.0.1 порт=58846
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (по паролю)
Смотрю на всякий случай пароль C:\Users\Kavis\AppData\Roaming\postgresql\pgpass.conf
Пароль тот же самый, который я ввел
В чем проблема?, что тут еще нужно сделать.

#12
0:58, 31 мая 2013

Kavis
> C:\Users\Kavis
А запускаешь ты под тем же самым пользователем? Или под пользователем postgres?

#13
14:22, 31 мая 2013

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

#14
16:11, 31 мая 2013

Kavis
> В винде я сижу под Kavis, у меня конечно были мысли что нужно создать
> пользователя postgres, я его создал, но не пробовл из под него работать.
У тебя не возникало мысли, что пользователь postgres возможно не может читать файл в директории C:\Users\Kavis ?

Я с постгресом работал мало, но в линуксе он требует прав 600 на файл и отказывается запускаться иначе.

Пароль пользователя postgres

Пароль пользователя postgres задается при добавлении пользователя изначально, обе операции выполняются одной командой. Пароль в любой момент можно поменять.

Как задать пароль при добавлении пользователя и БД

Команды по администрированию базами и пользователями выполняются от имени системного пользователя postgres

root может стать им выполнив su — postgres

Затем можно без пароля попасть в интерфейс БД psql

Пароль пользователя postgres

Или то же самое одной командой

Пользователь может создать базу

Затем добавить пользователя и задать для него пароль

=# create user appadmin with encrypted password ‘jdfh8jhtghnjkfrvhyu’;

После этого пользователю нужно дать права для работы с базой данных

=# grant all privileges on database ‘db1’ to appadmin;

Postgres будет выводить сообщения об успешном выполнении каждой из операций:

Postgres добавление пользователя и прав доступа

Изменить пароль пользователя Postgres

Команда для изменения паролей уже существующих пользователей, выполняется из консоли psql

=# alter user appadmin with encrypted password ‘NEW_STRONG_PASSWORD’;

Сменим пароль для созданного ранее пользователя appadmin

alter user password psql

Сервис также выдает сообщение ALTER ROLE, которое говорит о том, что операция прошла успешно.

Непосредственно для системного пользователя postgres (с его правами выполняются процессы сервиса) пароль не нужен, им может стать root выполнив su как показано ранее. Если нужна авторизация root может установить для postgres новый пароль

Затем пароль нужно ввести дважды, отображаться он не будет. На правах пользователей в самой СУБД это не скажется.

Пользователь appadmin из примера выше — не системный, он существует только в postgresql.

Подключаться к базе из консоли от имени этого пользователя нужно указывая имя базы и ключ -W

psql -h myhost -d db1 -U appadmin -W

Последний ключ не обязателен, но без него в интерактивном режиме в некоторых версиях СУБД не будет запрашиваться пароль, пароль должен запрашиваться.

Про создание дампов баз данных Postgres и их загрузку.

ezhov-da / sql-postgres-Изменение пароля пользователя postgres.txt

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Полезные ссылки:
1. http://profhelp.com.ua/articles/postgresql-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-%D1%81%D1%83%D0%BF%D0%B5%D1%80%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F
2. https://stackoverflow.com/questions/37234940/centos-locate-command-doesnt-work
3. https://stackoverflow.com/questions/19674456/run-postgresql-queries-from-the-command-line
Может произойти так, что ты забыл пароль от пользователя postgres.
Но не беда, его можно восстановить, для этого:
1. Открой файл: pg_hba.conf
Не знаешь где он лежит? Воспользуйся командой: locate pg_hba.conf
Не работает команда? Установи ее командами: yum install mlocate и updatedb
2. Измени в файле строку:
local all postgres md5
на
local all postgres trust
3. Перезапусти сервис: systemctl restart postgresql-9.3.service
4. Зайди в командную строку psql командой: psql -U postgres
5. Введи команду: alter user postgres with password ‘newpasswod’;
6. Нажми «Enter»
7. Для выхода из командной строки нажми набери \q + Enter
8. Проверь, что теперь ты можешь авторизоваться в БД под пользователем postgres и с указанным тобою паролем
9. Все получилось?
Измени строку в файле снова на: local all postgres md5
10. Перезапусти сервис: systemctl restart postgresql-9.3.service
11. Profit!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *