[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: