私たちはいくつかの与えられたものを持っています:
いくつかの推奨されるソリューションとその欠点:
だから、私の質問は、そのような問題に対する一般的な解決策があるか、または上記の解決策のいずれかを実行可能にする方法に関する提案があるかどうかです。
本番データベースのコピーが必要なだけでなく、実際には違法である可能性があります。たとえば、米国では、個人の健康データ、財務データ、さらには個人情報の盗難に使用される可能性のあるデータなどの規制情報が含まれている場合、本番環境から本番データを移動することはできません。そうした場合、罰金を科され、コンプライアンスの立場を失うため、より厳しい監査の対象となるか、訴訟で指名される可能性さえあります。
テストのために実稼働規模のデータが必要な場合は、いくつかのオプションがあります。
オプション#2の場合
この作業のためにRDを使用できるデータセンターの開発者VMを少なくとも提供できますか?彼らは実際に非運用データで機能するはずですが、データは簡単に盗まれるラップトップに保存されないので、そこに到達するまで安全です。
可能な場合は作業方法を変更してください。
他の人が指摘したように:
これらはどちらも重大なリスクにさらされるため、可能であれば変更する必要があります。これらの変更を行う場合のコストを少なくとも真剣に評価する必要があります。これが、変更する権限のない外部依存関係である場合は、その権限を持っている人は誰でも、これを懸念事項として取り上げることを検討してください。
しかし、現実の世界では、これを変更することは実際には不可能かもしれません。あなたがしていることが合法であると仮定すると、あなたは(少なくとも一時的に)この取り決めを守らなければならないかもしれません。
これが本当に必要な場合は、フルディスク暗号化を行うだけです。
リスクを考えると、利用可能な最高のセキュリティオプションを使用する必要があります。パフォーマンスヒットがある場合は、それと共存してください。機密データを処理するためのコストです。
私があなたの顧客である場合、ラップトップが少し遅くなるため、私のデータで利用可能な最高のセキュリティオプションを使用しないことに決めたことには感心しません。
どのデータベースと環境を指定する必要はありません。
統合セキュリティを使用できる場合、そのユーザーとしてログインしないとデータベースにアクセスできません。はい、データがハードディスクにある場合、ハッキングされる可能性がありますが、これは第1レベルの防御策です。
App.configは、これが.NETである可能性があると思います。設定をサムドライブに入れ、サムドライブから読み取ります。ドライブが存在しない場合は、ユーザーにパスワードを入力させます。
パスワードを初めて入力して全員が読み取るときに、パスワードをメモリに保存する方法はありますか?繰り返しますが、環境については述べていません。 メモリマップファイル
一部のTDEでは、別のデバイスにキーを保存して、データベースサーバーの起動時にキーを提供することができます。
コービンマーチの答えはかなり良いです。私は、追加の詳細を追加します。一般に、運用データベースには2つのデータクラスがあります。システム/アプリケーションメタデータ。およびクライアントユーザーデータ/トランザクションデータ。この後者は、「現状のまま」の開発環境では絶対に使用しないでください。
開発を行うために実際の本番クライアント情報が必要になることは非常にまれです。
ただし、OPがここで説明している問題に、営業秘密データや、顧客データを含まない独自の高度なシステムデータが含まれる場合、開発者はそれを必要とします...セキュリティアプローチには、リソースファイルのどこかにクリアテキストで保存されたdbパスワード。たとえば、ディスクに保存されていない、毎日のパスワードを再生成するメカニズムが必要です。
可能なオプションの1つは、データベースのコピーを作成し、そのコピーをスクリプトでスクラブして、実際に運用されているものとは異なるデータになるようにすることです。最終的に本番環境と同じデータになるわけではありませんが、規模は同じになります。