새로 설치 한 후 postgres의 기본 수퍼 유저 사용자 이름 / 암호는 무엇입니까? postgres 8.4를 설치했으며 수퍼 유저를 만들지

우분투 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 서버에 로그인하는 방법에는 일반적으로 두 가지가 있습니다.

  1. “psql”명령을 UNIX 사용자 (소위 IDENT / PEER 인증)로 실행하면 다음과 같습니다 sudo -u postgres psql.. 참고 sudo -uUNIX 사용자의 잠금을 해제하지 않습니다.

  2. 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 관리자 계정 사용).

  1. 설치 후을 엽니 다 <PostgreSQL PATH>\data\pg_hba.conf.

  2. 이 두 줄을 수정하고 “md5″를 “trust”로 변경하십시오.

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. PostgreSQL 서비스를 다시 시작하십시오 (필요하지 않을 수도 있음).

  4. (선택 사항) 명령 프롬프트를 열고 코드 페이지를 1252로 변경하십시오.

    cmd.exe /c chcp 1252

  5. PostgreSQL에 로그인하십시오. 암호가 필요하지 않습니다 (대문자 -U 매개 변수에 유의하십시오).

    psql -U postgres

  6. (선택 사항, 보안상의 이유로 권장 됨) postgres사용자 비밀번호를 변경하십시오 .

    \password postgres

    에서 “trust”를 “md5″로 다시 변경하십시오 pg_hba.conf.


답변

PostgreSQL 셸에 액세스하려는 경우 다음을 입력 할 수 있습니다.

psql -U postgres my_database

my_database데이터베이스 이름은 어디에 있습니까 ?


답변