특정 데이터베이스에만 접근할 수 있는 사용자를 생성하고 싶습니다. 그러나 모든 권한이 있어야 합니다. 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
/etc/postgresql/9.5/main/pg_hba.conf
루트 액세스로 열기sudo nano /etc/postgresql/9.5/main/pg_hba.conf
이 줄에서
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
Ctrl-를 눌러 파일을 저장합니다 O. Ctrl-를 사용하여 nano를 종료합니다 .X
다음을 사용하여 postgresql을 다시 시작하십시오.
sudo service postgresql restart