Em 11 de dezembro de 2013 00:17, Matheus de Oliveira < [email protected]> escreveu:
> > 2013/12/10 Renato Sousa <[email protected]> > >> Boa noite amigos da lista, >> >> > Boa noite. > > > >> Analisei a documentação do postgres para criar um usuario com permissão >> de SELECT no banco. >> Crei o usuário através do comando: >> >> CREATE USER user1 WITH PASSWORD 'xxxxx'; >> >> Após criar o usuário, conectei novamente ao BD para listar as tabelas. >> São mais de 40 tabelas e pelo que entendi eu devo dar permissão de select >> a cada uma delas utilizando a sintaxe : >> >> GRANT SELECT ON nomedatabela to user1; >> >> Minhas dúvidas são as seguintes: >> Devo conceder a permissão select a cada tabela mesmo ou posso fazer de >> uma fez a todas as tabelas ? >> > > Além da permissão de SELECT você deve dar permissão de USAGE no schema e > de CONNECT no banco de dados. Por padrão o esquema public já vem com > permissão de USAGE para todos, assim como os bancos já possuem de CONNECT, > mas é uma prática comum revogar essas permissões e passá-las somente > àqueles que necessitam. > > Na versão 8.4 não há jeito, você terá que fazer uma tabela por vez. Pode > até fazer um SELECT na pg_class para gerar esse script: > > SELECT 'GRANT SELECT ON ' || > quote_ident(n.nspname)||'.'||quote_ident(r.relname)||' TO user1;' > FROM pg_class r JOIN pg_namespace n ON r.relnamespace = n.oid > WHERE r.relkind = 'r' AND n.nspname = '<nome do schema>'; > > Já na versão 9.0 em diante, você pode fazer para todas as tabelas de um > dado esquema: > > GRANT SELECT ON ALL TABLES IN SCHEMA <nome do schema> TO user1; > > Mas, ao criar uma nova tabela, essa permissão não é repassada. Para isso > você pode também usar o comando ALTER DEFAULT PRIVILEGES: > > ALTER DEFAULT PRIVILEGES IN SCHEMA <nome do schema> GRANT SELECT ON > TABLES TO user1; > Colaborando com a resposta, há também a possibilidade de criação de roles (grupos sem a opção de login) para ter estas permissões e incluir os usuários desejados, assim, quando houver um novo usuário, não será necessário conceder todas as permissões de consulta para este novo usuário, bastará incluí-lo no grupo existente. []'s > > > >> Com a permissão SELECT o usuário é capaz de utilizar algum programa >> interativo para elaborar frases SQL no BD ? >> > > Não entendi muito bem o que quis dizer. Mas se esse "programa interativo" > gerar somente consultas (SELECTs), a resposta é sim. > > > >> É preciso alterar o arquivo pg_hba.conf para esse tipo de acesso ? >> >> > Bem, o pg_hba.conf tem que liberar para que o usuário seja capaz de > conectar-se ao banco. Não tem nada relacionado a quais permissões ele terá. > > >> PS: a versão do postgresql é 8.4 >> >> > Atualize assim que puder e seja beeeeemmm mais feliz... =D > > > >> Abraços e muito obrigado, >> >> > Abraços. > > Atenciosamente, > -- > Matheus de Oliveira > Analista de Banco de Dados > Dextra Sistemas - MPS.Br nível F! > www.dextra.com.br/postgres > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
