L'idea di archiviare le stringhe di connessione in un database è un'idea perversa, ma per prima cosa ascoltatemi. Sappiamo tutti che è meglio crittografare le stringhe di connessione nel file web.config, ma cosa succede se saltiamo completamente il file web.config?Accesso alle stringhe di connessione tramite un servizio Web
Un paio di mesi fa mi è stato chiesto di spostare i database da un server a un altro. Ciò significava dover aggiornare le stringhe di connessione in ogni programma che accede a questi vari database. Questa è la terza volta in 2 anni che ho dovuto spostare i database da un server all'altro. Così ho pensato di memorizzare stringhe di connessione in un database e assegnare a ciascun GUID l'accesso tramite un servizio web. Invece di posizionare stringhe di connessione in un web.config, è sufficiente memorizzare il GUID della stringa di connessione nel web.config e fare riferimento al servizio Web della stringa di connessione in modo da poter richiedere quella stringa di connessione. La crittografia può essere eseguita a livello di applicazione e le stringhe di connessione vengono semplicemente memorizzate nel database.
Ho creato un proof of concept e funziona perfettamente (è solo su una intranet locale e non è esposto a Internet).
Il vantaggio è ovvio per me; come essere in grado di aggiornare rapidamente le stringhe di connessione senza dover toccare l'applicazione web. Ciò significa che è possibile creare un'applicazione Web solo per modificare la stringa di connessione nel database, che un DBA potrebbe utilizzare in proprio, quindi non devono mai disturbare un programmatore quando si spostano i database.
Ma il vantaggio non è quello che mi interessa. Mi interessa quello che tutti qui pensano di fare qualcosa del genere?
Contrassegnato sulla domanda, mentre non penso che sia una grande idea, penso che sia una buona domanda da porre! –
Perché il DBA dovrebbe disturbare lo sviluppatore comunque quando si spostano i database? Basta aggiornare i file di configurazione. Se il tuo codice richiede la ricostruzione solo per spostare i DB, hai un cattivo design. Detto questo, se si dispone di un sistema ampiamente distribuito, ci sarebbe un certo vantaggio nel centralizzare la configurazione. – Joe
Sono d'accordo sul fatto che lo sviluppatore non dovrebbe essere infastidito da uno spostamento del database, ma il "DBA" in cui mi trovo è terrorizzato dai server SQL e SQL. Prenditi un secondo per lasciar entrare quella frase. Vorrei davvero scherzare. – Adam