2013-06-27 6 views
1

Я пытаюсь настроить базу данных игрушек, которую я могу создать и уничтожить по своему усмотрению. Я не хочу использовать пользователя postgres в случае, если я уничтожу что-то важное. Я сделал следующее:psql: FATAL: роли «Stephen» не существует

$ 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 

Затем, когда я пытаюсь подключиться, я получаю следующее сообщение об ошибке:

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

Это не имеет никакого смысла для меня. Я вижу пользователя, Stephen, но он не позволит мне использовать его. Что мне не хватает?

Я использую psql 9.0.10 на OS X Lion.

+0

[Возможно, вы захотите ознакомиться с отличным руководством по этому вопросу.] (Http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS) –

ответ

2

Пытались ли вы писать чувствительны к регистру:

$ psql -h localhost -U stephen 

Как ваше имя роли начинается с небольшой s?

+0

Хммм , похоже, что это так. Почему он создает его с небольшими '' ', когда я явно использую большой' S'? –

+1

Если я создаю пользователя «Stephen» createdb; '(интересно, с двойными кавычками), то он создает пользователя с правильным случаем. Я принимаю ваш ответ. –

+0

Извините, что ваш второй вопрос слишком поздно, рад, что вы нашли ответ :) – Francodi

1

Логины чувствительны к регистру - «Стивен» отличается от «степеней».