Setar usuário e senha do banco no hibernate runtime
4 respostas
vagnerinf
Olá!
Estou usando NetBeans, hibernate, MySQL. Gostaria de modificar o arquivo hibernate.cfg.xml em tempo de execução onde ele passa a senha e usuário pra fazer a conexão. Os dados usuário e senha devem ser inseridos por quem vai utilizar o programa. Não sei se esta é a melhor maneira. Se existir outra forma por favor postar.
O arquivo de configuração hibernete.cfg.xml é criado automaticamente pelo NetBeans no <pacote padrão>. Como posso acessá-lo runtime?
Não gostaria de deixar usuário e senha em um arquivo xml por questões de segurança.
Estou usando NetBeans, hibernate, MySQL. Gostaria de modificar o arquivo hibernate.cfg.xml em tempo de execução onde ele passa a senha e usuário pra fazer a conexão. Os dados usuário e senha devem ser inseridos por quem vai utilizar o programa. Não sei se esta é a melhor maneira. Se existir outra forma por favor postar.
O arquivo de configuração hibernete.cfg.xml é criado automaticamente pelo NetBeans no <pacote padrão>. Como posso acessá-lo runtime?
Não gostaria de deixar usuário e senha em um arquivo xml por questões de segurança.
Bem…
no seu caso, as permissões de CRUD (Create, Read, Update, Delete) são do banco, e não do sistema?
banco de dados é legado? Se não, o que impede de que as permissões sejam de sistema e não de banco?
[]'s
JL
L
leandrolw
O que vc pode fazer, é mapear um usuario qualquer no arquivo persistence.xml, então na hora de recuperar EntityManager sobrescrever o usuario e a senha,
dessa forma:
Map configOverrides = new HashMap();
configOverrides.put("hibernate.connection.username", "usuario");
configOverrides.put("hibernate.connection.password", "senha");
EntityManagerFactory programmaticEmf =
Persistence.createEntityManagerFactory("TestePU", configOverrides);
EntityManager e = programmaticEmf.createEntityManager();
Com isso vc pode sobrescrever qualquer propriedade na unidade de persistencia…
Muito bem, ainda não testei mas parece que resolve.
Mais uma pergunta como posso criar um org.w3c.dom.Document do arquivo hibernate.cfg.xml que está em <pacote padrão> dentro do meu projeto?
Respondendo sobre o banco de dados, quero ter a segurança em duas vias tanto no banco quanto no programa.
Mero_Aprendiz
Esse foi um dos motivos que perguntei antes de dar a resposta.
Pelo que já pode ver, não é uma boa usuário de sistema (operadores, gerencia, etc) tenham uma forma de acesso direto ao banco de dados.
Acredito que acesso ao banco deve ser restrito aos adminstradores de banco, ou à usuários especializados, como os programadores por exemplo.
Posso estar enganado (se tiver, alguem me corrige), mas usuários com senhas de acesso ao banco pode ser mais um problema de segurança que uma solução.