2012-08-08 2 views
1

저는 PostgreSQL의 초보자입니다.새 역할을 만드시겠습니까?

나는 내가 잘못 뭐하는 거지

localhost.localdomain:[/home/postgres]createuser -d -i -l -P -r -s pgdba 
new role's password : pgdba 
retype password : pgdba 
password : postgres 

localhost.localdomain:[/home/postgres]psql 
Password: postgres 
psql (9.0.1) 
Type "help" for help. 
postgres=# select * from pg_shadow; 
usename | usesysid | usecreatedb | usesuper | usecatupd |    passwd    | valuntil | useconfig 
----------+----------+-------------+----------+-----------+-------------------------------------+----------+----------- 
postgres |  10 | t   | t  | t   | md53175bce1d3201d16594cebf9d7eb3f9d |   | 
pgdba | 16385 | t   | t  | t   | md53cd688326933adcdedd77097c95d131d |   | 
(2 rows) 

postgres=# \q 

localhost.localdomain:[/home/postgres]psql -U pgdba 
Password for user pgdba: pgdba 
FATAL: database "pgdba" does not exist 

psql: FATAL: database "pgdba" does not exist 

... 다음과 같은 pgdba라는 새 역할을 만들려고 해요?

답변

3

메시지가 어떻게 보이는지 데이터베이스 pgdba가 존재하지 않습니까? 존재하지 않습니다 -. 당신이 pgdba 이름, DB에 연결하려고에 연결할 수있는 데이터베이스를 지정하지 않기 때문에 기본적으로

, PostgreSQL의 현재 사용자의 이름을 딴 데이터베이스에 연결합니다 (the psql docs를 참조하십시오.

보십시오.

psql -U pgdba postgres 

역할 pgdba를 사용하여 postgres 데이터베이스에 연결하는

이 또한 pg_hba.conf을 검토해야 할 수 있습니다

(012 참조 인증 규칙을 조정하려면을 입력하십시오.

현재, 알려진 버그가있는 구식 PostgreSQL 버전을 사용하고 있습니다. 9.0 시리즈의 최신 패치 릴리스 인 9.0.8로 업데이트하십시오. 데이터베이스를 덤프하고 다시로드 할 필요가 없으며 pg_upgrade을 사용하면 간단하게 대체 할 수 있습니다. 누락 된 수정 프로그램은 release notes을 참조하십시오.

또한보다는 SELECTpg_shadow에서 보내고, psql의의 사용자 정보를 사용하는 것이 훨씬 더 포맷 및 통합 정보 생산 \du\dg을, 기능 고려한다.

관련 문제