Condividi tramite


Introduzione all'integrazione con CLR di SQL Server

Common Language Runtime (CLR) è il fulcro di .NET Framework e fornisce l'ambiente di esecuzione per tutto il codice .NET Framework. Il codice eseguito all'interno di CLR viene definito codice gestito. CLR fornisce varie funzioni e servizi necessari per l'esecuzione del programma, incluse le funzioni di compilazione JIT (Just-In-Time), di allocazione e gestione della memoria, di imposizione dell'indipendenza dai tipi, di gestione delle eccezioni, di gestione dei thread e di sicurezza.

Con CLR ospitato in Microsoft SQL Server (denominato integrazione CLR), è possibile creare stored procedure, trigger, funzioni definite dall'utente, tipi definiti dall'utente e aggregazioni definite dall'utente nel codice gestito. Poiché il codice gestito viene compilato in codice nativo prima dell'esecuzione, è possibile ottenere aumenti significativi delle prestazioni in alcuni scenari.

Il codice gestito in esecuzione in .NET Framework usa code access security (CAS), collegamenti di codice e domini applicazione per impedire agli assembly di eseguire determinate operazioni. SQL Server usa il sito di amministrazione centrale per proteggere il codice gestito e impedire la compromissione del sistema operativo o del server di database.

Annotazioni

La sicurezza dall'accesso al codice è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate a CAS. Gli sviluppatori devono cercare mezzi alternativi per eseguire attività di sicurezza.

Questa sezione è destinata a fornire solo informazioni sufficienti per iniziare a programmare con l'integrazione CLR di SQL Server e non deve essere completa. Per informazioni più dettagliate, vedere Cenni preliminari sull'integrazione di Common Language Runtime (CLR).

Abilitazione dell'integrazione con CLR

La funzionalità di integrazione CLR (Common Language Runtime) è disattivata per impostazione predefinita in Microsoft SQL Server e deve essere abilitata per usare gli oggetti implementati tramite l'integrazione CON CLR. Per abilitare l'integrazione con CLR tramite Transact-SQL, usare l'opzione clr enabled della stored procedure sp_configure come mostrato di seguito.

sp_configure 'clr enabled', 1  
GO  
RECONFIGURE  
GO  

È possibile disabilitare l'integrazione CLR impostando l'opzione clr enabled su 0. Quando si disabilita l'integrazione con CLR, SQL Server arresta l'esecuzione di tutte le routine CLR e scarica tutti i domini applicazione.

Per informazioni più dettagliate, vedere Abilitazione dell'integrazione con CLR.

Distribuzione di un assembly CLR

Dopo che i metodi CLR sono stati testati e verificati nel server di test, possono essere distribuiti ai server di produzione usando uno script di distribuzione. Lo script di distribuzione può essere generato manualmente o tramite SQL Server Management Studio. Per informazioni più dettagliate, vedere la versione della documentazione di SQL Server per la versione di SQL Server in uso.

Documentazione di SQL Server

  1. Distribuzione di oggetti di database CLR

Sicurezza nell'integrazione CLR

Il modello di sicurezza dell'integrazione di Microsoft SQL Server con Microsoft .NET Framework Common Language Runtime (CLR) gestisce e protegge l'accesso tra diversi tipi di oggetti CLR e non CLR in esecuzione in SQL Server. Questi oggetti possono essere chiamati da un'istruzione Transact-SQL o da un altro oggetto CLR in esecuzione nel server.

Per informazioni più dettagliate, vedere Sicurezza dell'integrazione con CLR.

Eseguire il debug di un assembly CLR

Microsoft SQL Server fornisce il supporto per il debug di oggetti Transact-SQL e CLR (Common Language Runtime) nel database. Il debug funziona in linguaggi diversi: gli utenti possono eseguire operazioni semplici in oggetti CLR da Transact-SQL e viceversa.

Per informazioni più dettagliate, vedere Debug di oggetti di database CLR.

Vedere anche