Смена пароля postgresql linux

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

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

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

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

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

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

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

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

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

=# grant all privileges on db1 mydb to appadmin;

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

Пользователя можно создавать и задавать ему пароль двумя раздельными командами

sudo -u postgres createuser anotheruser

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

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

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

Затем пароль нужно ввести дважды, отображаться он не будет.

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

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

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

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

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

Источник

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

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

11 ответов

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

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

затем бросить psql :

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

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

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

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

в консоли Postgres.

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

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

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

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

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

затем перезапустите службу PostgreSQL с помощью команды SUDO, затем

теперь вы будете введены и увидите терминал Postgresql

и введите новый пароль Пользователь Postgres по умолчанию, после успешной смены пароля снова перейдите в pg_hba.conf и вернуть изменение в «md5»

теперь вы войдете в систему как

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

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

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

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

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

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

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

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

для моего случая на 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 user и снова введите оболочку postgres. Он предложит вам пароль.
  • Читайте также:  Команды линукс запуск файла

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

    Источник

    Update Your PostgreSQL Password in Linux

    PostgreSQL supports many client authentication methods, but in this case we’re only going to concern ourselves with two: password and md5.

    Before Getting Started

    • These instructions are intended specifically for changing a password in PostgreSQL.
    • I’ll be working from a Liquid Web Core Managed CentOS 7 server, and I’ll be logged in as root.
    • PostgreSQL is installed per our tutorial on: How to Install and Connect to PostgreSQL on CentOS 7.

    Step #1: Switch to the PostgreSQL User: postgres

    If you’re working from a default PostgreSQL installation, then PostgreSQL will be configured with the user postgres.

    Since we’re logged in as root, and we’re assuming that root doesn’t have a user for PostgreSQL, switch to the default PostgreSQL user: postgres.

    … then attempt a connection to PostgreSQL.

    … enter your password at the prompt.

    … the correct, valid response will be similar to the following.

    psql (9.3.9)
    Type «help» for help.

    Step #2: Add/Change the PostgreSQL Password for the User: postgres

    Use the following command to change the PostgreSQL password for your current user, which is now postgres.

    Enter your new password, and then enter it again to confirm it.

    Enter new password:
    Enter it again:

    Now quit the PostgreSQL interface.

    Bonus Information!

    You can do all of step one in exactly one command.

    Источник

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

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

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

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

    Затем выйти psql :

    Если это не работает, перенастройте аутентификацию.

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

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

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

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

    в консоли Postgres.

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

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

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

    Перейдите к вашему Postgresql Config и отредактируйте pg_hba.conf

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

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

    затем перезапустите сервис PostgreSQL с помощью команды SUDO

    Вы будете введены и увидите терминал Postgresql.

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

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

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

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

    $ psql -U postgres psql: FATAL: Peer authentication failed for user «postgres»

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

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

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

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

    Читайте также:  Как настроить службу удаленных рабочих столов windows server 2016

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

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

    Для моего случая на 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. Он подскажет вам пароль.
  • введите новый пароль, который вы хотите для этого пользователя, а затем подтвердите его. Если вы не помните пароль и хотите изменить его, вы можете войти в систему как postgres, а затем использовать это:

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

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

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

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

      Postgres, когда хеширует пароль как md5, солит пароль с именем пользователя, затем добавляет текст «md5» к полученному хешу.

    например: «md5» + md5 (пароль + имя пользователя)

    Пароль всегда хранится в зашифрованном виде в системных каталогах. Ключевое слово ENCRYPTED не имеет никакого эффекта, но принимается для обратной совместимости. Способ шифрования определяется параметром конфигурации password_encryption. Если представленная строка пароля уже имеет формат MD5 или SCRAM, то она сохраняется как есть, независимо от password_encryption (поскольку система не может расшифровать указанную зашифрованную строку пароля, чтобы зашифровать ее в другом формате). Это позволяет перезагрузить зашифрованные пароли во время дампа / восстановления.

    Источник

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

    Часть нижеописанных операций нужно выполнять в командной оболочке PostgreSQL. Она может быть запущена от пользователя postgres — чтобы войти в систему от данного пользователя, вводим:

    * если система выдаст ошибку, связанную с нехваткой прав, сначала повышаем привилегии командой sudo su или su.

    Теперь запускаем командную оболочку PostgreSQL:

    $ psql -Upostgres template1

    * в данном примере, вход выполняется от учетной записи postgres к шаблонной базе template1.

    Для просмотра всех пользователей СУБД:

    =# select * from pg_user;

    Создание нового пользователя

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

    1. Создание пользователя

    а) Добавление новой роли (пользователя) из оболочки SQL:

    =# CREATE USER dmosk WITH PASSWORD ‘myPassword’;

    * в примере создана роль dmosk с паролем myPassword.

    б) Добавление новой роли (пользователя) из командной строки Linux:

    createuser -P dmosk

    2. Назначение прав на использование базы данных

    Даем права на базу командой:

    =# GRANT ALL PRIVILEGES ON DATABASE «database1» to dmosk;

    Теперь подключаемся к базе, к которой хотим дать доступ:

    * в примере подсоединимся к базе с названием database1.

    а) Так мы добавим все права на использование всех таблиц в базе database1 учетной записи dmosk:

    database1=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO «dmosk»;

    * в большинстве случаев, используется схема по умолчанию public. Но администратор может создать новую схему. Это нужно учитывать при назначении прав.

    б) Также можно дать доступ к базе для определенных таблиц:

    Читайте также:  Прога для диагностики windows

    database1=# GRANT ALL PRIVILEGES ON TABLE table1 IN SCHEMA public TO «dmosk»;

    * в данном примере мы даем права на таблицу table1.

    Выходим из SQL-оболочки:

    3. Настройка файла pg_hba.conf

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

    Для начала смотрим путь расположения данных для PostgreSQL:

    В ответ мы получим, что-то на подобие:

    * в данном примере /var/lib/pgsql/9.6/data/ — путь расположения конфигурационных файлов.

    Добавляем права на подключение нашему созданному пользователю:

    .
    # IPv4 local connections:
    host all dmosk 127.0.0.1/32 md5
    .

    * в данном примере мы разрешили подключаться пользователю dmosk ко всем базам на сервере (all) от узла 127.0.0.1 (localhost) с требованием пароля (md5).
    * необходимо, чтобы данная строка была выше строки, которая прописана по умолчанию
    host all all 127.0.0.1/32 ident.

    После перезапускаем службу:

    systemctl restart postgresql-9.6

    * в данном примере установлен postgresql версии 9.6, для разных версий на разных операционных системах команды для перезапуска сервиса могут быть разные.

    4. Проверка

    Для теста пробуем подключиться к Postgre с помощью созданного пользователя:

    psql -Udmosk template1 -h127.0.0.1

    Настройка прав доступа к базе с помощью групп

    Сначала создадим групповую роль:

    =# CREATE ROLE «myRole» NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

    * данной командой создана группа myRole с минимальными правами.

    Теперь добавим ранее созданного пользователя dmosk в эту группу:

    =# GRANT «myRole» TO dmosk;

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

    и предоставим все права для группы myRole всем таблицам базы database1

    database1=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO GROUP «myRole»;

    Редактирование пользователя

    1. Смена пароля

    Рассмотрим несколько примеров смены пароля пользователя.

    =# ALTER USER postgres PASSWORD ‘password’

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

    С запросов ввода пароля:

    * после ввода данной команды система потребует дважды ввести пароль для пользователя (в нашем примере, postgres).

    Из командной строки Linux:

    sudo -u postgres psql -U postgres -d postgres -c «ALTER USER postgres PASSWORD ‘password'»

    * по сути, мы выполняем также запрос в оболочке sql.

    Удаление пользователей и групп

    Удаление пользователя выполняется следующей командой:

    =# DROP USER dmosk;

    database1=# REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM «dmosk»;

    * обратите внимание, данный запрос отличается от предоставления прав двумя моментами: 1) вместо GRANT пишем REVOKE; 2) вместо TO «dmosk» пишем FROM «dmosk»;

    Назначение особых прав пользователям PostgreSQL

    Помимо ALL PRIVILEGES можно выдавать права на особые операции, например:

    =# GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA public TO «dmosk»;

    * команда позволит выдать права на получение данных, их обновление и добавление. Другие операции, например, удаление будут запрещены для пользователя dmosk.

    Назначение прав для определенной таблицы:

    database1=# GRANT ALL PRIVILEGES ON table_users TO «dmosk»;

    * в данном примере мы предоставим все права на таблицу table_users в базе данных database1;

    Учетная запись для резервного копирования

    Для выполнения резервного копирования лучше всего подключаться к базе с минимальными привилегиями.

    Сначала создаем роль, которую будем использовать для выполнения резервного копирования:

    =# CREATE USER bkpuser WITH PASSWORD ‘bkppasswd’;

    * мы создадим учетную запись bkpuser с паролем bkppasswd.

    Предоставляем права на подключения к базе

    =# GRANT CONNECT ON DATABASE database TO bkpuser;

    * в данном примере к базе database.

    Подключаемся к базе (в нашем примере database):

    Даем права на все последовательности в схеме:

    =# GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO bkpuser;

    * мы дали права для схемы public. Это схема является схемой по умолчанию, но в вашем случае она может быть другой. В таком случае, подставляем свое значение.

    Графический интерфейс

    Иногда проще воспользоваться программой для выставления прав и работы с PostgreSQL. Могу посоветовать приложение pgAdmin. Оно позволит в оконном режиме не только создать и удалить пользователей, но и полноценно работать с СУБД.

    Источник

    Оцените статью