Uma outra forma de aumentar o nivel de seguranca da aplicação é não dar 
acesso a nenhuma das tabelas do banco de dados aos usuarios do sistema e 
utilizar para todos os metodos de CRUD stored procedures que tenham as 
regras de negocio definidas e que rodem em modo security definer, dessa 
forma pode-se definir que o usuario não podera por exemplo executar um 
delete de registro que nao pertencam ao seu usuario ou também nunca mais 
o usuario conseguir executar um delete de todos os registros ja que isso 
seria contra as regras definidas na stored procedure.
o usuario seria utilizado somente com perfil select e qualquer operacao 
de Crud rodaria como postgres, ou até melhor, nem select faria se não 
fosse via stored procedures.


Euler Taveira de Oliveira escreveu:
> Fabio Telles wrote:
>
>   
>> Hum... passo por isso diariamente... e vou dizer o que aconteceu:
>>
>> Fui demonstrar o perigo desta abordagem para um fornecedor e peguei um
>> Access e em 1 minuto apaguei uma tabela inteira do sistema...
>>
>> O problema não é só a dificuldade de administrar, mas principalmente
>> de segurança. Os usuários devem ter GRANT para excluir um determinado
>> registro a partir da aplicação, mas não devem se conectar no SGDB e
>> fazer isto diretamente.
>>
>> Você concorda comigo ou tem alguma forma de evitar isto?
>>
>>     
> Concordo contigo quando você afirma que fica mais inseguro. Mas isso é
> como dar uma shell a um usuário comum num sistema *NIX. Você considera
> isso inseguro? Se as permissões de acesso estiverem bem definidas, você
> pode deixar o usuário fazer somente aquilo que ele pode efetivamente
> fazer. É claro que utilizando este método, um usuário mais esperto
> *pode* utilizar o psql e se conectar ao banco de dados; e mais, pode
> executar comandos perigosos como "DELETE FROM foo" mas isso é o risco
> que você corre.
> Se quiser um ambiente mais seguro, utilize uma metodologia de 3 camadas,
> onde o cliente *não* terá acesso direto ao banco de dados; isso não quer
> dizer que seu banco de dados esteja seguro, apenas que você corre menos
> risco de um usuário esperto fazer alguma besteira. Particularmente, essa
> metodologia traz menos dor de cabeça ao DBA (acho que era essa sua
> queixa, né?). :-)
>
>
>   


-- 
Ivo Nascimento
Iann tech - Desenvolvendo soluções com performance e segurança

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a