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