Protezione della proprietà intellettuale di SQL ServerProtecting Your SQL Server Intellectual Property

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Gli sviluppatori di software spesso si interrogano su come distribuire le proprie applicazioni SQL ServerSQL Server impedendo eventuali operazioni di analisi e decodificazione.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. Il problema principale è il fatto che la protezione della proprietà intellettuale rappresenta una questione legale molto importante che può essere gestita solo mediante un contratto di licenza.The key principal here, is that protecting your intellectual property, is a legal issue, and the protection rests in your license agreement. Quando SQL ServerSQL Server viene installato in un computer amministrato da altri utenti, si perdono intrinsecamente alcuni aspetti del controllo sull'applicazione.When SQL ServerSQL Server is installed on a computer that others administer, you inherently lose some aspects of control.

Natura del problemaNature of the Problem

Il proprietario o l'amministratore di un computer può accedere sempre all'istanza di SQL ServerSQL Server installata nel proprio computer.The owner/administrator of a computer can always access the instance of SQL ServerSQL Server that is installed on that computer. Se si distribuisce un'applicazione nel computer di un cliente, tale cliente ne è l'amministratore e pertanto può connettersi a SQL ServerSQL Server come membro del ruolo predefinito del server sysadmin.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. In qualità di amministratore sarà in grado di concedere autorizzazioni, gestire i backup, ripristinare i backup in altri computer, decrittografare e spostare i file di dati e così via. Per altre informazioni, vedere Connettersi a SQL Server se gli amministratori di sistema sono bloccati.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.

Le stored procedure e i dati possono essere crittografati, ma la struttura dei dati non può essere nascosta. Pertanto, gli utenti in grado di associare un debugger al processo server possono recuperare procedure e dati decrittografati dalla memoria durante il runtime.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.

Se i client non sono amministratori dei computer, è possibile impedire loro l'accesso.If the clients are not administrators on the computers, you can prevent access by the clients. È possibile usare la crittografia dati trasparente per crittografare i file di dati e i backup, nonché per controllare le azioni di tutti gli utenti.You can use Transparent Data Encryption to encrypt the data files, you can encrypt backups, and you can audit the actions of all users. Tuttavia, gli amministratori di SQL ServerSQL Server e gli amministratori del computer SQL ServerSQL Server possono annullare queste azioni.But SQL ServerSQL Server administrators and admins of the SQL ServerSQL Server computer can reverse these actions.

SoluzioneSolution

Sono disponibili vari modi per configurare l'accesso ai dati client senza installare SQL ServerSQL Server nel computer client.There are various ways to configure client data access without installing SQL ServerSQL Server on your clients computer. Il modo più semplice prevede l'uso di Database SQL di AzureAzure SQL Database (in questo caso i client non sono amministratori), in combinazione con la crittografia Always Encrypted.The easiest is probably using Database SQL di AzureAzure SQL Database so the clients are not admins, perhaps in combination with Always Encrypted. Per altre informazioni sui concetti introduttivi di Database SQLSQL Database, vedere Informazioni sul database SQL Introduzione al database SQL.For more information about getting started with Database SQLSQL Database, see What is SQL Database? Introduction to SQL Database.

È inoltre possibile ospitare un'istanza di SQL ServerSQL Server in rete e consentire ai client di accedere ai dati mediante la rete, direttamente o tramite un'applicazione 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.

Vedere ancheSee Also

Centro di sicurezza per il motore di database di SQL Server e il database SQL di AzureSecurity Center for SQL Server Database Engine and Azure SQL Database
Sicurezza di SQL ServerSecuring SQL Server