2013-06-27 2 views
1

마음대로 만들고 파괴 할 수있는 장난감 데이터베이스를 설정하려고합니다. 중요한 것을 파괴 할 경우를 대비하여 postgres 사용자를 사용하고 싶지 않습니다. 이것은 나에게 아무 의미psql : FATAL : "Stephen"역할이 존재하지 않습니다.

$ psql -h localhost 
psql: FATAL: role "Stephen" does not exist 
$ psql -h localhost -U Stephen 
psql: FATAL: role "Stephen" does not exist 

: 나는 시도하고 연결할 때

$ psql -h localhost -U postgres 
postgres=# \du 
         List of roles 
Role name |   Attributes    | Member of 
-----------+-----------------------------------+----------- 
postgres | Superuser, Create role, Create DB | {} 

postgres=# create user Stephen createdb; 
CREATE ROLE 
postgres=# \du 
        List of roles 
Role name |   Attributes    | Member of 
-----------+-----------------------------------+-----------  
postgres | Superuser, Create role, Create DB | {} 
stephen | Create DB       | {} 

postgres=# ^D\q 

그런 다음, 나는 다음과 같은 오류가 발생합니다 : 나는 다음과 같은했다. 나는 스티븐, 사용자를 볼 수 있지만 그것을 사용하게하지 않을 것이다. 내가 뭘 놓치고 있니?

OS X Lion에서 psql 9.0.10을 사용하고 있습니다.

+0

[해당 문제에 대한 훌륭한 설명서를 참조하십시오.] (http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS) –

답변

2

당신은 그것을 작성하려고 했 대소 문자를 구분 :

역할 이름으로
$ psql -h localhost -U stephen 

작은 s로 시작?

+0

흠 , 그것은 사실 인 것처럼 보인다. 내가 왜 큰'S'를 명시 적으로 사용할 때 작은's''로 그것을 만드는 것이죠? –

+1

"사용자 생성"Stephen "createdb;"(흥미롭게도 큰 따옴표 사용) 그러면 적절한 대소 문자를 가진 사용자가 생성됩니다. 나는 너의 대답을 받아 들인다. –

+0

죄송합니다. 두 번째 질문이 너무 늦게 나타났습니다. 답을 찾니 다행이었습니다. – Francodi

1

로그인은 대소 문자를 구분합니다. "Stephen"은 "stephen"과 다릅니다.

관련 문제