Cerca
Close this search box.
Cerca
Close this search box.
SQL Server

Licenze per Microsoft SQL Server: una guida

Termini, modalità e calcolo delle licenze

Come orientarsi nel licensing di SQL Server: terminologia di base, modalità di concessione delle licenze, il numero di istanze eseguibili e calcolo delle licenze.

SQL Server è un DBMS (Database Management System) relazionale sviluppato da Microsoft e viene utilizzato per gestire database dalle dimensioni e strutture più disparate. Insieme a Oracle Database e MySQL è una delle piattaforme per basi dati più diffuse al mondo grazie alle sue caratteristiche e funzionalità per l’archiviazione, l’elaborazione, l’analisi e la sicurezza dei dati.

Può essere utilizzato per vari scopi, come lo sviluppo di applicazioni, l’esecuzione di siti web, l’hosting di magazzini di dati o per supportare soluzioni di Business Intelligence. Tra i prodotti MS è spesso considerato il più “ostico” a causa delle sue regole di licenza non semplici e in continua evoluzione.

Prima di addentrarci nel licensing per SQL Server, teniamo presente che ogni versione ed edizione di SQL ha specifici termini di licenza, diritti e funzionalità.

La terminologia di base in riferimento a SQL Server

Vediamo meglio le differenze tra edizione e versione e le caratteristiche funzionali.

  • Versione: si tratta di una distribuzione di SQL Server che viene periodicamente aggiornata con migliori funzioni e performance e maggiori affidabilità e sicurezza. L’ultima versione pubblica è SQL Server 2022, disponibile da gennaio 2023, che Microsoft definisce “the most Azure enabled release”, ovvero la release di SQL Server maggiormente predisposta all’integrazione con Azure. Altre versioni precedenti sono 2019, 2017, 2016, 2014 ecc.: ad esempio la versione 2014, già End Of Life (EOL), ha iniziato la fase di Extended Security Updates (ESUs) il 9 luglio 2024.


Quasi sempre all’interno di contratti multi-licenza e CSP è possibile sfruttare il downgrade right, ovvero si ha il diritto di utilizzare versioni rilasciate in precedenza senza doverle acquistare: ad esempio, se si acquista oggi attraverso MPSA il prodotto SQL Server 2022, si può eseguire il downgrade dell’istanza a qualsiasi delle edizioni precedenti. 

  • Edizione: si tratta delle varie tipologie di piattaforma SQL Server con scopi, funzionalità e prezzi differenti. Le edizioni gratuite disponibili con la versione più aggiornata di SQL Server sono la Express e la Developer, mentre a pagamento troviamo le edizioni Standard ed Enterprise. Sono inoltre disponibili una serie di edizioni specializzate come Azure SQL Database, completamente in cloud e anche una Web Edition, un’opzione a costo totale di proprietà ridotto per provider di servizi di hosting web, che però è disponibile solo attraverso il Microsoft Services Provider License Agreement (SPLA).


Vediamo meglio le principali, dividendole in gratuite e commerciali:

Opzioni gratuite

  • Developer Edition: offre strumenti per sviluppatori, è completamente gratuita, per ottenerla bisogna registrarsi per scaricarla. Non è consentita per alcun carico di lavoro di produzione, ma solo per lo sviluppo.
  • Express Edition: si tratta di un’edizione gratuita e senza particolari vincoli di utilizzo ma che presenta limiti tecnici di memoria e delle funzionalità di base adatta per applicazioni embedded e progetti di scala ridotta.


Opzioni commerciali

  • Standard ed Enterprise: si tratta delle due edizioni principali di SQL, che l’una dall’altra differiscono per caratteristiche tecniche.


La Standard, infatti, è più adatta per progetti semplici in cui non sono richieste funzionalità avanzate di analisi dati, sicurezza e gestione; è una scelta cost-effective per implementazioni con esigenze moderate di prestazioni e scalabilità.

L’edizione Enterprise, invece, comprende tutte le funzionalità di base della Standard Edition più altri strumenti tipici dei database di alta fascia con prestazioni velocissime, virtualizzazione illimitata, elementi di business intelligence end-to-end allo scopo di «abilitare livelli di servizio elevati per carichi di lavoro cruciali e l’accesso dell’utente finale alle informazioni dettagliate sui dati»

Per quanto riguarda il downgrade delle edizioni, c’è una regola di base: se assegni una licenza SQL Server Enterprise a un host, puoi eseguire al suo interno sia un’istanza SQL Server Enterprise sia un’istanza SQL Server Standard.

Non è possibile invece il contrario, perché la SQL Server Standard è un’edizione considerata “più piccola” e non può quindi contenere SQL Server Enterprise. Unica eccezione a quando appena scritto è rappresentata dall’AHB (Azure Hybrid Use Benefit) dove è possibile coprire istanze Enterprise con licenze Standard applicando ai core utilizzati un moltiplicatore di 4 (ovvero servono 4 core Standard per coprire 1 core Enterprise).

Modalità di concessione in licenza

La prima e più importante differenza in termini di licensing tra SQL Server Standard e SQL Enterprise è la modalità di licenza. Con l’edizione Standard è possibile scegliere sia il modello Server+CAL sia la licenza per core, mentre SQL Server Enterprise è disponibile solo tramite il modello di licenza per core*. 

*Attenzione: il fatto che le licenze SQL Server Standard Core ed Enterprise Core vengano vendute in pacchetti dual core può creare confusione. Se a Microsoft si dice che si vogliono 88 licenze, considerando che vengono venduti in pacchetti da due core (e quindi due licenze), si rischia di acquistarne il doppio.

Come abbiamo anticipato prima, le licenze si possono concedere in due modi:

  • Server+CAL (licenza di accesso server+licenze di accesso client)

Al momento solo SQL Server Standard dispone di questo modello di licenza.

Chi ha acquistato licenze SQL Server Enterprise con il modello Server+CAL prima del 1 aprile 2012 può ancora rinnovare, indipendentemente dal fatto che la garanzia Software Assurance (SA) sia stata rinnovata o meno, ma non può acquistare nuove licenze. 

La concessione di licenze SQL secondo il modello Client Access Licenses (CAL), come specificato nei diritti di utilizzo del prodotto, richiede che ogni istanza di SQL (virtuale o fisica) sia coperta da una singola licenza di SQL Server e che ogni utente e/o dispositivo che accede direttamente o indirettamente a un server SQL con licenza debba avere una licenza CAL (user/device CAL) di SQL Server della stessa versione o più recente. Per esempio, per accedere a un server SQL Server 2019 Standard Edition, un utente avrà bisogno di una CAL di SQL Server 2019 o 2022.

Ricordiamoci di considerare la regola del multiplexing: l’inserimento di tecnologia tra DBMS e consumatore non riduce mai il numero delle licenze richieste: è nel caso, ad esempio, di un utente o un dispositivo che accede a un server SharePoint supportato da SQL (quindi non direttamente) in cui serve una CAL SQL.

C’è da sottolineare che le CAL per SQL server non vengono mai fornite in bundle con altre CAL e non hanno alcun equivalente: questo implica che debbano essere acquistate in modo esplicito come SQL Server CAL (ad esempio Office 365 non le include e così pure i pacchetti Core CAL ed Enterprise CAL).

Un altro aspetto importante è che non sono previsti connettori esterni: se si ha più di 20 utenti per core o non sono quantificabili perché ad accedere al server è l’intera internet con carichi di lavoro Internet/Extranet o sistemi che si integrano con carichi di lavoro esterni, è necessaria (ma anche più economica) la licenza core dove non è necessario contare gli utenti e i dispositivi che accedono al server. Cosa invece che con le CAL va fatto, con il conto tenuto individualmente.

La regola empirica è quindi quella di guardare in modo critico quanti utenti e dispositivi si hanno in attivo che accedono indirettamente al server SQL e se questo numero crescerà nel prossimo periodo.

N.B. avvertenza sulla Software Assurance (SA): se una funzione richiede la SA sulla licenza dell’istanza di SQL Server, è probabile che richieda la SA anche per le CAL. Ad esempio, SQL Failover richiede SA sia per l’istanza che per le CAL. 

  • SQL per core

Questo modello fornisce ai clienti una misura più precisa della potenza di calcolo e una metrica di licenza più coerente, indipendentemente dal fatto che le soluzioni siano distribuite su server fisici on-premises oppure in ambienti virtuali o cloud.

A differenza del modello Server+CAL non richiede licenze di accesso client, ma invece di concedere in licenza SQL per server, lo fa per ogni core del server che esegue SQL Server. Esistono formule specifiche e avvertenze per calcolare il numero richiesto di licenze core di SQL server.

Per ottenere la licenza di SQL Server con questo modello, è necessario contare il numero totale di core del server e acquistare il numero appropriato di licenze per core (vendute in confezioni da due).

Numero di istanze eseguibili con i due diversi modelli di licenza

Quando si assegna la licenza SQL Server a un’istanza SQL quello che si fa è essenzialmente assegnarla al sistema operativo in cui viene eseguito SQL Server, che può essere fisico o virtuale (vedi concetto di virtualizzazione: le VM, che sono “finti pc” che contengono sistemi operativi virtuali, possono venire eseguite all’interno di un sistema operativo fisico, detto “host” perché ospita VM).

  • Server+CAL: numero di istanze


Due considerazioni su questo modello:

1) la concessione di una licenza a un’istanza (una copia del file eseguibile del server eseguita come servizio del sistema operativo) non differisce a seconda che il sistema operativo sia in una VM o fisico

2) i Containers o contenitori, che raggruppano e isolano le applicazioni insieme ai file necessari per l’esecuzione in una sorta di “bolla”, possono funzionare sia all’interno di un sistema operativo fisico ma possono anche essere nidificati in macchine virtuali. In questo modello però ogni contenitore viene trattato come un ambiente di sistema operativo (OSE) virtuale separato (e non come un’altra macchina virtuale come nelle edizioni precedenti al 2022).   

  • differenze tra Standard ed Enterprise (con o senza SA) all’interno di questo modello


Nell’edizione Standard, una singola licenza SQL assegnata a un OSE consente di eseguire un numero illimitato di istanze SQL Server Standard all’interno dello stesso OSE. Se si hanno quattro applicazioni con requisiti simili (ad esempio richiedono tutte SQL Server Standard 2019), si può installare SQL server quattro volte nello stesso sistema operativo sotto un’unica licenza, con notevole risparmio dei costi.

Per quanto riguarda l’edizione Enterprise, ricordiamo che non può essere più acquistata con il modello Server+CAL ma ci sono organizzazioni con licenze esistenti e rinnovi continui (con o senza SA).

A prescindere o meno che si abbia rinnovato la SA, con un’Enterprise Edition che prevede questo modello di licenza, ci sono dei vincoli:

1) puoi eseguire un numero illimitato di istanze in un massimo di quattro ambienti di sistema operativo (macchine virtuali o container)
2) ci sono delle limitazioni HW: fino a massimo 20 core in caso di OSE fisico e fino a 20 hardware thread in caso di OSE virtuale 

  • Core: numero di istanzeCi sono tre possibili scenari in caso di SQL Server Standard senza SA:

1) se si concede una licenza per core fisici, questa copre tutte le istanze all’interno del sistema operativo fisico. I container non sono inclusi, in quanto sono considerati VM

2) la stessa licenza non può essere assegnata alle macchine virtuali e ai container (questo era possibile nelle versioni precedenti SQL Server 2019, 2017, 2016, 2014, 2012). La concessione per VM o per contenitore è prevista solo nel caso si abbia SA (o abbonamento CSP che è l’equivalente).  

Quindi in caso di SQL Server Standard con SA si hanno istanze illimitate all’interno del sistema operativo fisico, ma anche le VM e i contenitori all’interno del sistema operativo virtuale. Nell’altro modello i contenitori venivano trattati come macchine virtuali separate e quindi richiedono un set di licenze separate quindi in caso di ambienti fortemente containerizzati le licenze con SA attiva rappresentano una concreta opzione di risparmio perché non è più necessario contarli.

Se si ha SQL Server Enterprise con SA, si può concedere licenziare ogni core nell’host fisico ed eseguire su quest’ultimo un numero illimitato di macchine virtuali e contenitori. Questa è l’opzione migliore per le realtà che desiderano la virtualizzazione illimitata e hanno ambienti fortemente containerizzati.

Senza SA, infatti, ci sono dei limiti: il numero di macchine virtuali e contenitori da seguire non possono essere superiori al numero di licenze assegnate all’host (es. se un host ha 12 core, il numero di macchine virtuali è limitato a 24). Se si assegna SQL Server Enterprise senza SA a contenitori bisogna prestare attenzione: in questo caso vengono gestiti come macchine virtuali separate.

Calcolo delle licenze core


Quando si esegue SQL Server in un OSE fisico
, tutti i core fisici del server devono essere dotati di licenza. In questo caso è necessario un minimo di quattro licenze core per ogni processore fisico del server. Quindi si osservano le caratteristiche della CPU, si contano i core fisici di una CPU e si assegnano almeno quattro licenze per CPU.

Bisogna ricordarsi che le licenze core sono vendute in confezioni da due, quindi bisogna dividere il numero di licenze richieste per due per determinare il numero effettivo di SKU di licenza da ordinare.

In questo caso la situazione è leggermente diversa: vanno contati i core virtuali (vCPUs) ricordando che il numero di licenze richieste ha un minimo di 4. Di conseguenza se l’OSE virtuale ha 2 vCPUs va comunque licenziato a quattro.

N.B. Se le vCPU sono supportate da più thread HW quest’ultimi vanno contati, ma si tratta di una situazione poco frequente: di solito gli hypervisor più diffusi tipo VMware o HyperV, una volta riavviati per abilitare l’hyperthreading, avranno tutte le vCPU mappate su un singolo thread.

Altri elementi da considerare

Il tema delle licenze SQL è molto vasto e ci sono diversi argomenti da considerare. Ne accenniamo brevemente alcuni: 

  • Mobilità delle licenze

Gli host possono venire combinati in più cluster e questo per il semplice motivo che se un host si guasta le macchine virtuali possono essere spostate su un altro host. Ma potrebbe verificarsi la situazione per cui le macchine virtuali si muovono ma le licenze assegnate non possono farlo: quando questo diritto è previsto si parla di mobilità delle licenze, ovvero della capacità della licenza di spostarsi insieme alla macchina virtuale.

La licenza di un’istanza virtuale richiede una SA se il server virtuale si sposta tra gli host più di una volta ogni 90 giorni. Questo vantaggio è chiamato Mobilità delle licenze tra Farm di server.

Si tratta di un tema importante in caso di audit, con la verifica della conformità da parte del vendor: in caso di spostamenti di macchine virtuali, bisogna assicurarsi che le licenze coprano anche lo spostamento.

  • Disaster Recovery e continuità

Uno dei vantaggi di SA più richiesti è la possibilità di implementare architetture di High Availability e Disaster Recovery: in previsione di eventi di failover è possibile installare ed eseguire istanze passive in OSE o server separati in sede o in Azure per il ripristino d’emergenza. Per quanto riguarda la necessità di licenziare i nodi, bisogna tenere presente che:

  1. in caso di cluster Attivo-Attivo tutti e due i server richiedono licenza
  2. in caso di Attivo-Passivo il passivo non paga
  3. È possibile avere fino a due istanze gratuite di Microsoft SQL Server con SA attiva per ogni istanza con licenza ma devono essere devono essere veramente passive. E la seconda istanza può essere utilizzata, in modo semplificato, solo per lo standby a freddo. In caso di più di due istanze è richiesta licenza. 
     
  • Componenti SQL concedibili in licenza


Le varie funzioni di SQL possono essere separate su più server. Alcune di queste funzioni non richiedono licenze, ma altre sì. I seguenti sono i componenti di SQL soggetti a licenza:

1) SQL Server Analysis Services SQL

2) Server Reporting Services SQL

3)  Server Integrations Services

Ogni server con una funzione di SQL licenziabile richiede una propria licenza SQL, anche se tutti i server anche se lavorano tutti sullo stesso database. Di conseguenza se un database è in esecuzione su un server, i servizi di analisi su un secondo server e i servizi di reporting su un terzo server, tutti e tre i server richiedono licenze separate. 

In WEGG siamo consulenti esperti di licensing Microsoft (SQL Server compreso), per cui se avete bisogno di supporto per effettuare il calcolo delle licenze necessarie, verificare la posizione di conformità e ottimizzare i costi legati alla spesa per SQL Server contattateci per una consulenza!

02-s pattern02

Hai bisogno di supporto sulla gestione delle licenze per SQL Server?

CONTATTACI PER APPROFONDIRE!