Je conviens que le fardeau de la justification devrait incomber à ceux qui ont besoin d'un accès. Généralement, dans les environnements où j'ai consulté, j'ai eu accès à des systèmes de production dans lesquels l'environnement était petit et j'étais la personne de soutien. J'ai eu accès à des sauvegardes, etc. où j'étais support pour le support, et accès indirect (via un développeur de support dédié) aux données de production.
Le gros problème est le suivant: vous avez besoin de cet accès lorsque vous êtes obligé de tout faire pour que tout fonctionne bien et que vous deviez répondre à la question du responsable des finances à propos de quelque chose qui ne fonctionne pas. Dans ce cas, vous ne pouvez pas toujours utiliser des données anciennes. D'un autre côté, plus l'accès est important, plus il est mauvais. Généralement, en tant que consultant, j'ai tendance à éviter ce type d'accès, à moins que cela ne soit nécessaire. Depuis que je travaille sur des bases de données financières, la dernière chose que je veux, c'est être accusé de saisir mes propres factures :-D.
D'un autre côté, si vous n'avez pas besoin d'un accès, vous ne devriez pas l'avoir. Je n'achète pas vraiment l'argument des données sensibles, car le développeur est probablement responsable de s'assurer que tout est géré correctement (et il est très difficile de vérifier sans regarder ce qui a été réellement stocké lorsqu'un rapport de bogue arrive). Si vous ne pouvez pas faire confiance au développeur pour qu'il examine les données stockées dans l'application du développeur, vous ne devez pas l'embaucher pour l'écrire. Il y a trop de façons pour le développeur de masquer les données et de les envoyer par courrier électronique et vous ne pouvez jamais en être sûr. Les contrôles MAC aident ici mais ils sont toujours assez complexes à implémenter.
Le gros problème de mon côté concerne l’accès en écriture. Si un développeur n'a pas d'accès alors, a fortiori, le développeur n'a pas d'accès en écriture. Si vous souhaitez vérifier l'intégrité des livres, vous souhaitez conserver l'accès en écriture au moins de personnes possible. Les pistes d'audit sont beaucoup plus faciles à valider si les développeurs n'ont pas d'accès. Si le développeur a un accès en lecture, vous vous demandez toujours s'il existe un rattachement de privilèges pouvant donner un accès en écriture (peut-être une injection SQL dans une procédure stockée?). J'ai souvent eu un accès complet aux informations de facturation des clients lorsque j'ai eu accès à des environnements de transfert. Si un environnement de transfert fonctionne correctement, je demanderai généralement activement de ne pas avoir accès à la production sauf si cela est nécessaire.
Donc ce n'est pas parfait, bien sûr. Un développeur peut toujours créer des portes arrière dans l'application qui peuvent ne pas être facilement détectables, mais cette approche est une approche raisonnable, étant donné que les données de sauvegarde sont disponibles la veille, il me semble que c'est leur préoccupation.
J'espère que cela t'aides.
Edit: J'ajoute simplement que, dans les environnements plus vastes dans lesquels j'ai travaillé, j'ai eu accès à des données de sauvegarde complètes allant souvent de quelques jours à quelques mois pour le système financier. Cela a toujours été suffisant pour mon travail et la seule fois où cela a échoué, c’est quand les responsables des finances ont eu besoin de la capacité de tester des données plus récentes pour pouvoir les comparer à la production.