SQL Server の知的所有権の保護
適用対象: SQL Server
ソフトウェア開発者から、どのようにすれば、顧客が SQL Server データ アプリケーションを分析したり、分解できないように、アプリケーションを配布できるかよく質問されます。 ここでの基本原則は、知的財産の保護は法的な問題であり、保護に関する記載は使用許諾契約にあるということです。 SQL Server が他のユーザーが管理するコンピューターにインストールされている場合、ユーザーは元からそれを完全に管理することはできません。
問題の性質
コンピューターの所有者または管理者は、そのコンピューターにインストールされている SQL Server のインスタンスにいつでもアクセスできます。 お客様が管理するコンピューターにアプリケーションを展開した場合、管理者であるため、お客様は sysadmin 固定サーバー ロールのメンバーとして SQL Server に接続できます。 これには、アクセス許可の付与、バックアップの管理 (他のコンピューターへのバックアップの復元を含む)、データ ファイルの暗号化解除と移動などの機能が含まれます。詳細については、「システム管理者がロックアウトされたときに SQL Server に接続する」を参照してください。
ストアド プロシージャおよびデータは暗号化できますが、データ構造は非表示にできないので、サーバー プロセスにデバッガーをアタッチできるユーザーは、実行時にメモリから復号化されたプロシージャとデータを取得できてしまいます。
クライアントがコンピューターの管理者でない場合は、クライアントのアクセスを阻止できます。 ファイル データの暗号化、バックアップの暗号化、すべてのユーザー操作の監査には、透過的なデータ暗号化を使用できます。 ただし、 SQL Server コンピューターの サーバー管理者と管理グループは、これらの操作を取り消すことができます。
解決策
クライアントのコンピューターに SQL Server をインストールしなくてもクライアントのデータ アクセスを構成する方法は多数あります。 最も簡単な方法は、クライアントが管理者ではない Azure SQL データベース を Always Encrypted と組み合わせて使用する方法です。 SQL Database の概要については、「SQL Database とは? SQL Database の紹介」をご覧ください。
また、 SQL Server を自分のネットワークにホストし、クライアントがネットワーク経由で直接または Web アプリケーションを経由してデータにアクセスできるようにできます。
参照
SQL Server データベース エンジンと Azure SQL Database のセキュリティ センター
SQL Server の保護