Delen via


Hostbeveiligingskenmerken en CLR-integratieprogrammering

van toepassing op:SQL Server-

De Common Language Runtime (CLR) biedt een mechanisme voor het maken van aantekeningen bij beheerde API's (Application Programming Interfaces) die deel uitmaken van .NET Framework. Deze kenmerken zijn mogelijk van belang voor een host van de CLR, zoals SQL Server. Voorbeelden van dergelijke hostbeveiligingskenmerken (HPA's) zijn:

  • SharedState, waarmee wordt aangegeven of de API de mogelijkheid biedt om een gedeelde status te maken of te beheren (bijvoorbeeld statische klassevelden).

  • Synchronization, waarmee wordt aangegeven of de API de mogelijkheid biedt om synchronisatie tussen threads uit te voeren.

  • ExternalProcessMgmt, waarmee wordt aangegeven of de API een manier beschikbaar maakt om het hostproces te beheren.

Op basis van deze kenmerken geeft SQL Server een lijst met HPA's op die niet zijn toegestaan in de gehoste omgeving via CAS (Code Access Security). De CAS-vereisten worden opgegeven door een van de drie SQL Server-machtigingensets: SAFE, EXTERNAL_ACCESSof UNSAFE. Een van deze drie beveiligingsniveaus wordt opgegeven wanneer de assembly is geregistreerd op de server, met behulp van de CREATE ASSEMBLY-instructie. Code die wordt uitgevoerd binnen de SAFE of EXTERNAL_ACCESS machtigingensets, moet voorkomen dat bepaalde typen of leden waarop het kenmerk System.Security.Permissions.HostProtectionAttribute is toegepast. Zie Create an assembly and CLR integration programming model restrictionsvoor meer informatie.

De HostProtectionAttribute is niet zozeer een beveiligingsmachtiging als een manier om de betrouwbaarheid te verbeteren, omdat hiermee specifieke codeconstructies, typen of methoden, worden geïdentificeerd die de host mogelijk niet toekent. Het gebruik van de HostProtectionAttribute dwingt een programmeermodel af waarmee de stabiliteit van de host wordt beschermd.

Kenmerken voor hostbeveiliging

HPA's identificeren typen of leden die niet passen bij het hostprogrammeermodel en vertegenwoordigen de volgende toenemende betrouwbaarheidsbedreigingen:

  • Zijn anders goedaardig.
  • Dit kan leiden tot een destabilisatie van door de server beheerde gebruikerscode.
  • Kan leiden tot een destabilisatie van het serverproces zelf.

SQL Server staat het gebruik van een type of lid met een HostProtectionAttribute toe waarmee een System.Security.Permissions.HostProtectionResource opsomming wordt opgegeven met de waarde ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmt, SelfAffectingThreading, SharedState, Synchronization, Synchronizationof . Hiermee voorkomt u dat de assembly's leden aanroepen die de status delen inschakelen, synchronisatie uitvoeren, een bronlek kunnen veroorzaken bij beëindiging of de integriteit van het SQL Server-proces beïnvloeden.

Niet-toegestane typen en leden

In de volgende artikelen worden typen en leden geïdentificeerd waarvan HostProtectionResource waarden die SQL Server niet toestaan.

De lijsten in deze artikelen zijn gegenereerd op basis van de ondersteunde assembly's. Zie Ondersteunde .NET Framework-bibliothekenvoor meer informatie.

In deze sectie

Artikel Beschrijving
niet-toegestane typen en leden in Microsoft.VisualBasic.dll Geeft een lijst weer van de typen en leden in Microsoft.VisualBasic.dll waarvan de HPA-waarden niet zijn toegestaan.
niet-toegestane typen en leden in mscorlib.dll Geeft een lijst weer van de typen en leden in mscorlib.dll waarvan de HPA-waarden niet zijn toegestaan.
niet-toegestane typen en leden in System.dll Geeft een lijst weer van de typen en leden in System.dll waarvan de HPA-waarden niet zijn toegestaan.
niet-toegestane typen en leden in System.Data.dll Geeft een lijst weer van de typen en leden in System.Data.dll waarvan de HPA-waarden niet zijn toegestaan.
niet-toegestane typen en leden in System.Core.dll Geeft een lijst weer van de typen en leden in System.Core.dll waarvan de HPA-waarden niet zijn toegestaan.