Configurazione del server: clr enabled
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.
Limiti
L'esecuzione di CLR (Common Language Runtime) non è supportata nell'ambito dell'opzione 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 Configurazione del server: lightweight pooling
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.
La sicurezza dall’accesso di codice non è più supportata
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. In SQL Server 2017 (14.x) e versioni successive, l'opzione sp_configure
clr strict security migliora 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.
Si consiglia di firmare tutti gli assembly con un certificato o una chiave asimmetrica tramite 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.
Esempi
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;