Protezione per l'integrazione con CLR

Il modello di protezione dell'integrazione di SQL Server con CLR (Common Language Runtime) di .NET Framework gestisce e protegge l'accesso tra i diversi tipi di oggetti CLR e non CLR in esecuzione in SQL Server. Tali oggetti possono essere chiamati dall'istruzione Transact-SQL o da un altro oggetto CLR in esecuzione nel server. Le chiamate tra gli oggetti vengono definite collegamenti. I tipi di controllo della protezione eseguiti su questi oggetti dipendono dai tipi di collegamento utilizzati.

Il modello di protezione dell'integrazione con CLR presenta gli obiettivi seguenti:

  • Per impostazione predefinita, l'esecuzione del codice utente gestito in SQL Server non deve compromettere l'integrità e la stabilità di SQL Server. L'esecuzione di operazioni che potenzialmente compromettono l'affidabilità di SQL Server deve essere protetta grazie alle autorizzazioni di livello elevato appropriate.

  • Non è consigliabile concedere al codice utente gestito l'accesso non autorizzato ai dati dell'utente o ad altro codice dell'utente nel database. Il codice definito dall'utente deve essere eseguito nel contesto di protezione della sessione utente che lo ha richiamato e con i privilegi corretti per il contesto di protezione in questione.

  • È necessario effettuare controlli per limitare al codice utente l'accesso alle risorse esterne al server consentendone l'utilizzo esclusivamente per il calcolo e l'accesso ai dati locali.

  • Non è consigliabile concedere al codice definito dall'utente l'accesso non autorizzato alle risorse di sistema solo perché è in esecuzione nel processo di SQL Server.

SQL Server integra ora il modello di protezione basato sull'utente di SQL Server con il modello di protezione basato sull'accesso al codice di CLR. Alcuni dei vantaggi di questo approccio combinato alla protezione vengono esaminati nella presente sezione.

Nella tabella seguente vengono elencati gli argomenti disponibili in questa sezione.