32

I'm running PostgreSQL on mt Windows 7 machine. To run a database I type:

C:\psql -Upostgres mydb

and this works, but it would be nice if I could leave off the -U stuff, but then Postgres thinks I'm trying to log in as 'Eric', since that is my user profile.

So I need to add a user to Postgres, obviously. But how? If I try:

C:\createuser Eric

Postgres thinks I'm trying to add a user Eric as the user Eric which fails. Adding the -U flag doesn't seem to work here.

What am I missing? My command window is in administrator mode, and there is no sudo available, obviously.

Eric Wilson
  • 57,719
  • 77
  • 200
  • 270
  • 4
    Looking back six years later, I would probably not attempt this. Installing Postgres on dev machines is a pain, just use the standard Postgres/Docker image: https://hub.docker.com/_/postgres/ – Eric Wilson Apr 04 '17 at 12:15

5 Answers5

55

In pgadmin you can create a new "Login Role" and name it Eric and give it permissions graphically, or from command line you can do something like this

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

see http://developer.postgresql.org/pgdocs/postgres/sql-createrole.html for information on the CREATE ROLE options.

digitaljoel
  • 26,265
  • 15
  • 89
  • 115
4

Just to add more information. From official documentation: you can specify the user under which createuser utility logs in to postgres via environment variable:

PGUSER

One liner for powershell:

& { $env:PGUSER="postgres"; .\createuser.exe Eric}
Rayz
  • 523
  • 1
  • 4
  • 19
2

The documentation for createuser indicates that a -U switch is accepted:

-U username
--username username

User name to connect as (not the user name to create).

This is what I would expect to use (although I've never tried to set up PostgreSQL on Windows, only on unices).

Greg Hewgill
  • 951,095
  • 183
  • 1,149
  • 1,285
1

This worked for me --username Shweta;

Now to create a database create database db;

barbsan
  • 3,418
  • 11
  • 21
  • 28
valkyrie55
  • 355
  • 4
  • 10
0

The simplest case is to use the Windows command line and as I understand that the user posgres is present:

psql -U postgres -c "CREATE ROLE shpp;"

psql -U postgres -c "ALTER ROLE  shpp WITH LOGIN;"

psql -U postgres -c "ALTER USER  shpp CREATEDB;"

psql -U postgres -c "ALTER USER  shpp WITH PASSWORD 'shpp';"

In my shpp example, this is the name and password of the new user.

James Risner
  • 5,451
  • 11
  • 25
  • 47
Sekator
  • 1
  • 1