Devo estar faltando alguma coisa com relação à configuração do PostgreSQL. O que eu gostaria de fazer é criar vários bancos de dados e usuários isolados uns dos outros para que um usuário específico tenha acesso apenas aos bancos de dados que eu especificar. No entanto, pelo que posso determinar, qualquer usuário criado tem acesso a todos os bancos de dados sem que nenhuma concessão específica seja fornecida.
Aqui está o que eu faço em um Ubuntu Server 12.04:
- apt-get instala postgresql
- sudo -u postgres createuser -DRSP mike1 (Especificando a senha para o novo usuário)
- sudo -u postgres createdb data1
- psql -h localhost -U mike1 data1 (Especificando a senha para o usuário mike1 fazer login)
Parece que o novo usuário "mike1" não tem problemas para se conectar ao banco de dados "data1" e criar tabelas etc. E isso sem executar nenhum comando GRANT (e o proprietário de "data1" é "postgres" já que não especifiquei um proprietário na etapa 3). É realmente assim que deve funcionar?
O que eu gostaria de fazer é conceder ao mike1 acesso total ao data1 e, em seguida, repetir isso para mais usuários e bancos de dados, certificando-se de que os usuários tenham acesso apenas a um (ou possivelmente vários) bancos de dados de minha escolha.