Nous avons quelques données:
Quelques suggestions de solutions et leurs inconvénients:
Donc, ma question est, s'il existe une solution commune à ce problème, ou des suggestions sur la façon de rendre l'une des solutions ci-dessus réalisable?
Non seulement vous ne voulez pas de copie de la base de données de production, mais elle peut en fait être illégale. Par exemple, aux États-Unis, vous ne pouvez pas déplacer des données de production hors de l'environnement de production si elles contiennent des informations réglementées telles que des données personnelles sur la santé, des données financières ou même des données qui pourraient être utilisées dans le vol d'identité. Si vous le faites, vous pourriez être condamné à une amende, perdre votre statut de conformité et donc être soumis à des audits plus agressifs, ou même être nommé dans une poursuite.
Si vous avez besoin de données à l'échelle de la production pour les tests, vous avez deux options:
Pour l'option # 2
Pouvez-vous au moins donner aux développeurs des machines virtuelles dans votre centre de données dans lesquelles ils peuvent effectuer des RD pour ce travail? Bien qu'ils devraient vraiment travailler à partir de données hors production, cela serait plus sûr jusqu'à ce que vous puissiez y arriver car les données ne seraient pas stockées sur des ordinateurs portables facilement volables.
Changez votre façon de travailler si possible.
Comme d'autres l'ont souligné:
Ces deux éléments vous exposent à des risques importants et doivent être modifiés si possible. Vous devriez au moins évaluer sérieusement le coût de ces changements. S'il s'agit d'une dépendance externe que vous n'avez pas le pouvoir de changer, envisagez de la soulever comme une préoccupation pour quiconque a ce pouvoir.
Dans le monde réel, cependant, il n'est peut-être pas vraiment possible de changer cela. En supposant que ce que vous faites est légal, vous devrez peut-être vivre avec cet arrangement (au moins temporairement).
Si cela est vraiment nécessaire, il vous suffit de faire un chiffrement complet du disque.
Compte tenu des risques, vous devez utiliser la meilleure option de sécurité disponible, et c'est tout. S'il y a un succès de performance, vivez avec. C'est un coût de travailler avec des données sensibles.
Si j'étais votre client, je ne serais pas impressionné que vous ayez décidé de ne pas utiliser la meilleure option de sécurité disponible avec mes données, car cela rendait vos ordinateurs portables légèrement plus lents.
Vous ne précisez pas quelle base de données et quel environnement.
Si vous pouvez utiliser la sécurité intégrée, la base de données n'est pas accessible sans être connecté en tant qu'utilisateur. Oui, si les données sont sur le disque dur, elles peuvent être piratées, mais il s'agit d'une défense de premier niveau.
App.config me fait penser que cela peut être un .NET. Mettez config dans une clé USB et lisez-la depuis la clé USB. Si le lecteur n'est pas présent, saisissez le type d'utilisateur dans le mot de passe.
Existe-t-il un moyen de stocker le mot de passe en mémoire la première fois qu'il est entré et lu par tous. Encore une fois, vous ne dites pas l'environnement. Fichiers mappés en mémoire
Avec certains TDE, vous pouvez stocker la clé sur un périphérique distinct afin qu'ils ne fournissent que la clé au démarrage du serveur de base de données.
La réponse de Corbin March est plutôt bonne, je vais juste ajouter un détail supplémentaire, que vous avez généralement deux classes de données dans votre base de données de production: les métadonnées système/application; et données utilisateur client/données transactionnelles. Ce dernier ne doit JAMAIS être utilisé dans un environnement de développement "tel quel".
Il est en effet très rare que vous ayez besoin d'informations réelles sur le client de production pour effectuer le développement.
Cependant, si le problème que l'OP décrit ici implique des données de secret commercial ou des données système hautement propriétaires qui n'impliquent pas de données client, cela est requis par les développeurs ... l'approche de sécurité doit impliquer un schéma qui n'a pas le mot de passe db conservé en texte clair dans un fichier de ressources quelque part. Il doit y avoir un mécanisme pour, par exemple, régénérer un mot de passe quotidien, qui n'est pas stocké sur le disque.
Une option possible consiste à faire une copie de la base de données et à nettoyer cette copie avec un script afin de vous retrouver avec des données différentes de celles qui sont réellement en production. Vous ne vous retrouverez pas avec les mêmes données que la production Mais vous aurez la même échelle.