Назад | Перейти на главную страницу

Я думаю, что не могу повторно заблокировать свою учетную запись postgres psql

Когда я настраивал postgresql в Linux, я следовал руководству, которое, как мне кажется, заставило меня изменить пароль учетной записи postgres, и я не знал ничего лучшего. Пожалуйста, простите мое незнание.

Когда я набираю «psql postgres», он запрашивает пароль, и работает только один пароль. Я пробовал следовать предыдущим ответам, реализовав «sudo passwd --lock postgres» и «sudo -u postgres psql postgres» с «\ password postgres» и установив новый пароль (который не работает).

Я боюсь редактировать / etc / passwd и ставить * вместо пароля, потому что у этого комментария очень мало голосов, и я не знаю, что он на самом деле будет делать.

Все, что я пробую (даже изменение md5 на доверие к pg_hba.conf), после того, как я ввожу «sudo /etc/init.d/postgresql restart», psql postgres ВСЕ ЕЩЕ ТРЕБУЕТСЯ пароль и принимает только один действующий пароль. Все остальное возвращает «psql: FATAL: аутентификация пароля не удалась».

Что я могу сделать?

Метод аутентификации «одноранговый»

Если ваш метод аутентификации peer лайк

local   all             postgres                                peer

и / или

local   all             all                                     peer

в pg_hba.conf, затем подключитесь как пользователь Linux postgres в базу данных.

sudo -u postgres psql

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

Примечание: psql -U postgres postgres запустить как другой пользователь Linux как postgres не работает в этом случае и не работает с psql: FATAL: Peer authentication failed for user "postgres".

Метод аутентификации "md5"

Если ваш метод аутентификации md5, то для подключения вам потребуется правильный пароль.

Сброс пароля

  1. Прокомментируйте все существующие строки, начинающиеся с "local" в pg_hba.conf и добавить строку

    local    all             postgres                               trust
    
  2. Перезапустите postgres

    service postgresql restart
    
  3. Подключиться к базе данных

    # as any linux user
    psql -U postgres
    # or as user postgres
    sudo -u postgres psql
    
  4. Сменить пароль

    ALTER USER postgres WITH PASSWORD 'password';
    
  5. Выход

    \q
    
  6. Восстановите свои изменения в pg_hba.conf, по умолчанию для postgresql 9.6 в Debian 9.8.0 это

    # Database administrative login by Unix domain socket
    local   all             postgres                                peer
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #host    replication     postgres        127.0.0.1/32            md5
    #host    replication     postgres        ::1/128                 md5
    
  7. Перезапустите postgres

    service postgresql restart
    

Заметка 2: Если вы хотите изменить пароль для host запись, затем сделайте то же самое, что и выше, используя метод trust и подключитесь с опцией имени хоста, используя psql -U postgres -h localhost postgres.