Debo estar perdiendo algo con respecto a la configuración de PostgreSQL. Lo que me gustaría hacer es crear múltiples bases de datos y usuarios que estén aislados unos de otros para que un usuario específico solo tenga acceso a las bases de datos que especifique. Sin embargo, por lo que puedo determinar, cualquier usuario creado tiene acceso a todas las bases de datos sin que se otorguen subvenciones específicas.
Esto es lo que hago en un Ubuntu Server 12.04:
- apt-get install postgresql
- sudo -u postgres createuser -DRSP mike1 (Especificando la contraseña para el nuevo usuario)
- sudo -u postgres createdb data1
- psql -h localhost -U mike1 data1 (Especificando la contraseña para que el usuario mike1 inicie sesión)
Parece que el nuevo usuario "mike1" no tiene problemas para conectarse a la base de datos "data1" y crear tablas, etc. Y esto sin ejecutar ningún comando GRANT (y el propietario de "data1" es "postgres" ya que no especifiqué un propietario en el paso 3). ¿Es así como se supone que funciona?
Lo que me gustaría hacer es otorgar a mike1 acceso completo a los datos1 y luego repetir esto para más usuarios y bases de datos, asegurándome de que los usuarios solo tengan acceso a una (o posiblemente a varias) bases de datos de mi elección.