C'è un modo per aggiornare il database di un cliente senza vedere tutti i suoi dati sensibili?

7

Un cliente mi ha chiesto di aggiornare la sua app Web. All'ultimo minuto, ha espresso qualche preoccupazione per avermi permesso di accedere al suo database (e quindi a informazioni sensibili sui clienti), perché questa è la prima volta che lavoriamo insieme e lui non mi conosce.

Per quanto ne so, non c'è modo per me di lavorare su questo progetto senza avere pieno accesso al suo database. Ho bisogno di fare aggiornamenti al database per una cosa (aggiungere colonne, creare nuove tabelle, ecc.). E ho bisogno di testare l'app live quando l'ho aggiornata e sarei preoccupato di non avere accesso completo al database.

C'è un modo in cui posso lavorare sul suo progetto senza avere accesso alle sue informazioni sensibili?

Grazie mille

    
posta Joe 28.07.2011 - 17:45
fonte

6 risposte

10

Le opzioni sarebbero:

  • Per mascherare i dati "sensibili" prima che ti faccia entrare e poi smascherarlo dopo.
  • Potrebbe anche spostare i dati sensibili in uno schema separato e negare l'accesso, tranne forse attraverso una vista che maschera o omette i dati sensibili.
  • Poteva anche cancellare i dati sensibili e quindi semplicemente ricaricarlo.
  • Potrebbe darti una copia del database con i dati sensibili mascherati.
  • Potrebbe darti il DDL per ricreare i dati sans del database (eccetto i dati di riferimento non sensibili) per il tuo sistema di sviluppo / test.

Indipendentemente da come lo fa, alla fine sarà necessario testare con dati molto simili a quelli in produzione, oppure potresti ottenere brutte sorprese quando implementerai. Mascherare / disinfettare i risultati nel test su dati che non è esattamente ciò che il sistema userà nel mondo reale e spesso le differenze sono minori / banali, a volte queste differenze contano molto.

Senza conoscere la natura del lavoro che stai facendo, alcuni di questi potrebbero non essere molto pratici o possibili. E, naturalmente, se non ha il suo DBA, dovrà fidarsi che tu lo faccia correttamente e se tu sei quello che lo imposta, puoi comunque vedere tutto durante l'installazione.

    
risposta data 28.07.2011 - 17:50
fonte
6

Se il cliente non si fida di te per guardare i suoi dati, come può fidarsi di te per modificare il suo database?

Firma una NDA reciproca e vai al lavoro o cerca più clienti fidati.

    
risposta data 28.07.2011 - 19:42
fonte
3

Quello che devi avere è un ambiente di test.

Duplica lo schema del suo database e compilalo con dati falsi. Prova contro questo, con le tue modifiche. Quando hai finito, incapsula le modifiche del database in un unico script che contiene una procedura di aggiornamento per portare il database dalla vecchia versione alla nuova versione.

    
risposta data 28.07.2011 - 17:50
fonte
2

Questo dipende da molti fattori.

C'è qualcuno con accesso al database che potrebbe eseguire alcuni script che hanno abbastanza conoscenze per farlo in modo affidabile? Ad esempio la società che ospita i suoi server o il suo dipartimento IT?

In questo caso è possibile fornire gli script e potrebbero eseguirli (dopo aver eseguito prima un backup). Potrebbero anche fornirti alcuni dati di esempio, in modo da avere la struttura del database ma senza dati reali al suo interno.

Questo potrebbe funzionare fintanto che i dati sono coerenti e non ci sono errori. Diventa molto più difficile se parte del tuo lavoro potrebbe essere ripulire gli errori.

    
risposta data 28.07.2011 - 17:54
fonte
2

Il mio consiglio: informa il cliente no.

    
risposta data 28.07.2011 - 18:01
fonte
1

Probabilmente non è necessario disporre di dati reali. Infatti, a fini di sviluppo, dovresti essere in grado di utilizzare un sottoinsieme igienizzato dei dati. Tutto dovrebbe avere le stesse caratteristiche dei dati effettivi in termini di formattazione, ma non deve essere effettivamente il vero set di dati.

Se i dati sono veramente sensibili in natura, l'integrazione dovrebbe essere eseguita internamente dal personale tecnico. Se si verificano errori, potrebbero disinfettare i file di registro e fornirli a loro se hanno bisogno di assistenza.

Nel caso in cui tu abbia bisogno di eseguire l'integrazione, diventa molto più complicato. Ma se sei stato assunto per fare il lavoro, allora la persona che paga dovrebbe fidarsi di te. Dovrebbero anche avere un sostegno legale (NDA e simili), ma se non si fidano di fare ciò che ti hanno assunto pur mantenendo il livello etico e legale, perché ti hanno assunto?

    
risposta data 28.07.2011 - 17:52
fonte

Leggi altre domande sui tag