pg_dump를 올바르게 인증하려면 어떻게해야합니까?
나는 호스트 변수를 사용하여 시도 PGPASSWORD
등을 .pgpass
하고 어느 쪽도이 두 가지의 나를 데이터베이스에 인증 할 수 없습니다. 나는이 chmod
'D를 .pgpass
적절한 권한도 시도했다 :
export PGPASSWORD=mypass and PGPASSWORD=mypass
암호에는가 포함되어 \
있지만 작은 따옴표로 묶었 PGPASS='mypass\'
고 여전히 인증되지 않습니다.
나는 뛰고있어:
pg_dump dbname -U username -Fc
그리고 나는 여전히 받는다
pg_dump: [archiver (db)] connection to database "dbname" failed: FATAL: Peer authentication failed for user "username"
빠른 솔루션
문제는 peer
현재 사용자 이름을 기반으로 로컬 인증 을 수행하려고한다는 것 입니다. 암호를 사용하려면로 호스트 이름을 지정해야합니다 -h
.
pg_dump dbname -U username -h localhost -F c
설명
이것은 귀하의 pg_hba.conf
local all all peer
host all all 127.0.0.1/32 md5
이렇게하면 Postgres가 peer
현재 시스템 사용자 이름과 일치하도록 postgres 사용자 이름이 필요한 로컬 사용자에 대한 인증 을 사용하도록 지시 합니다. 두 번째 줄은 호스트 이름을 사용하는 연결을 나타내며 md5
방법을 통해 암호로 인증 할 수 있습니다 .
내가 선호하는 개발 구성
참고 : 단일 사용자 워크 스테이션에서만 사용해야합니다. 이로 인해 프로덕션 또는 다중 사용자 시스템에서 주요 보안 취약점이 발생할 수 있습니다.
로컬 postgres 인스턴스에 대해 개발할 때 로컬 인증 방법을 trust
. 이렇게하면 암호가없는 모든 사용자로 로컬 유닉스 소켓을 통해 postgres에 연결할 수 있습니다. peer
위에서 간단히 trust
postgres로 변경 하고 다시로드하면됩니다.
# Don't require a password for local connections
local all all trust
참고 URL : https://stackoverflow.com/questions/10430645/how-can-i-get-pg-dump-to-authenticate-properly
'developer tip' 카테고리의 다른 글
Process.Start C #에서 콘솔 창 숨기기 (0) | 2020.09.05 |
---|---|
jQuery 위치 href (0) | 2020.09.05 |
코드에서 Java Swing 애플리케이션을 닫는 방법 (0) | 2020.09.05 |
Regex 마지막 발생? (0) | 2020.09.05 |
React에서 Esc Key Press를 감지하는 방법 및 처리 방법 (0) | 2020.09.05 |