Protezione della proprietà intellettuale di SQL Server

Si applica a:SQL Server

Gli sviluppatori di software spesso si chiedono come distribuire ai clienti le loro applicazioni di dati di SQL Server impedendo ai clienti l’analisi e la decostruzione della loro applicazione. 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. Quando SQL Server viene installato in un computer amministrato da altri utenti, si perdono intrinsecamente alcuni aspetti del controllo.

Natura del problema

Il proprietario o l'amministratore di un computer può sempre accedere all'istanza di SQL Server installata nel suo computer. Se si implementa un'applicazione nel computer di un cliente, siccome tale cliente è l'amministratore, può connettersi a SQL Server come membro del ruolo predefinito del server sysadmin. Ciò include la possibilità di concedere autorizzazioni, gestire i backup (incluso il ripristino di backup in altri computer), decriptare e spostare i file di dati ecc. Per altre informazioni, vedere Connessione a SQL Server quando gli amministratori di sistema sono bloccati.

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.

Se i client non sono amministratori dei computer, è possibile impedire loro l'accesso. È possibile usare la crittografia dati trasparente per crittografare i file di dati e i backup, nonché per controllare le azioni di tutti gli utenti. Gli amministratori di SQL Server e gli amministratori del computer con SQL Server, tuttavia, possono annullare queste azioni.

Soluzione

Sono disponibili vari modi per configurare l'accesso ai dati client senza installare SQL Server nel computer client. Il modo più semplice probabilmente consiste nell'uso del Database SQL di Azure in modo che i client non siano amministratori, magari in combinazione con Always Encrypted. Per altre informazioni sui concetti introduttivi del Database SQL, vedere Cos’è il Database SQL? Introduzione al Database SQL.

È possibile anche ospitare un'istanza di SQL Server in rete e consentire ai client di accedere ai dati tramite la rete, direttamente o tramite un'applicazione Web.

Vedere anche

Centro sicurezza per il motore di Database di SQL Server e il Database SQL di Azure
Sicurezza di SQL Server