PostgreSQL, 1 servidor, X usuários, X ambientes separados

1

Sou novo no banco de dados PostgreSQL, algumas coisas são resolvidas como no MySQL. Eu tenho dúvidas sobre como simplificar adicionar usuário separado de outros objetos no banco de dados.

Eu quero criar usuário, deve ter permissão para template1. Ele deve criar bancos de dados e fazer login. Eu quero que seus bancos de dados sejam visíveis apenas para ela. Eu quero que ela não liste / olhe / tenha permissões para outros bancos de dados de usuários criados dessa maneira.

O que é uma solução simples para obter isso?

Obrigado pela ajuda

    
por Svisstack 09.08.2011 / 16:56

1 resposta

2

A maneira mais fácil de fazer isso é exigir que o usuário tenha o mesmo nome do banco de dados e configurar pg_hba.conf para que todos os usuários fiquem limitados ao banco de dados sameuser . Por exemplo, algo como:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD
host    sameuser        all             0.0.0.0/0               md5

Você precisará adicionar isso além de listar todas as contas administrativas que tenham acesso a todos os bancos de dados separadamente. Se você souber o endereço IP do qual os usuários se conectarão, altere 0.0.0.0/0 para corresponder. Se os usuários estiverem se conectando por meio do soquete local em vez de TCPIP, altere TYPE para local e remova a coluna de endereço. O método md5 significa que as senhas são necessárias. Você também precisará ter uma linha para o banco de dados template1 que dá acesso a todos os usuários.

Quanto a não permitir que eles vejam os bancos de dados de outros usuários , não tenho certeza do que você pode fazer a respeito, pois estão listados no esquema pg_catalog e listados por psql -l

    
por 09.08.2011 / 18:45

Tags