Sdílet prostřednictvím


Atributy ochrany hostitelů a programování integrace CLR

platí pro:SQL Server

Modul CLR (Common Language Runtime) poskytuje mechanismus pro přidávání poznámek k programovacím rozhraním spravovaných aplikací (API), která jsou součástí rozhraní .NET Framework. Tyto atributy můžou být zajímavé pro hostitele modulu CLR, jako je SQL Server. Mezi příklady takových atributů ochrany hostitele (HPA) patří:

  • SharedState, což označuje, jestli rozhraní API zpřístupňuje schopnost vytvářet nebo spravovat sdílený stav (například statická pole tříd).

  • Synchronization, který označuje, zda rozhraní API zpřístupňuje schopnost provádět synchronizaci mezi vlákny.

  • ExternalProcessMgmt, který označuje, jestli rozhraní API zpřístupňuje způsob řízení hostitelského procesu.

Vzhledem k těmto atributům SQL Server určuje seznam hpA, které jsou v hostovaném prostředí zakázány prostřednictvím zabezpečení přístupu kódu (CAS). Požadavky CAS jsou určeny jednou ze tří sad oprávnění SQL Serveru: SAFE, EXTERNAL_ACCESSnebo UNSAFE. Jedna z těchto tří úrovní zabezpečení je zadána při registraci sestavení na serveru pomocí příkazu CREATE ASSEMBLY. Kód spuštěný v rámci sady oprávnění SAFE nebo EXTERNAL_ACCESS se musí vyhnout určitým typům nebo členům, které mají použitý atribut System.Security.Permissions.HostProtectionAttribute. Další informace najdete v tématu Vytvoření sestavení a omezení programovacího modelu integrace CLR.

HostProtectionAttribute není oprávnění zabezpečení stejně jako způsob, jak zvýšit spolehlivost, v tom, že identifikuje konkrétní konstrukce kódu, buď typy nebo metody, které může hostitel zakázat. Použití HostProtectionAttribute vynucuje programovací model, který pomáhá chránit stabilitu hostitele.

Atributy ochrany hostitele

HpA identifikují typy nebo členy, které neodpovídají programovacímu modelu hostitele, a představují následující zvyšující se úrovně hrozby spolehlivosti:

  • Jsou jinak neškodné.
  • Mohlo by vést k deaktivaci uživatelského kódu spravovaného serverem.
  • Mohlo by vést k deaktivaci samotného procesu serveru.

SQL Server zakáže použití typu nebo člena, který má HostProtectionAttribute, který určuje System.Security.Permissions.HostProtectionResource výčtu s hodnotou ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, SharedState, Synchronizationnebo UI. Tím zabráníte sestavením volat členy, které umožňují stav sdílení, provádět synchronizaci, způsobit únik prostředků při ukončení nebo ovlivnit integritu procesu SQL Serveru.

Nepovolené typy a členy

Následující články identifikují typy a členy, jejichž HostProtectionResource hodnoty SQL Server nepovoluje.

Seznamy v těchto článcích byly generovány z podporovaných sestavení. Další informace naleznete v tématu Podporované knihovny rozhraní .NET Framework.

V této části

Článek Popis
nepovolené typy a členy v Microsoft.VisualBasic.dll Zobrazí seznam typů a členů v Microsoft.VisualBasic.dll, jejichž hodnoty HPA jsou zakázány.
nepovolené typy a členy v mscorlib.dll Zobrazí seznam typů a členů v mscorlib.dll, jejichž hodnoty HPA jsou zakázány.
nepovolené typy a členy v System.dll Zobrazí seznam typů a členů v System.dll, jejichž hodnoty HPA jsou zakázány.
nepovolené typy a členy v System.Data.dll Zobrazí seznam typů a členů v System.Data.dll, jejichž hodnoty HPA jsou zakázány.
nepovolené typy a členy v System.Core.dll Zobrazí seznam typů a členů v System.Core.dll, jejichž hodnoty HPA jsou zakázány.