Come gestire più credenziali del database su più progetti

0

Abbiamo 10 progetti separati che accedono tutti allo stesso database. Inizialmente, tutti e 10 i progetti avevano le credenziali del database incorporate in essi. Ho deciso di spostare le credenziali in un metodo di utilità e invece tutti i progetti lo chiamano. Ad esempio

public String getDBUser() {
   return "username";
}

Quindi, invece di codificarlo in 10 punti, l'ho codificato in un unico punto. Tutto andava bene.

Avanziamo di alcuni mesi e mi imbatto in una parete con questa soluzione, perché ora ci sono diverse credenziali a seconda del server di database a cui stiamo cercando di connetterci.

Per il contesto, sto provando a configurare ambienti di test / produzione correttamente separati, ma i server hanno nomi utente e password diversi.

Una soluzione è semplicemente cambiare le credenziali per renderle uguali, ma immagino che a volte non sia un'opzione e se mi imbatto in una situazione del genere mi piacerebbe essere preparato.

Che cosa è un buon modo per gestire più credenziali del database su più applicazioni?

    
posta That Umbrella Guy 14.03.2014 - 16:24
fonte

1 risposta

1

In .NET, ad esempio, le stringhe di connessione sono memorizzate in web.config , che è un file XML nella directory dell'app. Qui puoi memorizzare tutte le stringhe di connessione di cui hai bisogno. Quindi, nella tua app, devi solo configurare quale di quelli di cui hai bisogno (leggendo il file ed estraendo la stringa di connessione), puoi configurare questo parametro mentre procedi.

Questo è per un progetto. Per molti progetti, la soluzione .NET consiste nell'aggiungere ogni stringa di connessione in un "file master" e quindi, quando il progetto viene creato, il processo di costruzione copierà la stringa di connessione rilevante dal "file master" al web.config del progetto. .

Ho cercato rapidamente di trovare qualche equivalente Java ma non ho avuto successo. In Java l'equivalente è persistence.xml (grazie, Bob!), quindi un'opzione potrebbe essere quella di trasformare quel file. Non dovrebbe essere troppo difficile da fare, anche se significa eseguire un comando extra ogni volta che si cambia qualcosa nel file master.

Qualcosa sull'avere le stesse identiche credenziali mi strofina nel modo sbagliato, ma ciò dipenderà dalla tua architettura. Inoltre, come suggerimento in più, se non lo hai fatto, prenditi il tuo tempo per Memorizza correttamente le informazioni sensibili . Non si sa mai ...

    
risposta data 14.03.2014 - 17:18
fonte

Leggi altre domande sui tag