Freigeben über


Sicherheit der CLR-Integration

Gilt für: SQL Server

Das Sicherheitsmodell der SQL Server-Integration mit der Common Language Runtime (CLR) von .NET Framework verwaltet und sichert den Zugriff zwischen verschiedenen Typen von CLR und nicht-CLR-Objekten, die in SQL Server ausgeführt werden. Diese Objekte können durch eine Transact-SQL-Anweisung oder durch ein anderes, auf dem Server ausgeführtes CLR-Objekt aufgerufen werden. 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 sollte das Ausführen von verwaltetem Benutzercode auf SQL Server die Integrität und Stabilität von SQL Server nicht beeinträchtigen. Das Ausführen von Vorgängen, die möglicherweise die Stabilität von SQL Server gefährden, sollte durch entsprechende Berechtigungen auf hoher Ebene 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 integriert nun das benutzerbasierte Sicherheitsmodell von SQL Server in das codezugriffsbasierte 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 der Sicherheit der CLR-Integration
Beschreibt, wie Teile von Benutzercode einander in SQL Server aufrufen können.

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

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