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 suON
e il database è di proprietà di un accesso che dispone dell'autorizzazioneUNSAFE ASSEMBLY
nel server. Questa opzione non è consigliata.
- L'assembly è firmato con un certificato o una chiave asimmetrica con un account di accesso corrispondente con l'autorizzazione
Vedi anche
Opzioni di configurazione del server (SQL Server)
sp_configure (Transact-SQL)
Opzione di configurazione del server clr enabled
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per