Windows Server 2003EnterpriseでSQLServer 2008Enterpriseを使用しています。 SQL Server用のいくつかのストアドプロシージャを開発しましたが、SQL Serverがインストールされているマシンが完全に制御できない可能性があります(信頼できないサードパーティによって使用されている可能性があります)。
SQL Serverが提供するストアドプロシージャの暗号化機能を使用して、ストアドプロシージャのT-SQLソースコードを保護したい(つまり、他のユーザーが表示できない)。ストアドプロシージャの暗号化が安全かどうか、およびマシンの管理者(SQL Serverと共にインストールされている)がストアドプロシージャのソースコードを表示する方法があるかどうかわかりませんか?
暗号化されたSQLストアドプロシージャのソースを復号化して表示することができます。「SQLストアドプロシージャの復号化」をすばやく検索すると、次のようにかなりの数のヒットが表示されます。
ただし、ストアドプロシージャを暗号化すると、少なくともソースを確認するのが難しくなります-ストアドプロシージャを復号化する現在の方法のいずれかが、ライブSQLサーバーのインストールで実際に実行可能かどうかもわかりません-前回、必要な多くの方法を調べましたSQLサーバーインスタンスへの排他的アクセス。他のユーザーがサーバーにアクセスできないようにします(ただし、これはまだ当てはまらない場合があります)。
また、ストアドプロシージャを暗号化すると、サポートの問題が発生する可能性があることにも注意してください。暗号化されたストアドプロシージャの実行プランを確認できなくなるため、パフォーマンスの問題の診断に問題が発生する可能性があります。
私はあなたの情報源を保護する他の方法を知りません。
Marc_sの回答を明確にするため(現在は削除されています)
SQL Server 2005以降の場合、「プレーンテキスト」を取得するためのしきい値が以前よりも高くなっています。基本的に、DACを介したシステム管理者。この時点で、とにかくすでにpwnされています。
SQL Server 2000以前では、はるかに簡単でした。率直に言って、固い凝視がその仕事をしました。
したがって、エンドユーザーと開発者(sysadminなし)にとっては十分に安全ですが、クライアントのサイトでIPを保護するために使用する場合は安全ではありません。
「データベースアプリケーションを、顧客が使用できる形式でパッケージ化したいのですが、データベースに保存されている実際のデータにアクセスすることはできません。データベースを暗号化すると役立つと思います。」.
答えは常に同じです。あなたが求めるものはデジタル著作権管理と呼ばれ、SQLServerはDRMをサポートしていません。この回答は、データ、スキーマ設計、またはストアドプロシージャロジックのいずれを参照する場合でも当てはまります。詳細については、 暗号化が必要なのは誰ですか? を参照してください。