Anmerkung
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.
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.