Freigeben über


Serverkonfiguration: CLR Strict Security

Gilt für: SQL Server

Steuert die Interpretation der Berechtigungen SAFE, EXTERNAL_ACCESS oder UNSAFE in SQL Server. Weitere Informationen zu Berechtigungen finden Sie unter Entwerfen von Assemblys.

Wert Beschreibung
0 Deaktiviert. Dieser Parameter wird aus Gründen der Abwärtskompatibilität bereitgestellt. Diesen Wert auf 0 festzulegen, wird nicht empfohlen.
1 Aktiviert. Dadurch ignoriert Datenbank-Engine die PERMISSION_SET-Information auf den Assemblys und interpretiert diese immer als UNSAFE. In SQL Server 2017 (14.x) und höheren Versionen ist 1 der Standardwert.

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 behandelt clr strict security SAFE- und EXTERNAL_ACCESS-Assemblys so, als wären sie mit UNSAFE markiert.

Wir empfehlen, 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 erteilt wurde. SQL Server-Administratoren können auch Assemblys einer Liste von Assemblys hinzufügen, der die Datenbank-Engine vertrauen sollte. Weitere Informationen finden Sie unter sys.sp_add_trusted_assembly.

Bemerkungen

Falls die Option PERMISSION_SET aktiviert ist, wir sie in den Anweisungen CREATE ASSEMBLY und ALTER ASSEMBLY zur Laufzeit ignoriert, jedoch werden die PERMISSION_SET-Optionen in den Metadaten beibehalten. Das Ignorieren dieser Option vermindert die Trennung vorhandener Codeanweisungen.

CLR strict security ist ein advanced option.

Nachdem Sie Strict Security aktiviert haben, können Assemblys, die nicht signiert sind, nicht geladen werden. Sie müssen jede Assembly entweder bearbeiten, ablegen oder neu erstellen, damit sie mit einem Zertifikat oder asymmetrischen Schlüssel signiert ist, der über einen entsprechenden Anmeldenamen mit der UNSAFE ASSEMBLY-Berechtigung auf dem Server verfügt.

Berechtigungen

Diese Option ändern

Erfordert die CONTROL SERVER-Berechtigung oder die Mitgliedschaft in der festen SysAdmin-Serverrolle.

Erstellen einer CLR-Assembly

Die folgenden Berechtigungen werden zum Erstellen einer CLR-Assembly benötigt, wenn CLR strict security aktiviert ist:

  • Der Benutzer muss über die CREATE ASSEMBLY-Berechtigung verfügen.

  • Eine der folgenden Bedingungen muss ebenfalls erfüllt sein:

    • Die Assembly ist mit einem Zertifikat oder asymmetrischen Schlüssel signiert, der über einen entsprechenden Anmeldenamen mit der UNSAFE ASSEMBLY-Berechtigung auf dem Server verfügt. Es wird empfohlen, die Assembly zu signieren.

    • Die TRUSTWORTHY-Eigenschaft der Datenbank ist auf ON festgelegt, und der Besitzer der Datenbank ist ein Anmeldename, der über UNSAFE ASSEMBLY-Berechtigungen auf dem Server verfügt. Von der Verwendung dieser Option wird abgeraten.

Beispiele

Im folgenden Beispiel wird zunächst die aktuelle Einstellung der clr strict security Option angezeigt. Anschließend wird die Option aktiviert, indem der Optionswert auf 1 (aktiviert) festgelegt wird.

EXEC sp_configure 'clr strict security';
GO
EXEC sp_configure 'clr strict security' , '1';
RECONFIGURE;
GO