Я думаю, что я не могу заблокировать мою учетную запись 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: сбой аутентификации по паролю".

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

1 ответ

Решение

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

Если ваш метод аутентификации 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 и соединитесь с опцией hostname, используя psql -U postgres -h localhost postgres,

Другие вопросы по тегам