Efectivamente, creo que es así.  ¿Y?


Creo que voy solucionándolo, aunque no del todo.

Primero quito los permisos a "public" para cada base de datos.

REVOKE ALL ON DATABASE db1 from public;

Creo el nuevo usuario:

CREATE USER usuario nosuperuser nocreatedb password 'XXXXX';

Le doy permisos sobre una db:

GRANT ALL ON DATABASE db1 to usuario;

Pruebo y efectivamente sólo puede conectar con esa db:

~$psql db2 -h localhost -U usuario
Contraseña para usuario usuario:
psql: FATAL:  permiso denegado a la base de datos <<db2>>
DETALLE:  Usuario no tiene privilegios de conexi?n.
~$ psql db1 -h localhost -U usuario
Contraseña para usuario usuario:
psql (8.4.3)
conexión SSL (cifrado: DHE-RSA-AES256-SHA, bits: 256)
Digite «help» para obtener ayuda.

La cuestión ahora es que no puedo hacer nada sobre las tablas.

db1=> SELECT * from clientes ;
ERROR:  permiso denegado a la relación clientes

Pensaba que con "GRANT ALL ON DATABASE DB1 TO USUARIO" ya le daba al usuario "todos" los permisos sobre dicha db.

Gracias por los comentarios, Alvaro.
--
Saludos cordiales.
Pablo.
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a