2011-03-04 13 views
15

Estoy ejecutando PostgreSQL en mt Windows 7 máquina. Para ejecutar una base de datos de tipo I:¿Cómo agregar un usuario a PostgreSQL en Windows?

C:\psql -Upostgres mydb 

y esto funciona, pero sería bueno si pudiera dejar fuera de la materia -U, pero luego Postgres cree que estoy tratando de iniciar la sesión como 'Eric', ya que es mi perfil de usuario

Así que tengo que agregar un usuario a Postgres, obviamente. ¿Pero cómo? Si trato:

C:\createuser Eric 

Postgres piensa que estoy tratando de agregar un usuario Eric como el usuario Eric el que falla. Agregar el indicador -U no parece funcionar aquí.

¿Qué me estoy perdiendo? Mi ventana de comandos está en modo de administrador, y obviamente no hay sudo disponible.

+2

Mirando hacia atrás seis años más tarde, probablemente no intentar esto . Instalar Postgres en máquinas de desarrollo es una molestia, solo use la imagen estándar de Postgres/Docker: https://hub.docker.com/_/postgres/ –

Respuesta

30

En pgadmin puede crear un nuevo "Papel de sesión" y el nombre de Eric y darle permisos tiene gráficamente, o desde la línea de comandos que puede hacer algo como esto

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

ver http://developer.postgresql.org/pgdocs/postgres/sql-createrole.html para obtener información sobre el papel CREAR opciones.

+0

+1 Muchas gracias. Miré a todas partes, pero esta es la única respuesta clara, concisa y funcional que he encontrado ;-) –

+0

¿Hay alguna diferencia entre el rol de inicio de sesión y el usuario común como postgres? – Cody

2

El documentation for createuser indica que un interruptor -U se acepta:

-U username
--username username

nombre de usuario para conectarse como (no el nombre de usuario para crear).

Esto es lo que esperaría de usar (aunque nunca he tratado de configurar PostgreSQL en Windows, sólo en sistemas Unix).

1

Solo para añadir más información. De official documentation: puede especificar el usuario con el que createuser registros de utilidad para postgres a través de la variable de entorno:

PGUSER 

Un revestimiento para PowerShell:

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