Uma solução seria a de criar um usuário (usuário A) que teria acesso somente a uma determinada tabela. Nesta tabela conteria a senha criptografada de um outro usuário (usuário B), este sim com acesso a todos os objetos do banco de dados (tabelas, views, funções, etc). Então o acesso ao banco pelo aplicativo se daria da seguinte forma: - conectar ao banco atravez do usuário A. - ler a senha. - fechar a conexão. - descriptografar a senha. - conectar ao banco atravez do usuário B.
Dessa forma, mesmo que alguém descubra a senha do usuário A, teria de se descobrir qual o algoritmo à ser usado para descriptografar a senha do usuário B. No entanto, esta abordagem tem a falha de ter que inserir no aplicativo o algoritmo usado para descriptografar a senha do usuário B. -- Sem mais, ---------------------- Marlon David de Souza Desenvolvimento Sysmo Informática Ltda Em Seg 04 Dez 2006 13:46, Fabio Telles escreveu: > Caros colegas... uma das coisas que tem me intrigado na função de DBA > é como as aplicações autenticam seus usuários no SGDB. > > Em aplicações Web, tudo é muito simples... basta um usuário utilizado > para a aplicação. Todas as conexões são abertas a partir do servidor > Web como o Apache ou Tomcat. Você cria uma tabela no Banco de Dados > com o nome e senha (devidamente criptografada) e pronto. A aplicação > fica responsável por determinar onde o usuário poderá acessar cada > coisa. Um cuidado importante é deixar as senhas num arquivo que não > seja acessado via Web. > > Em aplicações GUI Cliente-Servidor a coisa é um pouco diferente. Já me > deparei com uma aplicação enorme onde cada usuáro da aplicação tem um > usuário criado (com um CREATE ROLE) no SGDB. O resultado disso é uma > falha de segurança onde as centenas de usuários podem se conectar > diretamente no banco de dados usando suas senhas utilizadas na > aplicação. Além disso, o trabalho do DBA torna-se insano. > > A alternativa é fazer como nas aplicações Web: criar um usuário que > será utilizado em todas as conexões. Mas isto gera um problema. Se eu > quiser trocar a senha deste usuário s periodicamente, eu terei que > alterar a senha em todos os computadores onde a aplicação estará > instalada. Além disto, muitos acabam colocando a senha compilada > dentro do código fonte da aplicação. > > 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!)??? > > Aguardo sugestões. > > []s > Fábio Telles _______________________________________________ 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
