2016-05-05 12 views
2

多くのテーブルで多くの列を暗号化しようとしています。鍵と証明書を使用して暗号化と復号化を行う方法を基本的に理解していますが、これをどのように大規模に実装できるかはわかりません。SQL暗号化による本番データベースの更新 - 一括更新のショートカット?

たとえば、本番アプリでSQLコードを挿入したり更新したりするために、テーブルにいくつかの列があります。これらのクエリにENCRYPTBYKEY()およびDECRYPTBYKEY()メソッドを含めるために、それぞれのSQLクエリを改訂する必要がありますか?これを行うために実動サーバーを更新するためのソリューションやショートカットはありますか?

答えて

2

はい、あなたはencryptbykeyを使用するすべての書き込みを更新する必要があるだろうし、すべてがdecryptbykey

を使用することを読み込むストアドプロシージャを使用している場合、または集中CRUD操作を持っているし、ロックダウンされ、これは物事を簡単にすることができます - しかし、それはあります依然として時間のかかるプロセスです。もう1つの選択肢はTransparent Data Encryption (TDE)で、コードを変更せずにデータベース全体に適用できます。サーバー上で実行する必要があるコマンドはまだいくつかありますが。

+0

TDEを見ると、私たちの実装時間を節約するための優れた解決策と思われますが、ほんの数カラムの暗号化を行う代わりに、データベース全体が暗号化されます。これにより、対話しようとしているクエリの列ごとに、2倍のPERでクエリの実行時間が長くなることはありませんか? – Jayizzle

+1

http://sqlmag.com/sql-server/transparent-data-encryption-faqs>はい、TDEの使用にはパフォーマンス上のオーバーヘッドがあります。暗号化および復号化プロセスには、追加のCPUサイクルが必要です。 TDEを使​​用するためのオーバーヘッドは、作業負荷のタイプに応じて、約3〜30%です。 I/Oが低く、CPU使用率が低いSQL Serverインスタンスは、パフォーマンスに最も影響しません。 CPU使用率が高いサーバーがパフォーマンスに最も影響します。 – Kritner

+1

また、情報にまだ起こっていない場合には、TDEがSQL Serverのエンタープライズ版を必要としていることを知っている限り(2008年から2012年までのケースを確かめてください。同じことが適用されます) – Kritner