Teilen über


Verwalten von CLR-Integrationsassemblys

Applies to:SQL Server

Verwalteter Code wird kompiliert und dann in Einheiten bereitgestellt, die als CLR-Assembly (Common Language Runtime) bezeichnet werden. Eine Assembly wird als DLL- oder ausführbare Datei (.exe) gepackt. Während eine ausführbare Datei auch alleine ausgeführt werden kann, muss eine DLL in einer vorhandenen Anwendung gehostet werden. Verwaltete DLL-Assemblys können in SQL Server geladen und gehostet werden. SQL Server erfordert, dass Sie die Assembly in einer Datenbank mithilfe der CREATE ASSEMBLY-Anweisung registrieren, bevor sie im Prozess geladen und verwendet werden kann. Assemblys können auch mithilfe der ALTER ASSEMBLY-Anweisung aus einer neueren Version aktualisiert oder mithilfe der DROP ASSEMBLY-Anweisung aus SQL Server entfernt werden.

Assemblyinformationen werden in der sys.assembly_files Tabelle in der Datenbank gespeichert, in der die Assembly installiert ist. Die sys.assembly_files Tabelle enthält die folgenden Spalten.

Column Description
assembly_id Der für die Assembly definierte Bezeichner. Diese Nummer wird allen Objekten mit Bezug auf dieselbe Assembly zugewiesen.
name Der Name des Objekts.
file_id Eine Zahl, die jedes Objekt identifiziert, wobei das erste Objekt einem bestimmten assembly_id zugeordnet ist, der dem Wert 1 zugewiesen wird. Wenn mehrere Objekte demselben assembly_idzugeordnet sind, wird jeder nachfolgende file_id Wert um 1 erhöht.
content Die Hexadezimaldarstellung der Assembly oder Datei.

In diesem Abschnitt

Article Description
Erstellen einer Assembly- Erläutert das Erstellen von SAFE, EXTERNAL_ACCESSund UNSAFE CLR-Assemblys in SQL Server
Ändern einer Assembly- Beschreibt das Aktualisieren von CLR-Assemblys in SQL Server
Ablegen einer Assembly Erläutert das Ablegen von CLR-Assemblys aus SQL Server

Codezugriffssicherheit wird nicht mehr unterstützt

CLR verwendet die Codezugriffssicherheit (Code Access Security, CAS) im .NET Framework, die nicht länger als Sicherheitsbegrenzung unterstützt wird. Eine CLR-Assembly, die mit PERMISSION_SET = SAFE erstellt wurde, kann womöglich auf externe Systemressourcen zugreifen, nicht verwalteten Code aufrufen und sysadmin-Privilegien erwerben. In SQL Server 2017 (14.x) und höheren Versionen verbessert die sp_configure Option clr strict security die Sicherheit von CLR-Assemblys. clr strict security ist standardmäßig aktiviert und behandelt SAFE- und EXTERNAL_ACCESS-Assemblys so, als wären Sie als UNSAFE gekennzeichnet. Die Option clr strict security kann für die Abwärtskompatibilität deaktiviert werden, es wird jedoch nicht empfohlen.

Es wird empfohlen, dass Sie alle Assemblys durch ein Zertifikat oder einen asymmetrischen Schlüssel mit einem entsprechenden Anmeldenamen signieren, dem UNSAFE ASSEMBLY-Berechtigung für die master-Datenbank gewährt wurde. SQL Server-Administratoren können auch Assemblys einer Liste von Assemblys hinzufügen, der die Datenbank-Engine vertrauen sollte. For more information, see sys.sp_add_trusted_assembly.