CLR Strict Security
Gilt für: SQL Server
Steuert die Interpretation der Berechtigungen SAFE
, EXTERNAL ACCESS
und UNSAFE
in SQL Server.
Wert | Beschreibung |
---|---|
0 | Deaktiviert: Wird für die Abwärtskompatibilität bereitgestellt. Der Wert Disabled wird empfohlen. |
1 | Aktiviert: Dadurch ignoriert Datenbank-Engine die PERMISSION_SET -Information auf den Assemblys und interpretiert diese immer als UNSAFE . Enabled ist der Standardwert, von SQL Server 2017 (14.x) an. |
Warnung
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. Ab SQL Server 2017 (14.x) wird eine sp_configure
-Option mit der Bezeichnung clr strict security
eingeführt, um die Sicherheit von CLR-Assemblys zu erhöhen. 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. Microsoft empfiehlt, dass alle Assemblys durch ein Zertifikat oder einen asymmetrischen Schlüssel mit einem entsprechenden Anmeldenamen signiert werden, dem UNSAFE ASSEMBLY
-Berechtigung für die Masterdatenbank gewährt 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 eine advanced option
.
Wichtig
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
So ändern Sie diese Option
Erfordert die CONTROL SERVER
-Berechtigung oder die Mitgliedschaft in der festen sysadmin
-Serverrolle.
So erstellen Sie eine CRL-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 aufON
festgelegt, und der Besitzer der Datenbank ist ein Anmeldename, der überUNSAFE ASSEMBLY
-Berechtigungen auf dem Server verfügt. Diese Option wird nicht empfohlen.
- Die Assembly ist mit einem Zertifikat oder asymmetrischen Schlüssel signiert, der über einen entsprechenden Anmeldenamen mit der
Weitere Informationen
Serverkonfigurationsoptionen (SQL Server)
sp_configure (Transact-SQL)
CLR-fähig (Serverkonfigurationsoption)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für