clr enabled (opzione di configurazione del server)

Si applica a:SQL Server

Usare l'opzione clr enabled per specificare se gli assembly utente possono essere eseguiti in SQL Server. L'opzione clr enabled restituisce i valori indicati di seguito:

Valore Descrizione
0 Esecuzione degli assembly non consentita in SQL Server.
1 Esecuzione degli assembly consentita in SQL Server.

Solo per WOW64: riavviare i server WOW64 per applicare queste modifiche. Per altri tipi di server il riavvio non è necessario.

Quando si esegue RECONFIGURE e il valore dell'opzione clr enabled viene modificato da 1 a 0, vengono scaricati immediatamente tutti i domini dell'applicazione contenenti assembly utente.

Importante

Esecuzione CLR (Common Language Runtime) non supportata quando è attivo il lightweight pooling. Disabilitare una delle due opzioni "clr enabled" o "lightweight pooling". Le caratteristiche che si basano su CLR e che non funzionano correttamente in modalità fiber includono il tipo di dati hierarchyid, la funzione FORMAT, la replica e la gestione basata su criteri. Per altre informazioni, vedere Opzione di configurazione del server lightweight pooling

Avviso

CLR usa la Sicurezza dall'accesso di codice (CAS, Code Access Security) in .NET Framework, non più supportata come limite di sicurezza. Un assembly CLR creato con PERMISSION_SET = SAFE potrebbe essere in grado di accedere alle risorse di sistema esterne, chiamare codice non gestito e acquisire privilegi sysadmin. A partire da SQL Server 2017 (14.x), è disponibile un'opzione sp_configure denominata clr strict security che consente di incrementare la sicurezza degli assembly CLR. clr strict security è abilitata per impostazione predefinita e considera gli assembly CLR SAFE e UNSAFE come se fossero contrassegnati EXTERNAL_ACCESS. È possibile disabilitare l'opzione clr strict security per la compatibilità con le versioni precedenti, ma questa operazione è sconsigliata. Microsoft consiglia che tutti gli assembly siano firmati con un certificato o una chiave asimmetrica con un account di accesso corrispondente che disponga dell'autorizzazione UNSAFE ASSEMBLY nel database master. Gli amministratori di SQL Server possono anche aggiungere assembly a un elenco di assembly, considerato attendibile dal motore di database. Per altre, vedere sys.sp_add_trusted_assembly.

Nota

Anche se l'opzione di configurazione clr enabled è abilitata nel Database SQL di Azure, lo sviluppo di funzioni utente CLR non è supportato nel Database SQL di Azure.

Esempio

L'esempio seguente mostra prima di tutto l'impostazione corrente dell'opzione clr enabled, quindi abilita l'opzione impostandone il valore su 1. Per disabilitare l'opzione, impostare il valore su 0.

EXEC sp_configure 'clr enabled';  
EXEC sp_configure 'clr enabled' , '1';  
RECONFIGURE;    

Passaggi successivi