우분투 9.10에 postgres 8.4를 설치했으며 수퍼 유저를 만들지 않았습니다. 기본 슈퍼 유저와 비밀번호가 있습니까? 그렇지 않은 경우 어떻게 새로 만들 수 있습니까?
답변
주의 “$ 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 비밀번호와 동기화하고 로컬 로그인 만 허용 할 수 있습니다. 그것은이 질문의 범위를 벗어납니다.
답변
명령 행에 입력하십시오.
$ 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;
답변
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
데이터베이스 이름은 어디에 있습니까 ?