Zgadzam się, że ciężar uzasadnienia powinien spoczywać na tych, którzy wymagają dostępu. Zazwyczaj w środowiskach, w których się konsultowałem, miałem dostęp do systemów produkcyjnych, w których było to małe środowisko i byłem osobą wspierającą. Miałem dostęp do kopii zapasowych itp., W których wspierałem wsparcie, oraz pośredni dostęp (za pośrednictwem dedykowanego programisty wsparcia) do danych produkcyjnych.
Najważniejsze jest to, że potrzebujesz tego dostępu, gdy jesteś na haku, aby wszystko działało płynnie i musisz odpowiedzieć na pytanie faceta ds. Finansów o coś, co nie działa. W takim przypadku nie zawsze można pracować z danych nawet z jednodniowych danych. Z drugiej strony, im większy dostęp, tym gorzej. Zazwyczaj jako konsultant staram się unikać takiego dostępu, chyba że jest to konieczne. Ponieważ pracuję nad bazami danych finansowych, ostatnią rzeczą, jakiej chcę, jest oskarżenie mnie o wprowadzanie własnych faktur :-D.
Z drugiej strony, jeśli nie potrzebujesz dostępu, nie powinieneś go mieć. Tak naprawdę nie kupuję argumentu o poufnych danych, ponieważ programista prawdopodobnie nie może się doczekać, aby upewnić się, że jest on obsługiwany poprawnie (i bardzo trudno jest zweryfikować bez patrzenia na to, co faktycznie zostało zapisane, gdy pojawia się raport o błędzie). Jeśli nie możesz ufać programistom, że przejrzy dane przechowywane przez aplikację programisty, nie powinieneś zatrudniać programisty do napisania aplikacji. Istnieje zbyt wiele sposobów, by programista mógł zaciemnić dane i wysłać je pocztą e-mail. Nigdy nie możesz być tego pewien. Kontrolki MAC pomagają tutaj, ale ich wdrożenie jest nadal dość skomplikowane.
Duży problem z mojej strony dotyczy dostępu do zapisu. Jeśli programista nie ma wtedy dostępu, a fortiori, programista nie ma dostępu do zapisu. Jeśli chcesz zweryfikować integralność książek, chcesz zachować dostęp do zapisu dla jak najmniejszej liczby osób. Ścieżki audytu są znacznie łatwiejsze do sprawdzenia, jeśli programiści nie mają dostępu. Jeśli programista ma dostęp do odczytu, zawsze masz pytanie, czy istniało jakieś dołączenie do eskalacji uprawnień, które może dać dostęp do zapisu (może zastrzyk SQL w procedurze składowanej?). Często miałem pełny dostęp do informacji rozliczeniowych klienta, gdy miałem dostęp do środowisk pomostowych. Jeśli jednak działa środowisko przejściowe, zwykle aktywnie poprosię o brak dostępu do produkcji, chyba że jest to konieczne.
Oczywiście to nie jest idealne. Deweloper może nadal wbudować w aplikację tylne drzwi, które mogą nie być łatwo wykrywalne, ale takie podejście jest rozsądne, biorąc pod uwagę fakt, że dane kopii zapasowej są dostępne od poprzedniego dnia, wydaje mi się, że jest to ich troska.
Mam nadzieję że to pomoże.
Edycja: Dodając, że w większych środowiskach, w których pracowałem, miałem dostęp do pełnej kopii zapasowej danych, często od kilku dni do kilku miesięcy dla systemu finansowego. To zawsze było wystarczająco dobre dla mojej pracy i jedyne czasy, kiedy się zepsuły, były wtedy, gdy faceci finansowi potrzebowali umiejętności testowania z nowszymi danymi, aby mogli porównać z produkcją.