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 um do outro, para que um usuário específico tenha acesso apenas aos bancos de dados especificados. No entanto, pelo que posso determinar, qualquer usuário criado tem acesso a todos os bancos de dados sem conceder nenhuma concessão específica.
Aqui está o que eu faço no Ubuntu Server 12.04:
- apt-get install 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 efetuar login)
Parece que o novo usuário "mike1" não tem problemas para conectar-se ao banco de dados "data1" e criar tabelas etc. E isso sem executar nenhum comando GRANT (e o proprietário do "data1" é "postgres", pois 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 aos dados1 e repetir isso para mais usuários e bancos de dados, certificando-se de que os usuários tenham acesso apenas a um (ou possivelmente a vários) bancos de dados de minha escolha.