답변:
주의 "$ sudo passwd postgres"를 통해 "postgres"에 대한 UNIX 암호를 변경하는 것에 대한 대답은 바람직하지 않으며 위험 할 수도 있습니다 .
그 이유는 다음과 같습니다. 기본적으로 "postgres"UNIX 계정이 잠겨 있으므로 비밀번호를 사용하여 로그인 할 수 없습니다. "sudo passwd postgres"를 사용하면 계정이 즉시 잠금 해제됩니다. 더군다나, "postgres"와 같이 암호를 약한 것으로 설정하면 큰 보안 위험에 노출됩니다. 예를 들어, UNIX 시스템에 로그인하기 위해 사용자 이름 / 암호 콤보 "postgres / postgres"를 시도하는 많은 봇이 있습니다.
Chris James 의 답변을 따르는 것이 좋습니다 .
sudo -u postgres psql postgres
# \password postgres
Enter new password:
조금 설명하겠습니다. PostgreSQL 서버에 로그인하는 방법에는 일반적으로 두 가지가 있습니다.
"psql"명령을 UNIX 사용자 (소위 IDENT / PEER 인증)로 실행하면 다음과 같습니다 sudo -u postgres psql
.. 참고 sudo -u
UNIX 사용자의 잠금을 해제하지 않습니다.
PostgreSQL을 자신의 관리 사용자 이름 / 암호 (소위 TCP 인증)를 사용하여 TCP / IP 연결 (즉,에 의해 NOT 유닉스 암호).
따라서 UNIX 계정 "postgres"의 비밀번호를 설정 하지 않으려 고합니다. 기본적으로 그대로 둡니다.
물론 기본 설정과 다르게 구성하면 상황이 바뀔 수 있습니다. 예를 들어 PostgreSQL 비밀번호를 UNIX 비밀번호와 동기화하고 로컬 로그인 만 허용 할 수 있습니다. 그것은이 질문의 범위를 벗어납니다.
/etc/shadow
비밀번호는 @lzap으로 유지됩니다.
명령 행에 입력하십시오.
$ sudo -u postgres psql postgres
postgres=# \password postgres
당신은 볼 수:
Enter new password:
Enter it again:
다음 postgres
과 같이 user를 통해 postgres를 조작합니다 .
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
su
비밀번호를 입력하지 않고 postgres 사용자에게 루트 권한이 있어야 합니다. 대부분의 시스템에서 Postgres Unix 계정은 잠겨 있습니다 (암호는 작동하지 않습니다). 이는 해당 계정에 root 만 가능su
합니다.
sudo
대신에 사용하십시오 su
.
sudo su - postgres
. \
sudo -u postgres
.
Windows에서 다음을 수행하십시오 (중요 : Windows 관리자 계정 사용).
설치 후을 엽니 다 <PostgreSQL PATH>\data\pg_hba.conf
.
이 두 줄을 수정하고 "md5"를 "trust"로 변경하십시오.
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
PostgreSQL 서비스를 다시 시작하십시오 (필요하지 않을 수도 있음).
(선택 사항) 명령 프롬프트를 열고 코드 페이지를 1252로 변경하십시오.
cmd.exe /c chcp 1252
PostgreSQL에 로그인하십시오. 암호가 필요하지 않습니다 (대문자 -U 매개 변수에 유의하십시오).
psql -U postgres
(선택 사항, 보안상의 이유로 권장 됨) postgres
사용자 비밀번호를 변경하십시오 .
\password postgres
에서 "trust"를 "md5"로 다시 변경하십시오 pg_hba.conf
.
PostgreSQL 셸에 액세스하려는 경우 다음을 입력 할 수 있습니다.
psql -U postgres my_database
my_database
데이터베이스 이름은 어디에 있습니까 ?