Condividi tramite


Attributi di protezione host e programmazione di integrazione CLR

Si applica a:SQL Server

Common Language Runtime (CLR) fornisce un meccanismo per annotare le API (Managed Application Programming Interface) che fanno parte di .NET Framework. Questi attributi potrebbero essere di interesse per un host di CLR, ad esempio SQL Server. Di seguito sono riportati alcuni esempi di attributi di protezione host:

  • SharedState, che indica se l'API espone la possibilità di creare o gestire lo stato condiviso (ad esempio, campi di classe statici).

  • Synchronization, che indica se l'API espone la possibilità di eseguire la sincronizzazione tra thread.

  • ExternalProcessMgmt, che indica se l'API espone un modo per controllare il processo host.

Dato questi attributi, SQL Server specifica un elenco di HPA non consentiti nell'ambiente ospitato tramite la sicurezza dell'accesso al codice. I requisiti cas vengono specificati da uno dei tre set di autorizzazioni di SQL Server: SAFE, EXTERNAL_ACCESSo UNSAFE. Uno di questi tre livelli di sicurezza viene specificato quando l'assembly viene registrato nel server, usando l'istruzione CREATE ASSEMBLY. Il codice in esecuzione all'interno dei set di autorizzazioni SAFE o EXTERNAL_ACCESS deve evitare determinati tipi o membri con l'attributo System.Security.Permissions.HostProtectionAttribute applicato. Per altre informazioni, vedere Creare un di assembly e restrizioni del modello di programmazione dell'integrazione CLR.

Il HostProtectionAttribute non è un'autorizzazione di sicurezza tanto quanto un modo per migliorare l'affidabilità, in quanto identifica costrutti di codice specifici, tipi o metodi, che l'host potrebbe non consentire. L'uso del HostProtectionAttribute applica un modello di programmazione che consente di proteggere la stabilità dell'host.

Attributi di protezione host

Gli HPA identificano i tipi o i membri che non soddisfano il modello di programmazione host e rappresentano i livelli crescenti di minaccia per l'affidabilità seguenti:

  • Sono altrimenti innocui.
  • Possono determinare la destabilizzazione del codice utente gestito dal server.
  • Possono determinare la destabilizzazione del processo del server stesso.

SQL Server non consente l'uso di un tipo o di un membro con un HostProtectionAttribute che specifica un'enumerazione System.Security.Permissions.HostProtectionResource con un valore di ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, SharedState, Synchronizationo UI. In questo modo si impedisce agli assembly di chiamare membri che consentono la condivisione dello stato, eseguono sincronizzazioni, possono causare perdite di risorse al momento della terminazione o compromettono l'integrità del processo di SQL Server.

Tipi e membri non consentiti

Gli articoli seguenti identificano tipi e membri i cui valori di HostProtectionResource SQL Server non sono consentiti.

Gli elenchi in questi articoli sono stati generati dagli assembly supportati. Per altre informazioni, vedere librerie .NET Framework supportate.

In questa sezione

Articolo Descrizione
Tipi e membri non consentiti in Microsoft.VisualBasic.dll Vengono elencati i tipi e i membri di Microsoft.VisualBasic.dll, i cui valori degli attributi di protezione host non sono consentiti.
Tipi e membri non consentiti in mscorlib.dll Elenca i tipi e i membri in mscorlib.dll, i cui valori degli attributi di protezione host non sono consentiti.
Tipi e membri non consentiti in System.dll Elenca i tipi e i membri in System.dll, i cui valori degli attributi di protezione host non sono consentiti.
Tipi e membri non consentiti in System.Data.dll Elenca i tipi e i membri in System.Data.dll, i cui valori degli attributi di protezione host non sono consentiti.
Tipi e membri non consentiti in System.Core.dll Elenca i tipi e i membri in System.Core.dll, i cui valori degli attributi di protezione host non sono consentiti.