SQL Server の知的所有権の保護Protecting Your SQL Server Intellectual Property

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

ソフトウェア開発者から、どのようにすれば、顧客が SQL ServerSQL Server データ アプリケーションを分析したり、分解できないように、アプリケーションを配布できるかよく質問されます。Software developers often ask how to distribute their SQL ServerSQL Server data application to customers, and yet prevent customers from analyzing and deconstructing their application. ここでの基本原則は、知的財産の保護は法的な問題であり、保護に関する記載は使用許諾契約にあるということです。The key principal here, is that protecting your intellectual property, is a legal issue, and the protection rests in your license agreement. SQL ServerSQL Server が他のユーザーが管理するコンピューターにインストールされている場合、ユーザーは元からそれを完全に管理することはできません。When SQL ServerSQL Server is installed on a computer that others administer, you inherently lose some aspects of control.

問題の性質Nature of the Problem

コンピューターの所有者または管理者は、そのコンピューターにインストールされている SQL ServerSQL Server のインスタンスにいつでもアクセスできます。The owner/administrator of a computer can always access the instance of SQL ServerSQL Server that is installed on that computer. お客様が管理するコンピューターにアプリケーションを展開した場合、管理者であるため、お客様は sysadmin 固定サーバー ロールのメンバーとして SQL ServerSQL Server に接続できます。If you deploy your application to a customer's computer, since they are administrators, they can connect to the SQL ServerSQL Server as members of the sysadmin fixed server role. つまり、アクセス権限の付与、(他のコンピューターへのバックアップの復元を含む) バックアップの管理、復号化、およびデータ ファイルの移動などもできるのです。詳細については、「 システム管理者がロックアウトされた場合の SQL Server への接続」を参照してください。This includes the ability to grant permissions, manage backups (including restoring backups to other computers), decrypt and move data files, etc. For more information, see Connect to SQL Server When System Administrators Are Locked Out.

ストアド プロシージャおよびデータは暗号化できますが、データ構造は非表示にできないので、サーバー プロセスにデバッガーをアタッチできるユーザーは、実行時にメモリから復号化されたプロシージャとデータを取得できてしまいます。Stored procedures and data can be encrypted, but the data structure cannot be hidden and users who can attach a debugger to the server process can retrieve decrypted procedures and data from memory at runtime.

クライアントがコンピューターの管理者でない場合は、クライアントのアクセスを阻止できます。If the clients are not administrators on the computers, you can prevent access by the clients. ファイル データの暗号化、バックアップの暗号化、すべてのユーザー操作の監査には、透過的なデータ暗号化を使用できます。You can use Transparent Data Encryption to encrypt the data files, you can encrypt backups, and you can audit the actions of all users. ただし、SQL ServerSQL Server コンピューターの SQL ServerSQL Server の管理者と管理グループは、これらの操作を取り消すことができます。But SQL ServerSQL Server administrators and admins of the SQL ServerSQL Server computer can reverse these actions.

解決方法Solution

クライアントのコンピューターに SQL ServerSQL Server をインストールしなくてもクライアントのデータ アクセスを構成する方法は多数あります。There are various ways to configure client data access without installing SQL ServerSQL Server on your clients computer. 最も簡単な方法は、クライアントが管理者ではない Azure SQL データベースAzure SQL DatabaseAlways Encrypted と組み合わせて使用する方法です。The easiest is probably using Azure SQL データベースAzure SQL Database so the clients are not admins, perhaps in combination with Always Encrypted. SQL DatabaseSQL Database の概要については、「SQL Database とは SQL データベースの概要」を参照してください。For more information about getting started with SQL DatabaseSQL Database, see What is SQL Database? Introduction to SQL Database.

また、SQL ServerSQL Server を自分のネットワークにホストし、クライアントがネットワーク経由で直接または Web アプリケーションを経由してデータにアクセスできるようにできます。You can also host a SQL ServerSQL Server on your own network, and allow clients to access data through your network, either directly or through a web application.

参照See Also

SQL Server データベース エンジンと Azure SQL Database のセキュリティ センターSecurity Center for SQL Server Database Engine and Azure SQL Database
SQL Server の保護Securing SQL Server