Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
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 Progettazione di 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. |
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 SAFE
e 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.
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.
È richiesta l'autorizzazione CONTROL SERVER
o l'appartenenza al ruolo predefinito del server sysadmin.
Sono necessarie le autorizzazioni seguenti per creare un assembly CLR con CLR strict security
abilitata:
L'utente deve disporre dell'autorizzazione CREATE ASSEMBLY
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.
L'esempio seguente mostra prima di tutto l'impostazione corrente dell'opzione clr strict security
, quindi impostare il valore su 1
(abilitato).
EXEC sp_configure 'clr strict security';
GO
EXEC sp_configure 'clr strict security' , '1';
RECONFIGURE;
GO
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoFormazione
Percorso di apprendimento
Implementare un ambiente sicuro per un servizio di database - Training
Implementare un ambiente sicuro per un servizio di database
Documentazione
sys.sp_add_trusted_assembly (Transact-SQL) - SQL Server
Aggiunge un assembly all'elenco di assembly attendibili per il server.
Sicurezza da accesso di codice dell'integrazione con CLR - SQL Server
Per l'integrazione con CLR di SQL Server, CLR supporta la sicurezza dell'accesso al codice gestito, in cui le autorizzazioni vengono concesse agli assembly in base all'identità del codice.
Errore durante l'esecuzione dell'oggetto CLR o della creazione dell'assembly - SQL Server
Questo articolo illustra come risolvere due diversi problemi che si verificano quando si muovono oggetti CLR in un database spostato da un'istanza diversa di SQL Server.