La idea de almacenar cadenas de conexión en una base de datos es una idea perversa, pero por favor escúcheme primero. Todos sabemos que es una buena práctica cifrar las cadenas de conexión en el archivo web.config, pero ¿qué sucede si nos salteamos el archivo web.config por completo?Acceso a las cadenas de conexión a través de un servicio web
Hace un par de meses me pidieron que mover bases de datos de un servidor a otro. Esto significaba tener que actualizar las cadenas de conexión en cada programa que accedía a estas diversas bases de datos. Esta es la tercera vez en 2 años que tengo que mover las bases de datos de un servidor a otro. Así que pensé en almacenar cadenas de conexión en una base de datos y asignarle a cada una un GUID al que se debe acceder a través de un servicio web. En lugar de colocar cadenas de conexión en un web.config, solo necesitaría almacenar el GUID de la cadena de conexión en el archivo web.config, y hacer referencia al servicio web de la cadena de conexión para poder solicitar esa cadena de conexión. El cifrado se puede realizar en el nivel de la aplicación y las cadenas de conexión solo se almacenan cifradas en la base de datos.
He creado una prueba de concepto y funciona bien (es sólo en una intranet local y no expuesto a la Internet).
El beneficio es obvio para mí; como poder actualizar rápidamente las cadenas de conexión sin tener que tocar la aplicación web. Esto significa que puede crear una aplicación web solo para editar cadena de conexión en la base de datos, que un DBA podría usar allí mismo, para que nunca tenga que molestar a un programador cuando mueva bases de datos.
Pero el beneficio no es lo que me interesa. Estoy interesado en lo que todo el mundo aquí piensa en hacer algo como esto?
Marcó la pregunta, aunque no creo que sea una gran idea, ¡creo que es una buena pregunta! –
¿Por qué el DBA debería molestar al desarrollador de todos modos al mover las bases de datos? Simplemente actualice los archivos de configuración. Si su código requiere una reconstrucción solo para mover los DB, tiene un mal diseño. Dicho esto, si tiene un sistema ampliamente distribuido, la centralización de la configuración tendría alguna ventaja. – Joe
Estoy de acuerdo en que no se debe molestar al desarrollador con un cambio de base de datos, pero el "DBA" en el que estoy está aterrorizado con los servidores SQL y SQL. Tómese un segundo para dejar que esa declaración se hunda. Ojalá estuviera bromeando. – Adam