Freigeben über


Sicherheit der CLR-Integration

Das Sicherheitsmodell der .NET Framework Common Language Runtime (CLR) verwaltet und schützt den Zugriff zwischen verschiedenen Typen von CLR- und Nicht-CLR-Objekten, die in der Transact-SQL-Anweisung oder einem anderen CLR-Objekt ausgeführt werden, das auf dem Server ausgeführt wird. Die Aufrufe zwischen Objekten werden als Links bezeichnet. Die Typen von Sicherheitsüberprüfungen, die für diese Objekte ausgeführt werden, hängen von den betroffenen Linktypen ab.

Das Sicherheitsmodell der CLR Integration dient folgenden Zielen:

  • Standardmäßig wird verwalteter Benutzercode auf SQL Server ausgeführt. Die Ausführung von Vorgängen, die möglicherweise die Stabilität von SQL Server gefährden, sollte durch entsprechende allgemeine Berechtigungen geschützt werden.

  • Verwalteter Benutzercode sollte keinen unbefugten Zugriff auf Benutzerdaten oder anderen in der Datenbank enthaltenen Benutzercode erhalten. Benutzerdefinierter Code sollte in dem Sicherheitskontext der Benutzersitzung, in der er aufgerufen wurde, und mit den richtigen Berechtigungen für diesen Sicherheitskontext ausgeführt werden.

  • Der Benutzercode sollte durch geeignete Maßnahmen daran gehindert werden, auf Ressourcen außerhalb des Servers zuzugreifen, sodass er ausschließlich für den Zugriff auf lokale Daten und Berechnungen genutzt wird.

  • Benutzerdefinierter Code sollte nicht in der Lage sein, nicht autorisierten Zugriff auf Systemressourcen zu erhalten, indem er im SQL Server-Prozess ausgeführt wird.

SQL Server mit dem codezugriffsbasierten Sicherheitsmodell der CLR. Einige Vorteile dieses kombinierten Sicherheitsansatzes werden in diesem Abschnitt erläutert.

In der folgenden Tabelle sind die Themen dieses Abschnitts aufgeführt.

CLR-Integration und Codezugriffssicherheit
Erläutert das Codezugriffssicherheitsmodell für verwalteten Code.

Hostschutzattribute und Programmierung der CLR-Integration
Stellt Informationen zu den Hostschutzattributwerten bereit, die in SAFE-Assemblys und EXTERNAL_ACCESS-Assemblys nicht zulässig sind.

Links in Sicherheit der CLR-Integration
Beschreibt, wie sich Benutzercodeteile in SQL Server gegenseitig aufrufen können.

Identitätswechsel und Sicherheit der CLR-Integration
Erläutert, wie verwalteter Code mithilfe des Identitätswechsels auf externe Ressourcen zugreift.

Zulassen von teilweise vertrauenswürdigen Aufrufern
Erläutert Probleme, die auftreten, wenn eine verwaltete Methode eine Methode in einer Klasse aufruft, die in einer anderen Assembly enthalten ist.

Anwendungsdomänen und Sicherheit der CLR-Integration
Beschreibt, wie Assemblys in Anwendungsdomänen geladen werden.

Weitere Informationen

Verwalten von CLR-Integrationsassemblys