치명적: 사용자 "postgres"에 대한 암호 인증 실패(pgAdmin 4에서 postgresql 11 이후)
최근에 Postgresql 11을 설치했는데, 설치하는 동안 Postgres의 비밀번호와 사용자 이름을 입력할 단계가 없습니다.이제 pgAdmin 4에서는 데이터베이스를 서버에 연결하고 싶더니 암호를 입력하라는 메시지가 뜨는데, 처음부터 입력하지 않았습니다.
무슨 일인지 아는 사람?
Postgre의 기본 인증 모드SQL이 ident로 설정되었습니다.
conf 파일을 통해 pgpass. 수 .pgAdmin -> Files -> open pgpass.conf
그것이 당신에게 길을 줄 것입니다.pgpass.conf
창 아래쪽(공식 문서)에 표시됩니다.
위치를 알고 나면 이 파일을 열고 원하는 대로 편집할 수 있습니다.
그렇지 않으면 다음을 수행할 수 있습니다.
색검 찾기
pg_hba.conf
보통 아래에 위치합니다.C:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
필요한 경우 수정할 수 있도록 해당 사용 권한을 설정합니다.속성 대화 상자의 보안 탭을 사용하여 관리자 재정의를 사용하여 권한을 부여할 때까지 사용자 계정이 이를 수행하지 못할 수 있습니다.
는또찾을 .
notepad
또는notepad++
시작 메뉴에서 마우스 오른쪽 단추를 클릭하고 "관리자 권한으로 실행"을 선택한 다음File->Open
펼치기 위해pg_hba.conf
그와 같이.이 값을 편집하여 호스트 "127.0.0.1/32"의 사용자 "postgres"에 대한 "host" 행을 "trust"로 설정합니다.할 수 , 줄을 삽입하면 . 삽입하기만 하면 됩니다.
host all postgres 127.0.0.1/32 trust
다른떤어도행먼저다하는 줄은 .(#으로 시작하는 줄은 주석을 무시할 수 있습니다.)Postgre 를 시작합니다(SQL 서비스).
start->run->services.msc
)을 사용하여
psql
또는 설정할 수 .려달을 합니다.
ALTER USER postgres PASSWORD 'fooBarEatsBarFoodBareFoot'
pg_hba.conf에 추가한 줄을 제거하거나 다시 변경합니다.
Postgre 다시 시작SQL을 다시 실행하여 변경 사항을 적용합니다.
다음은 예입니다.pg_hba.conf
파일(METHOD가 이미 신뢰로 설정됨):
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
참고: 방법을 다시 다음으로 변경해야 합니다.md5
또는 암호를 변경한 후 여기에 나열된 다른 인증 암호입니다(위에서 설명한 대로).
사용 ALTER USER postgres WITH PASSWORD 'new_password';
Windows 버전 9.2 버전의 Windows x64 설치를 위한 pgAdmin 때문에 이러한 불쾌한 버그를 경험했습니다.그것은 제 생산을 마비시켰습니다.
C:\Program Files\Postgre 폴더SQL\9.2\data 또는 C:\Program Files(x86)\PostgreSQL\9.x\data.pg_hba.conf 텍스트 파일을 찾을 수 있습니다.
다음 행을 찾습니다.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
방법 md5를 다음과 같이 "신뢰"로 변경합니다.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Windows >services.msc 유형을 실행하고 올바른 Postgre를 찾습니다.SQL 인스턴스를 다시 시작합니다.
이제 DB 보안이 완전히 개방되었습니다!사용자 암호 만료 시간을 모든 관련 사용자에 대해 2099년으로 변경한 후 md5로 되돌리라는 경고에 유의하십시오.
참고: CREATE USER는 LOGIN을 의미한다는 점을 제외하고 CREATE ROLE과 동일합니다.
$ psql postgres
postgres=# create user postgres with superuser password 'postgres';
마스터 암호를 성공적으로 변경한 후
마스터 암호 재설정 단계를 수행한 후에도 동일한 오류가 발생하면 명령 프롬프트를 열고 실행합니다.
psql -U postgres
암호를 묻는 메시지가 표시되고, 이제 병렬로 오픈 SQL 셸(psql)을 설정한 새 암호를 입력한 후 새 암호로 다시 시도합니다.
위에 언급된 모든 해결책을 시도해 보았습니다. 북부 지역이 효과가 있었다고 믿으세요!다음 명령을 사용하여 문제를 해결했습니다.
psql -U 기본값
\비밀번호
새 암호 입력:
다시 입력:
내 사용자 이름은: 기본값입니다.
이것은 저에게 완벽하게 효과가 있었습니다.
Linux 사용자의 경우 사용해 보십시오.
//CHECK POSTGRES IS WORKING OR NOT
sudo systemctl status postgresql
//THIS WILL ACCEPT PORTS
sudo pg_isready
sudo su postgres
//NAVIGATE TO SQL TERMINAL / BASH
psql
//CREATE A NEW USER WITH PASSWORD
CREATE USER shayon WITH PASSWORD 'shayon';
사해보다를 써 psql -U postgres
설치하는 동안 암호를 입력했다면 이 명령을 사용해야 합니다.:)
1: 옵션 1: 사는경우를 trust
게시물만 다음으로 변경하는 것이 좋습니다.trust
user의 다른 pg_super.conf를 합니다. postgres super user의 권한으로 postgres super user를 변경합니다.peer
md5
.
단계:pg_hba.conf에서 다음을 변경합니다.
local postgres
trust
- 않는 것
local all
trust
, - 대신에 변화
local all
peer
md5
즉, 올바른 암호로 로그인할 수 있습니다.
'오류 가져오기: pgsql을 레일과 함께 작업하려고 할 때 사용자 "postgres"에 대한 피어 인증 실패'의 두 번째 답변에서 이 솔루션을 자세히 참조하십시오.
2: 2: 사용md5
,아니요.trust
needed (는 (권장)입니다.
이 방법은 pg_hba.conf를 한 번만 변경해야 하므로 훨씬 더 쉽습니다.
- 에서 로컬 사용자
peer
md5
보통:
local postgres
peer
md5
local all
peer
md5
Linux pw만의 기능으로 postgres pw를 추가합니다.
sudo su postgres psql (or psql -p <port> if you have more than one PostgreSQL) \password \q
수락된 답변과 "레일을 사용하여 pgsql 작업을 시도할 때 오류: 사용자 "postgres"에 대한 피어 인증 실패" 설명을 참조하십시오.
로컬 postgres의 "pg_hba.conf" 파일에서 피어를 신뢰로 변경하여 이 문제를 해결한 다음 다음 명령을 사용하여 postgres 서비스를 다시 시작했습니다.
sudo service postgresql restart
바로 그겁니다.
제가 말씀드리는 이 특정한 상황은 아마 자주 발생하지 않을 것입니다. 하지만 저도 이 오류를 겪고 있었습니다.조사한 결과, 포트 5433에서 수신 중인 로컬 포스트그레스 인스턴스가 있었고, 로컬 포트 5433에 매핑된 원격 PG 인스턴스에도 쿠버네티스 터널을 설정하려고 했기 때문입니다.실행 중인 명령이 원격 인스턴스가 아닌 로컬 인스턴스에 연결하려고 시도한 것으로 나타났습니다.인스턴스를 했을 때 할 수 , 을 통해 원격 인스턴스에 연결할 수 .psql
내가 사용하던 명령어.
처음으로 "슈퍼 사용자" 암호를 사용할 수 있습니다.
그런 다음 Object > Create > Login/Group Role을 사용하여 "postgres" 사용자의 암호를 변경할 수 있습니다.
저는 이 사건을 해결하기 위해 머리가 아팠습니다.친구의 도움으로 여기에 솔루션을 게시하기로 결정했습니다.
- 텍스트 편집기에서 pg_hba.conf를 엽니다(이 파일은 포스트그레스 설치 폴더 > 데이터에서 찾을 수 있습니다).
- 모든 메서드 필드를 신뢰할 수 있도록 변경합니다(postgre에 암호가 필요하지 않음).
- 콘솔에서 다음 명령을 실행합니다. "비밀번호 '[mypassword]'로 사용자 게시글 변경| psql -U postgres (파라미터 -U postgres로 사용자의 [내 비밀번호]에 대한 일부 사용자 비밀번호를 변경하는 것을 의미);
- Etvoila(당신에게 가장 적합해야 하는 방법에 대한 신뢰에서 방법을 다시 변경하는 것을 잊지 마십시오.
언젠가 이것이 누군가에게 도움이 되길 바랍니다.
이것이 오래된 질문이라는 것을 알지만, 저는 같은 문제를 가지고 있었습니다. 예를 들어 Postgresql 11을 설치하는 동안 Postgres의 비밀번호를 설정하기 위한 대화상자가 없었습니다.
다른 답변에 제시된 모든 파일 조작을 수행하는 대신 Postgresql 11을 삭제하고 Postgresql 12를 설치했는데, 설치하는 동안 암호를 설정하라는 메시지가 표시되었습니다.
- PgAdmin4에 로그인
에 가다
- Object > Create > 로그인/그룹 역할
- psql 터미널에서 이름이 지정된 "사용자 이름" 생성
- 암호 만들기
- 모든 권한을 부여합니다.
- 절약하다
- psql 터미널에서 즉시 암호를 시도합니다.
그것은 나에게 효과가 있었다.
이것이 당신에게 효과가 있기를 바랍니다.
이 오류를 해결했지만 아무도 도움이 되지 않은 사람들을 위해, 저는 여러분을 위해 StackOverflow fish를 가지고 있지 않을 수도 있지만, 저는 여러분에게 낚시하는 법을 알려드리겠습니다!
pg_hba.conf 파일의 행 순서가 올바르지 않을 수 있습니다.만약 당신이 이 Postgre를 읽는다면,아래 SQL 문서 링크에 "일치하는 항목을 찾을 수 없습니다"라는 메시지가 표시됩니다.하지만, 그것이 항상 사실인 것은 아닙니다!문서는 인간에 의해 작성되고 인간은 실수를 합니다.
https://www.postgresql.org/docs/current/client-authentication-problems.html
사실은 더 위쪽의 라인이 우선할 수 있으며, 자격이 있으며 Postgre에 저장된 암호를 사용하도록 강요하고 있습니다.위임된 인증 또는 다른 메서드가 아닌 SQL입니다.Postgre에 저장된 암호를 지정하지 않는 경우SQL을 사용하면 LOGIN 역할 특성이 필요하지 않습니다.이 목록의 맨 위에 특정 사용자, 인증 프로토콜, 네트워크 세부 정보 및 기타 기준을 표시합니다.또한, 대부분의 컴퓨터가 IPv4를 사용한다고 생각할 수도 있습니다.IPv6를 사용해 보면 놀랄 것입니다.문제의 특정 기준을 알고 맨 위에 줄을 놓으면 소스 코드 디버깅 없이 pg_hba.conf 문제를 해결할 수 있는 유일한 신뢰할 수 있는 방법이 확립됩니다!
또 다른 유용한 트릭은 pg_admin(Postgre용 SQL IDE)에 서버 항목을 대량으로 만드는 것입니다.테스트를 위해 모든 사용자 및 인증 프로토콜과 함께 SQL)을 사용할 수 있습니다.다른 시나리오를 테스트하면 어떤 시나리오가 실패하는지 즉시 알 수 있습니다.
또한 이 파일을 변경할 때마다 Postgre를 다시 시작합니다.SQL 서비스(사용자를 테스트하기 전).
천만에요, 제 친구.:)
pgAdmin4를 사용하는 경우 암호 업데이트 오류가 발생하면 다음 단계를 수행합니다.
"pg_hba.conf" 파일을 열고 "IPv4 로컬 연결"을 찾습니다.
"Method" 열 아래의 값을 참조하십시오. 설치 중에 선택했으므로 "md5"로 설정해야 합니다.
"md5" 값을 공백으로 만들고 파일을 저장합니다.pgAdmin4 응용 프로그램을 다시 시작합니다.
이제 다시 값을 "md5"로 설정하고 pgAdmin 응용 프로그램에 암호를 입력합니다.
당신은 그것을 성공적으로 할 수 있을 것입니다.
윈도우다운 11 - 포스트그레스 14
- openpgAdmin4 - 서버 클릭
- Windows 사용자 이름 규칙(예: MyUserName)을 마우스 오른쪽 단추로 클릭합니다.
- 정의 탭 - 암호를 입력하고 저장을 클릭합니다.
- 터미널 열기/재열기
- 실행:
psql "postgres:///"
"MyName database is not exist"(내 이름 데이터베이스가 존재하지 않습니다)가 표시되면 방문하십시오.
언급URL : https://stackoverflow.com/questions/55038942/fatal-password-authentication-failed-for-user-postgres-postgresql-11-with-pg
'programing' 카테고리의 다른 글
컬렉션이 있을 때 VBA에서 어레이를 사용하는 이유는 무엇입니까? (0) | 2023.05.06 |
---|---|
SQLAlchemy create_all()이 테이블을 생성하지 않습니다. (0) | 2023.05.06 |
WPF 사용자 제어 상위 항목 (0) | 2023.05.06 |
iOS 프로젝트를 빌드하지 못했습니다."xcodebuild" 명령을 실행했지만 오류 코드 65와 함께 종료되었습니다. (0) | 2023.05.06 |
딜러를 사용해야 하는 시기와 이유는 무엇입니까? (0) | 2023.05.06 |