Как добавить пользователя в PostgreSQL в Windows?

Я запускаю PostgreSQL на машине Windows 7. Для запуска базы данных я печатаю:

C:\psql -Upostgres mydb

и это работает, но было бы неплохо, если бы я мог оставить материал -U, но затем Postgres думает, что я пытаюсь войти в систему как "Eric", так как это мой профиль пользователя.

Итак, я должен добавить пользователя в Postgres, очевидно. Но как? Если я попробую:

C:\createuser Eric

Postgres думает, что я пытаюсь добавить пользователя Эрика как пользователя Эрика, который терпит неудачу. Добавление флага -U здесь не работает.

Что мне не хватает? Мое командное окно находится в режиме администратора, и, очевидно, нет sudo.

Ответы

Ответ 1

В pgadmin вы можете создать новую "роль входа" и назовите ее Eric и предоставить ей разрешения графически или из командной строки вы можете сделать что-то вроде этого

psql -U postgres -c "CREATE ROLE Eric LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE;" mydb

см. http://developer.postgresql.org/pgdocs/postgres/sql-createrole.html информацию о параметрах CREATE ROLE.

Ответ 2

Просто добавьте дополнительную информацию. Из официальная документация: вы можете указать пользователя, в соответствии с которым утилита createuser входит в postgres через переменную среды:

PGUSER

Один вкладыш для powershell:

& { $env:PGUSER="postgres"; .\createuser.exe Eric}

Ответ 3

Документация для createuser указывает, что переключатель -U принят:

-U username
--username username

Имя пользователя для подключения (не имя пользователя для создания).

Это то, что я ожидал бы использовать (хотя я никогда не пытался настроить PostgreSQL на Windows, только на устройствах).

Ответ 4

Это сработало для меня --username Shweta;

Теперь для создания базы данных create database db;