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

Responder a