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_ACCESS
of 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
, Synchronization
of . 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. |