CLR strict security

Si applica a:SQL Server

Controlla l'interpretazione delle autorizzazioni SAFE, EXTERNAL ACCESS e UNSAFE in SQL Server.

Valore Descrizione
0 Disabilitata: mantenuta per compatibilità con le versioni precedenti. Il valore Disabled non è consigliato.
1 Abilitata: indica al motore di database di ignorare le informazioni PERMISSION_SET sugli assembly e di interpretarli sempre come UNSAFE. A partire da SQL Server 2017 (14.x), il valore predefinito è Enabled.

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.

Osservazioni:

Quando abilitata, l'opzione PERMISSION_SET nelle istruzioni CREATE ASSEMBLY e ALTER ASSEMBLY viene ignorata durante l'esecuzione, ma le opzioni PERMISSION_SET vengono mantenute nei metadati. Ignorando l'opzione, si ridurranno al minimo le interruzioni nelle istruzioni di codice esistenti.

CLR strict security è di tipo advanced option.

Importante

Dopo l'abilitazione di strict security, tutti gli assembly non firmati non verranno caricati. È necessario modificare oppure eliminare e ricreare ogni assembly in modo che sia firmato con un certificato o una chiave asimmetrica con un account di accesso corrispondente con l'autorizzazione UNSAFE ASSEMBLY nel server.

Autorizzazioni

Per modificare questa opzione

È richiesta l'autorizzazione CONTROL SERVER o l'appartenenza al ruolo predefinito del server sysadmin.

Per creare un assembly CLR

Sono necessarie le autorizzazioni seguenti per creare un assembly CLR con CLR strict security abilitata:

  • L'utente deve disporre dell'autorizzazione CREATE ASSEMBLY
  • Inoltre, una delle condizioni seguenti deve essere rispettata:
    • L'assembly è firmato con un certificato o una chiave asimmetrica con un account di accesso corrispondente con l'autorizzazione UNSAFE ASSEMBLY nel server. È consigliabile firmare l'assembly.
    • La proprietà TRUSTWORTHY del database è impostata su ON e il database è di proprietà di un accesso che dispone dell'autorizzazione UNSAFE ASSEMBLY nel server. Questa opzione non è consigliata.

Vedi anche

Opzioni di configurazione del server (SQL Server)
sp_configure (Transact-SQL)
Opzione di configurazione del server clr enabled