web-dev-qa-db-ja.com

ストアドプロシージャのSQLServer暗号化はどの程度安全ですか?

バックグラウンド

Windows Server 2003EnterpriseでSQLServer 2008Enterpriseを使用しています。 SQL Server用のいくつかのストアドプロシージャを開発しましたが、SQL Serverがインストールされているマシンが完全に制御できない可能性があります(信頼できないサードパーティによって使用されている可能性があります)。

質問

SQL Serverが提供するストアドプロシージャの暗号化機能を使用して、ストアドプロシージャのT-SQLソースコードを保護したい(つまり、他のユーザーが表示できない)。ストアドプロシージャの暗号化が安全かどうか、およびマシンの管理者(SQL Serverと共にインストールされている)がストアドプロシージャのソースコードを表示する方法があるかどうかわかりませんか?

4
George2

暗号化されたSQLストアドプロシージャのソースを復号化して表示することができます。「SQLストアドプロシージャの復号化」をすばやく検索すると、次のようにかなりの数のヒットが表示されます。

http://www.mssqltips.com/tip.asp?tip=1046

ただし、ストアドプロシージャを暗号化すると、少なくともソースを確認するのが難しくなります-ストアドプロシージャを復号化する現在の方法のいずれかが、ライブSQLサーバーのインストールで実際に実行可能かどうかもわかりません-前回、必要な多くの方法を調べましたSQLサーバーインスタンスへの排他的アクセス。他のユーザーがサーバーにアクセスできないようにします(ただし、これはまだ当てはまらない場合があります)。

また、ストアドプロシージャを暗号化すると、サポートの問題が発生する可能性があることにも注意してください。暗号化されたストアドプロシージャの実行プランを確認できなくなるため、パフォーマンスの問題の診断に問題が発生する可能性があります。

私はあなたの情報源を保護する他の方法を知りません。

3
Justin

Marc_sの回答を明確にするため(現在は削除されています)

SQL Server 2005以降の場合、「プレーンテキスト」を取得するためのしきい値が以前よりも高くなっています。基本的に、DACを介したシステム管理者。この時点で、とにかくすでにpwnされています。

SQL Server 2000以前では、はるかに簡単でした。率直に言って、固い凝視がその仕事をしました。

したがって、エンドユーザーと開発者(sysadminなし)にとっては十分に安全ですが、クライアントのサイトでIPを保護するために使用する場合は安全ではありません。

2
gbn

「データベースアプリケーションを、顧客が使用できる形式でパッケージ化したいのですが、データベースに保存されている実際のデータにアクセスすることはできません。データベースを暗号化すると役立つと思います。」.

答えは常に同じです。あなたが求めるものはデジタル著作権管理と呼ばれ、SQLServerはDRMをサポートしていません。この回答は、データ、スキーマ設計、またはストアドプロシージャロジックのいずれを参照する場合でも当てはまります。詳細については、 暗号化が必要なのは誰ですか? を参照してください。

0
Remus Rusanu