Re: createdb, problema de permisos?
El jue, 23-09-2004 a las 01:15, Victor Sanchez2 escribió:
> El jue, 23-09-2004 a las 00:45, sergio escribió:
> > El Miércoles, 22 de Septiembre de 2004 20:47, Victor Sanchez2 escribió:
> >
> >
> > Tal vez te falta hacer como usuario postgres un createuser y cuando te
> > pregunte decirle que puede crear bases de datos.
> >
> > Espero que te funcione.
> >
> > > Estoy intentando crear una base de datos con mi usuario 'vs2'. He estado
> > > viendo 1000 direcciones en internet y no he conseguido que ninguna me
> > > aclare como hacerlo bien y la única que he encontrado hacía algo similar
> > > a esto. Yo lo que estoy haciendo es:
> > >
> > >
> > > vs2@cris:~$ su
> > > Password:
> > > root@cris:/home/vs2# su postgres
> > > sh-3.00$ createdb mydb
> > > CREATE DATABASE
> > > sh-3.00$ exit
> > > exit
> > > root@cris:/home/vs2# adduser vs2 postgres
> > > El usuario `vs2' ya es un miembro de postgres.
> > > root@cris:/home/vs2# exit
> > > exit
> > > vs2@cris:~$ createdb mydb2
> > > createdb: no se pudo conectar a la base de datos template1:
> > > FATAL: no existe el usuario "vs2"
> > >
> > >
> > > A ver si alguien me puede echar una mano para poder crear una base de
> > > datos con 'vs2'.
> >
>
> Sí, me faltaba eso para poder crearlas con vs2. Ahora tengo:
>
> vs2@cris:~$ psql -l
> Listado de base de datos
> Nombre | Dueño | Codificación
> -----------+----------+--------------
> mydb | postgres | SQL_ASCII
> mydb2 | vs2 | SQL_ASCII
> p | postgres | SQL_ASCII
> template0 | postgres | SQL_ASCII
> template1 | postgres | SQL_ASCII
> (5 filas)
>
> al intentar entrar mediante tora o pgaccess siempre obtengo el error:
> "connection to database failed FATAL: la autentificación IDENT falló
> para el usuario vs2"
>
> Me intento conectar como:
> vs2
> "contraseña"
> puerto: 5432 (el que viene puesto por defecto)
> localhost
> database: mydb2
>
>
> He estado investigando y el problema puede venir del archivo
> pg_hba.conf.
> My archivo /etc/postgresql/pg_hba.conf es:
>
> # TYPE DATABASE USER IP-ADDRESS IP-MASK
> METHOD
> # Database administrative login by UNIX sockets
> local all postgres
> ident sameuser
> #
> # All other connections by UNIX sockets
> local all all
> ident sameuser
> #
> # All IPv4 connections from localhost
> host all all 127.0.0.1 255.255.255.255
> ident sameuser
> #
> # All IPv6 localhost connections
> host all all ::1
> ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ident sameuser
> host all all ::ffff:127.0.0.1/128
> ident sameuser
> #
> # reject all other connection attempts
> host all all 0.0.0.0 0.0.0.0
> reject
>
>
> Voy a seguir investigando a ver si encuentro algo.
>
>
Un pequeño comentario (no sé si aclaratorio). Debes tener claro que una
cosa es un usuario del sistema y otra un usuario de la base de datos.
Esto confunde un poco al principio porque cuando se instala Postgres en
Debian se incluye un usuario del sistema y otro de la base de datos, los
dos con el nombre postgres.
La línea:
local all postgres ident sameuser
permite conexiones locales de usuarios del sistema con el mismo nombre
que usuarios de la base de datos y es la forma habitual de trabajar con
psql.
Sin embargo, programas como tora o pgaccess, no incluyen la posibilidad
de autenticación mediante ident, por lo que es recomendable utilizar una
de las opciones de password (crypt, md5, etc.). En ese caso debes
modificar tu usuario vs2 en la base de datos y darle un password
(cifrado o no) y poner el método correspondiente de acceso en una línea
que comienze con host. Si es sólo para conexiones locales sería algo
como:
host all all 127.0.0.1 255.255.255.255 crypt
(Prueba las distintas opciones p.q. en esta máquina no tengo ahora
instalado Postgres y no estoy seguro de la opción exacta).
Espero no haberme enrollado más de la cuenta ;) ...
Reply to: