¿Hay alguna manera de solicitar la contraseña de la base de datos en tiempo de ejecución en lugar de colocarla (cifrada o no) en el archivo hibernate.cfg.xml?Contraseña de la base de datos de Hibernate en tiempo de ejecución
Respuesta
Casi todas las opciones de configuración en Hibernate tienen un método correspondiente en el objeto que se está configurando. En realidad, la configuración es realmente solo una forma de vincular XML a los objetos que se están configurando. Consulte este artículo para obtener más información: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
Dicho esto, le corresponde a usted recoger la contraseña al inicio. Esa puede ser la parte más difícil del problema. Una vez que haya recopilado la contraseña, envíela a la propiedad adecuada.
Normalmente, la mejor manera de hacerlo, si está utilizando un servidor de aplicaciones Java EE, es utilizar una búsqueda JNDI para obtener la conexión de la base de datos en lugar de utilizar un administrador de controladores. De esta forma, la persona que configura el conjunto de conexiones JNDI es la única que debe conocer la contraseña, y generalmente está encriptada en la consola de administración para que sea segura.
Creo que si utiliza la instanciación programática de la configuración de Hibernate, puede inicializarla desde el archivo de configuración que no contiene una contraseña, establecer la propiedad adicional para la conexión de la base de datos en el objeto de configuración que está creando llama a buildConfguration().
- 1. Hibernate consultas en la base de datos
- 2. hibernate mostrar el tiempo de ejecución de la consulta
- 3. Configuración de Hibernate para utilizar la base de datos, cuyo nombre no se conoce antes del tiempo de ejecución
- 4. Render página ASPX en tiempo de ejecución de la base de datos
- 5. manejo de la restricción de base de datos hibernate
- 6. hibernate: create Entity (con anotaciones) en tiempo de ejecución
- 7. Hibernate - Personalizar inserción en la base de datos
- 8. Selección MappedSuperclass de la base de datos (Hibernate)
- 9. Asegurar contraseña de base de datos en php
- 10. Cómo conectarse a la base de datos sqlite con contraseña
- 11. contraseña de administrador de base de datos local sqlexpress
- 12. Base de datos + Autenticación de Windows + Nombre de usuario/Contraseña?
- 13. Solicitud Force Hibernate para acceder a la base de datos
- 14. iPhone crea una base de datos SQLite en tiempo de ejecución?
- 15. Complejidad del tiempo de consulta de la base de datos
- 16. Actualización de la entidad JPA-Hibernate sin seleccionarla de la base de datos
- 17. Cambiar la cadena de conexión del conjunto de datos en tiempo de ejecución
- 18. GWT - imagen de la base de datos
- 19. ¿Puedo encriptar la base de datos SQLite?
- 20. Sincronización en tiempo real de los datos de la base de datos en todos los clientes
- 21. ¿Cómo conectarse a una base de datos que requiere contraseña sin exponer la contraseña?
- 22. Recopilación en tiempo de ejecución y en tiempo de ejecución C#
- 23. Cambiar la orientación en tiempo de ejecución
- 24. ocultar la contraseña de base de datos usando la especificación codec en datasource.groovy no trabajar
- 25. ¿Codifica la contraseña antes de almacenarla en la base de datos?
- 26. JPA: ¿Cómo especifico el nombre de la tabla correspondiente a una clase en tiempo de ejecución?
- 27. Opciones de cascada de JPA en tiempo de ejecución
- 28. tiempo de ejecución "real" límite
- 29. La creación de un "cheque de encanto" que comprueba contra una base de datos con un tiempo de ejecución razonable
- 30. Cómo obtener un estado de una consulta en ejecución en la base de datos postgresql
¡Ay! esa es una pregunta interesante. ¿Puedo preguntar el contexto en el que estás usando Hibernate? ¿Es esta una aplicación independiente o una aplicación web? Además, si se trata de una aplicación web, ¿estás usando Spring? –
En este punto, es una aplicación independiente, pero quiero protección en el lado de la base de datos, no en la aplicación, porque la base de datos tiene mejor protección que mi aplicación. Además, ¿por qué debería intentar construir un cifrado que ya esté presente en el lado de la base de datos? No me importa que personas equivocadas tengan mi aplicación, solo me importa que las personas equivocadas tengan acceso a mi base de datos. – FinalArt2005