Postgres 9.5에서 모든 권한을 가진 사용자에 대한 피어 인증에 실패했습니다.

Postgres 9.5에서 모든 권한을 가진 사용자에 대한 피어 인증에 실패했습니다.

특정 데이터베이스에만 접근할 수 있는 사용자를 생성하고 싶습니다. 그러나 모든 권한이 있어야 합니다. Ubuntu 14.04에서 Postgresql 9.5를 사용합니다. 먼저 새 사용자를 만듭니다.

$createuser --interactive joe
  Shall the new role be a superuser? (y/n) n
  Shall the new role be allowed to create databases? (y/n) n
  Shall the new role be allowed to create more new roles? (y/n) n

다음으로 소유자 joe를 사용하여 새 데이터베이스를 만듭니다.

 $sudo -u postgres psql 
 $CREATE DATABASE myDB OWNER joe;
 $GRANT ALL ON DATABASE myDB TO joe;

그런 다음 사용자 joe와 연결하여 내 데이터베이스 myDB에 연결하려고 합니다.

$psql myDB -U joe
psql: FATAL:  Peer authentication failed for user "joe" 

다음에는 무엇을 해야 하나요?

답변1

  1. /etc/postgresql/9.5/main/pg_hba.conf루트 액세스로 열기

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. 이 줄에서 peer로 변경하세요 .md5

    변경하기 전

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            peer
    # IPv6 local connections:
    host    all             all             ::1/128                 peer
    

    변경 후

    # "local" is for Unix domain socket connections only
    local   all             all                                     md5
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
    
  3. Ctrl-를 눌러 파일을 저장합니다 O. Ctrl-를 사용하여 nano를 종료합니다 .X

  4. 다음을 사용하여 postgresql을 다시 시작하십시오.

    sudo service postgresql restart
    

관련 정보