Freigeben über


Einführung in die SQL Server CLR-Integration

Die Common Language Runtime (CLR) ist das Herzstück von .NET Framework und stellt die Ausführungsumgebung für alle .NET Framework-Code bereit. Code, der innerhalb der CLR ausgeführt wird, wird als verwalteter Code bezeichnet. CLR stellt verschiedene Funktionen und Dienste für die Programmausführung bereit, unter anderem Just-In-Time-Kompilierung (JIT), Speicherzuordnung und -verwaltung, Erzwingen der Typsicherheit, Ausnahmebehandlung, Threadverwaltung und Sicherheit.

Mit der in Microsoft SQL Server gehosteten CLR-Integration können Sie gespeicherte Prozeduren, Trigger, benutzerdefinierte Funktionen, benutzerdefinierte Typen und benutzerdefinierte Aggregate in verwaltetem Code erstellen. Da verwalteter Code vor der Ausführung in systemeigenem Code kompiliert wird, können Sie in einigen Szenarien erhebliche Leistungssteigerungen erzielen.

Verwalteter Code, der unter .NET Framework ausgeführt wird, verwendet Codezugriffssicherheit (Code Access Security, CAS), Codeverknüpfungen und Anwendungsdomänen, um zu verhindern, dass Assemblys bestimmte Vorgänge ausführen. SQL Server verwendet CAS, um den verwalteten Code zu sichern und eine Kompromittierung des Betriebssystems oder Datenbankservers zu verhindern.

Hinweis

Code Access Security (CAS) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

Dieser Abschnitt soll nur genügend Informationen bereitstellen, um mit der Programmierung mit der SQL Server CLR-Integration zu beginnen und nicht umfassend zu sein. Ausführlichere Informationen finden Sie unter Common Language Runtime (CLR) -Integrationsübersicht.

Aktivieren der CLR-Integration

Das Integrationsfeature für die Common Language Runtime (CLR) ist in Microsoft SQL Server standardmäßig deaktiviert und muss aktiviert sein, um Objekte zu verwenden, die mithilfe der CLR-Integration implementiert werden. Um die CLR-Integration mit Transact-SQL zu aktivieren, verwenden Sie die clr enabled Option der sp_configure gespeicherten Prozedur wie gezeigt:

sp_configure 'clr enabled', 1  
GO  
RECONFIGURE  
GO  

Sie können die CLR-Integration deaktivieren, indem Sie für die clr enabled-Option 0 festlegen. Wenn Sie die CLR-Integration deaktivieren, führt SQL Server nicht mehr alle CLR-Routinen aus und entlädt alle Anwendungsdomänen.

Ausführlichere Informationen finden Sie unter Aktivieren der CLR-Integration.

Bereitstellen einer CLR-Assembly

Sobald die CLR-Methoden auf dem Testserver getestet und überprüft wurden, können sie mithilfe eines Bereitstellungsskripts an Produktionsserver verteilt werden. Das Bereitstellungsskript kann manuell oder mithilfe von SQL Server Management Studio generiert werden. Ausführlichere Informationen finden Sie in der Version der SQL Server-Dokumentation für die Version von SQL Server, die Sie verwenden.

SQL Server-Dokumentation

  1. Bereitstellen von CLR-Datenbankobjekten

Sicherheit bei der CLR-Integration

Das Sicherheitsmodell der Microsoft SQL Server-Integration mit der Common Language Runtime (CLR) von Microsoft .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 von einer Transact-SQL-Anweisung oder einem anderen CLR-Objekt aufgerufen werden, das auf dem Server ausgeführt wird.

Ausführlichere Informationen finden Sie unter CLR Integration Security.

Debuggen einer CLR-Assembly

Microsoft SQL Server bietet Unterstützung für das Debuggen von Transact-SQL- und CLR-Objekten (Common Language Runtime) in der Datenbank. Das Debuggen funktioniert in verschiedenen Sprachen: Benutzer können nahtlos in CLR-Objekte aus Transact-SQL zugreifen und umgekehrt.

Ausführlichere Informationen finden Sie unter Debuggen von CLR-Datenbankobjekten.

Siehe auch