On 05-06-2012 15:21, Emerson Martins wrote:
> Olá pessoal segue como eu fiz...
> 
> CREATE ROLE desenvolvimento ENCRYPTED PASSWORD 'pass';
> ALTER Role desenvolvimento NOSUPERUSER;
> ALTER ROLE desenvolvimento LOGIN;
> ALTER ROLE desenvolvimento SET search_path='public';
> REVOKE ALL ON SCHEMA public FROM desenvolvimento;
> 
> -- Aqui eu gerei todos os selects para cada banco
> 
> select 'GRANT SELECT ON  '|| relname || '  '||'TO desenvolvimento ;' from
> pg_stat_all_tables where schemaname in ('public')
> 
> Obs: Esse usuario consegue criar uma tabela mas nao consegue excluir..
> 
Faltou retirar a permissão de PUBLIC. PUBLIC é o conjunto de todas as roles do
banco de dados. Alguns objetos vem por padrão com permissão para PUBLIC; para
se certificar que somente os interessados tenham acesso aos objetos, é uma boa
prática fazer um REVOKE de PUBLIC. Leia mais sobre isso na documentação [1].

REVOKE ALL ON SCHEMA public FROM public;


[1]
http://www.postgresql.org/docs/9.1/static/sql-grant.html#SQL-GRANT-DESCRIPTION-OBJECTS


-- 
   Euler Taveira de Oliveira - Timbira       http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a