Eric Wilson
Eric Wilson

Reputation: 59335

How to add a user to PostgreSQL in Windows?

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.

Upvotes: 34

Views: 86042

Answers (5)

digitaljoel
digitaljoel

Reputation: 26574

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 https://www.postgresql.org/docs/current/sql-createrole.html for information on the CREATE ROLE options.

Upvotes: 58

Sekator
Sekator

Reputation: 11

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.

Upvotes: 1

valkyrie55
valkyrie55

Reputation: 505

This worked for me --username Shweta;

Now to create a database create database db;

Upvotes: 1

Rayz
Rayz

Reputation: 533

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}

Upvotes: 5

Greg Hewgill
Greg Hewgill

Reputation: 992707

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).

Upvotes: 2

Related Questions