Sempre nos exemplos que vejo de camadas de persistência, conexão com banco de dados, etc. encontro um único usuário sendo usado, geralmente em um arquivo .properties, algo como:
Arquivo de propriedades do banco de dados
jdbc.url = xxxxxxxxxxx;
jdbc.username = user
jdbc.password = password
Classe responsável por fazer a conexão com o banco
Connection con = DriverManager.getConnection(url, username, password);
Onde “url”, “username” e “password” são fixos (no arquivo de propriedades) e todos os usuários utilizam um pool para esta conexão.
Isso é excelente quando é possível fazer este pool de conexões, mas quando é uma exigência que o usuário que está acessando o banco seja um usuário do banco de dados usado, como proceder?
Sei que não é recomendado, mas é uma exigência para permitir que o banco realize auditoria das operações.
Sei também que as operações podem ser auditadas utilizando a aplicação, mas isso não é o que o cliente deseja.
Então como autenticar o usuário de uma aplicação, usando os usuários do banco em um ambiente web, usando servlets?
Gostaria de “ouvir” a opinião de vocês sobre isso e discutir sobre uma solução.
Atualmente uso o iBatis, mas pretendo migrar para o Hibernate ou JPA.
[]'s
Daniel Augusto