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
