2011-03-24 35 views
47

Utilizo el comando postgresql 'createuser myusername'. Me pide una contraseña siempre. Si dejo la contraseña en blanco, aparece el error de que no se especifica ninguna contraseña.establecer una contraseña en blanco para el usuario de PostgreSQL

Simplemente quiero crear un usuario con la contraseña en blanco/sin contraseña y no puedo hacerlo con Postgresql 9 en mac os x.

¿Qué pasos debo seguir para crear un usuario sin contraseña? El comando siempre me pide que ingrese una contraseña.

Respuesta

52

Estás ladrando al árbol equivocado tratando de arreglar esto con createuser. Si le interesa consultar la página man para createuser, le indicará que el inicio de sesión fallará si realmente necesita una contraseña y configura --no-password. createuser realmente solo crea un usuario. Hace no decide cómo el usuario tendrá que autenticarse.

La autenticación se maneja principalmente en pg_hba.conf, que decide si se requieren contraseñas al iniciar sesión o no. Nunca he encontrado PostgreSQL en OS X. En Linux, de mi distro de conf se ve así:

# TYPE DATABASE  USER   CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all    all          ident 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

Me asegurarse de que tiene algo así como la primera línea de acceso para el desarrollo. Nota: psql intentará conectarse con un socket de Unix si no hay una opción --host establecida. La segunda línea se usaría si intentas conectarte con psql --host localhost

+1

¿dónde está la ubicación del archivo pg_hba.conf en un mac os x o un linux box? – othman

+2

Para Ubuntu, puede encontrarlo en '/ etc/postgresql/9.0/main/pg_hba.conf' (para PostgreSQL 9.0). – jmonteiro

+4

Para OS X 10.6.8, puede encontrarlo en '/ Library/PostgreSQL/8.3/data/pg_hba.conf'. Tenga en cuenta que es propiedad del usuario 'postgres', por lo que necesitará' su postgres' para editarlo. – Chris

28

En lugar de crear un usuario sin contraseña, cree un .pgpass file con la contraseña para que se suministre automáticamente. Esto será respetado por todas las aplicaciones que usan libpq para conectarse, que es prácticamente todas, excepto el controlador JDBC y el controlador .NET.

+1

+1 pgpass es la forma de hacerlo. –

5

La forma adicional (lo prefiero) de cambiar la contraseña del usuario PG es iniciar sesión en la consola postgres (como usuario postgres en una PC local), y solicitud SQL del problema:

$ sudo -u postgres psql -w 

# ALTER USER postgres WITH PASSWORD ''; 
+0

tenga en cuenta, esto puede deshabilitar la cuenta si el servidor requiere contraseñas! – 0atman

+1

no funciona para mí. Error: psql: fe_sendauth: no se proporcionó ninguna contraseña – Romulus

+0

@Romulus ¿ha configurado una contraseña anterior para el usuario del sistema 'postgres'? También debe intentar con '-w', es decir' psql -w' –

Cuestiones relacionadas