Skip to content

Latest commit

 

History

History
37 lines (26 loc) · 3.58 KB

File metadata and controls

37 lines (26 loc) · 3.58 KB
title Protecting Your SQL Server Intellectual Property
description Understand your options for protecting the intellectual property in a SQL Server data application that is distributed to customers.
author VanMSFT
ms.author vanto
ms.date 02/27/2026
ms.service sql
ms.subservice security
ms.topic concept-article
helpviewer_keywords
protecting intellectual property
intellectual property

Protecting your SQL Server intellectual property

[!INCLUDE SQL Server]

Software developers often ask how to distribute their [!INCLUDEssNoVersion_md] data application to customers while preventing customers from analyzing and deconstructing their application. The key principle here is that protecting your intellectual property is a legal issue, and the protection rests in your license agreement. When [!INCLUDEssNoVersion_md] is installed on a computer that others administer, you inherently lose some aspects of control.

Nature of the problem

The owner or administrator of a computer can always access the instance of [!INCLUDEssNoVersion_md] that is installed on that computer. If you deploy your application to a customer's computer, since they're administrators, they can connect to the [!INCLUDEssNoVersion_md] as members of the sysadmin fixed server role. This includes the ability to grant permissions, manage backups (including restoring backups to other computers), decrypt and move data files, and more. 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 can't 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 aren't 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. But [!INCLUDEssNoVersion_md] administrators and admins of the [!INCLUDEssNoVersion_md] computer can reverse these actions.

Solution

There are various ways to configure client data access without installing [!INCLUDEssNoVersion_md] on your client's computer. The easiest is probably using [!INCLUDE ssazure-sqldb] so the clients aren't admins, perhaps in combination with Always Encrypted. For more information about getting started with [!INCLUDEssSDS_md], see What is Azure SQL Database?.

You can also host a [!INCLUDEssNoVersion_md] on your own network, and allow clients to access data through your network, either directly or through a web application.

Related content