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
Controlla l'interpretazione delle autorizzazioni SAFE, EXTERNAL_ACCESS o UNSAFE in SQL Server. Per altre informazioni su queste autorizzazioni, vedere Progettare assembly.
| valore | Descrizione |
|---|---|
0 |
Disabilitati. Disponibile per compatibilità con le versioni precedenti. L'impostazione di questo valore su 0 non è consigliata. |
1 |
Abilitati. Indica al motore di database di ignorare le informazioni PERMISSION_SET sugli assembly e di interpretarli sempre come UNSAFE. In SQL Server 2017 (14.x) e versioni successive, 1 il valore predefinito. |
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, clr strict security considera SAFEe EXTERNAL_ACCESS assembly come se fossero contrassegnati come UNSAFE.
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.
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 questa opzione, si ridurranno al minimo le interruzioni nelle istruzioni di codice esistenti.
CLR strict security è di tipo advanced option.
Dopo l'abilitazione di strict security, tutti gli assembly non firmati non vengono 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
Modifica questa opzione
È richiesta l'autorizzazione CONTROL SERVER o l'appartenenza al ruolo predefinito del server sysadmin.
Creare un assembly CLR
Quando CLR strict security è abilitato, sono necessarie le autorizzazioni seguenti per creare un assembly CLR:
L'utente deve disporre dell'autorizzazione
CREATE ASSEMBLYUna 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 ASSEMBLYnel server. È consigliabile firmare l'assembly.La proprietà
TRUSTWORTHYdel database è impostata suONe il database è di proprietà di un accesso che dispone dell'autorizzazioneUNSAFE ASSEMBLYnel server. Questa opzione non è consigliata.
Esempi
L'esempio seguente mostra prima di tutto l'impostazione corrente dell'opzione clr strict security, quindi impostare il valore su 1 (abilitato).
EXECUTE sp_configure 'clr strict security';
GO
EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO