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