Dela via


Värdskyddsattribut och CLR-integreringsprogrammering

gäller för:SQL Server

Common Language Runtime (CLR) tillhandahåller en mekanism för att kommentera api:er (Managed Application Programming Interfaces) som ingår i .NET Framework. Dessa attribut kan vara av intresse för en värd för CLR, till exempel SQL Server. Exempel på sådana värdskyddsattribut (HPA) är:

  • SharedState, som anger om API:et gör det möjligt att skapa eller hantera delat tillstånd (till exempel statiska klassfält).

  • Synchronization, som anger om API:et gör det möjligt att utföra synkronisering mellan trådar.

  • ExternalProcessMgmt, som anger om API:et visar ett sätt att styra värdprocessen.

Med dessa attribut anger SQL Server en lista över HPA:er som inte tillåts i den värdbaserade miljön via kodåtkomstsäkerhet (CAS). CAS-kraven anges av en av tre SQL Server-behörighetsuppsättningar: SAFE, EXTERNAL_ACCESSeller UNSAFE. En av dessa tre säkerhetsnivåer anges när sammansättningen registreras på servern med hjälp av instruktionen CREATE ASSEMBLY. Kod som körs i behörighetsuppsättningarna SAFE eller EXTERNAL_ACCESS måste undvika vissa typer eller medlemmar som har System.Security.Permissions.HostProtectionAttribute-attributet tillämpat. Mer information finns i Create an assembly and CLR integration programming model restrictions.

HostProtectionAttribute är inte en säkerhetsbehörighet så mycket som ett sätt att förbättra tillförlitligheten, eftersom den identifierar specifika kodkonstruktioner, antingen typer eller metoder, som värden kanske inte tillåter. Användningen av HostProtectionAttribute framtvingar en programmeringsmodell som skyddar värdens stabilitet.

Värdskyddsattribut

HPA identifierar typer eller medlemmar som inte passar värdprogrammeringsmodellen och representerar följande ökande nivåer av tillförlitlighetshot:

  • Är annars godartade.
  • Kan leda till destabilisering av serverhanterad användarkod.
  • Kan leda till destabilisering av själva serverprocessen.

SQL Server tillåter inte användning av en typ eller medlem som har en HostProtectionAttribute som anger en System.Security.Permissions.HostProtectionResource uppräkning med värdet ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmt, SelfAffectingThreading, SharedState, Synchronization, Synchronizationeller . Detta förhindrar att sammansättningarna anropar medlemmar som aktiverar delningstillstånd, utför synkronisering, kan orsaka en resursläcka vid avslutning eller påverka integriteten i SQL Server-processen.

Otillåtna typer och medlemmar

Följande artiklar identifierar typer och medlemmar vars HostProtectionResource värden SQL Server inte tillåter.

Listorna i dessa artiklar genererades från de sammansättningar som stöds. Mer information finns i .NET Framework-bibliotek som stöds.

I det här avsnittet

Artikel Beskrivning
Otillåtna typer och medlemmar i Microsoft.VisualBasic.dll Visar de typer och medlemmar i Microsoft.VisualBasic.dll vars HPA-värden inte tillåts.
Otillåtna typer och medlemmar i mscorlib.dll Visar de typer och medlemmar i mscorlib.dll vars HPA-värden inte tillåts.
Otillåtna typer och medlemmar i System.dll Visar de typer och medlemmar i System.dll vars HPA-värden inte tillåts.
Otillåtna typer och medlemmar i System.Data.dll Visar de typer och medlemmar i System.Data.dll vars HPA-värden inte tillåts.
Otillåtna typer och medlemmar i System.Core.dll Visar de typer och medlemmar i System.Core.dll vars HPA-värden inte tillåts.