Em 04/12/06, Euler Taveira de Oliveira<[EMAIL PROTECTED]> escreveu: > Fabio Telles wrote: > > > Quando converso sobre estas dificuldades com os fornecedores de > > aplicações Cliente-Servidor, surgem as mais mirabolantes soluções. > > Alguém tem sugestões de como resolver este problema (sem reeescrever a > > aplicação para plataforma Web, claro!)??? > > > Muito interessante o assunto. Respondendo a uma pergunta de um colega da > lista ontem falei sobre o pg_hba.conf [1]. Os desenvolvedores do > PostgreSQL tiveram a brilhante idéia de não misturar métodos de > autenticação com estrutura do banco de dados. Então você pode definir > regras para conexão como você faz em um firewall (falando > grosseiramente), por exemplo. > Em aplicações web com 3 camadas costumo utilizar apenas um usuário para > conexão com banco de dados (com/sem senha -- dependendo do tipo de > segurança de acesso dos servidores) e implementar um ACS (aka Sistema de > Controle de Acesso) na própria aplicação. > Em sistemas maiores como os que utilizam 2 camadas (cliente/servidor) > prefiro administrar as permissões de acesso no próprio banco de dados > (sei que alguns DBAs vão me jogar pedra por lhes dificultarem a vida!); > isso porque somente com pg_hba.conf fica muito mais inseguro e, > dependendo do número de usuários, difícil. Por que eu acho então que > seria fácil? Bom, se conheceres o conceito de papéis [2] (aka roles), tudo > fica mais fácil. Você vai criar um papel (role) com um conjunto de > permissões e todo vez que for criar um usuário novo no sistema basta > apenas dar permissão para aquele usuário no papel (role); voila, com > apenas um comando você consegue dar manutenção sem maiores esforços. > Vou parando por aqui porque isso já está parecendo um "mini-artigo"! :-) > 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? []s > [1] > http://lists.pgfoundry.org/pipermail/brasil-usuarios/20061204/003173.html > [2] http://www.postgresql.org/docs/8.1/static/user-manag.html > > -- > Euler Taveira de Oliveira > http://www.timbira.com/ > > _______________________________________________ > 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 > -- site: http://www.midstorm.org/~telles/ e-mail: [EMAIL PROTECTED] jabber: [EMAIL PROTECTED] sip:[EMAIL PROTECTED] _______________________________________________ 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
