Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Common Language Runtime (CLR) bietet einen Mechanismus zum Kommentieren verwalteter Anwendungsprogrammierschnittstellen (Application Programming Interfaces, APIs), die Teil von .NET Framework sind, mit bestimmten Attributen, die für einen Host der CLR von Interesse sein können, z. B. SQL Server, beginnend mit SQL Server 2005. Beispiele für solche Hostschutzattribute sind:
SharedState, der angibt, ob die API die Möglichkeit zum Erstellen oder Verwalten des freigegebenen Zustands (z. B. statische Klassenfelder) verfügbar macht.Synchronization, der angibt, ob die API die Möglichkeit zur Ausführung der Synchronisierung zwischen Threads verfügbar macht.ExternalProcessMgmt, der angibt, ob die API eine Möglichkeit zum Steuern des Hostprozesses verfügbar macht.
Aufgrund dieser Attribute gibt SQL Server eine Liste von HPAs an, die in der gehosteten Umgebung durch Codezugriffssicherheit (CAS) unzulässig sind. Die CAS-Anforderungen werden durch einen von drei SQL Server-Berechtigungssätzen angegeben: SAFE, EXTERNAL_ACCESSoder UNSAFE. Eine dieser drei Sicherheitsstufen wird angegeben, wenn die Assembly auf dem Server mithilfe der CREATE ASSEMBLY-Anweisung registriert ist. Code, der innerhalb der SAFE oder EXTERNAL_ACCESS Berechtigungssätze ausgeführt wird, muss bestimmte Typen oder Member vermeiden, auf die das attribut System.Security.Permissions.HostProtectionAttribute angewendet wurde. Weitere Informationen finden Sie unter Creating an Assembly and CLR Integration Programming Model Restrictions.
Dies HostProtectionAttribute ist keine Sicherheitsberechtigung, da sie bestimmte Codekonstrukte, Typen oder Methoden identifiziert, die der Host möglicherweise nicht zulassen kann, um die Zuverlässigkeit zu verbessern. Die Verwendung der HostProtectionAttribute erzwingt ein Programmiermodell, das die Stabilität des Hosts schützt.
Hostschutzattribute
HPAs identifizieren Typen oder Member, die nicht zum Hostprogrammiermodell passen, und stellen die folgenden zunehmenden Zuverlässigkeitsbedrohungen dar:
Sie sind andernfalls ohne Auswirkung.
Sie können zur Destabilisierung von serververwaltetem Benutzercode führen.
Sie können zur Destabilisierung des Serverprozesses führen.
SQL Server verbietet die Verwendung eines Typs oder Elements mit einem HostProtectionAttribute, der eine System.Security.Permissions.HostProtectionResource Enumeration mit dem Wert ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, SharedState, Synchronizationoder UIangibt. Dies verhindert, dass Assemblys Member aufrufen, die die Freigabe des Zustands aktivieren, Synchronisierungen durchführen, möglicherweise ein Ressourcenleck bei Beendigung verursachen, oder Auswirkungen auf die Integrität des SQL Server-Prozesses haben.
Unzulässige Typen und Elemente
In den folgenden Themen werden Typen und Member identifiziert, deren HostProtectionResource Werte von SQL Server nicht zulässig sind.
Hinweis
Die Listen in diesen Themen wurden aus den unterstützten Assemblys generiert. Weitere Informationen finden Sie unter Unterstützte .NET Framework-Bibliotheken.
In diesem Abschnitt
Unzulässige Typen und Elemente in Microsoft.VisualBasic.dll
Listet die Typen und Elemente in Microsoft.VisualBasic.dll auf, deren Hostschutzattributwerte nicht zugelassen werden.
Unzulässige Typen und Elemente in mscorlib.dll
Listet die Typen und Elemente in mscorlib.dll auf, deren Hostschutzattributwerte nicht zugelassen werden.
Unzulässige Typen und Elemente in System.dll
Listet die Typen und Elemente in System.dll auf, deren Hostschutzattributwerte nicht zugelassen werden.
Unzulässige Typen und Elemente in System.Data.dll
Listet die Typen und Elemente in System.Data.dll auf, deren Hostschutzattributwerte nicht zugelassen werden.
Unzulässige Typen und Elemente in System.Core.dll
Listet die Typen und Elemente in System.Core.dll auf, deren Hostschutzattributwerte nicht zugelassen werden.
Siehe auch
CLR-Integrationscodezugriffssicherheit
Einschränkungen des CLR-Integrationsprogrammierungsmodells
Erstellen einer Assembly