Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 EXTERNAL_ACCESS come se fossero contrassegnati UNSAFE. È 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.
EXECUTE sp_configure 'clr enabled';
EXECUTE sp_configure 'clr enabled', '1';
RECONFIGURE;