Delen via


Serverconfiguratie: strikte beveiliging clr

Van toepassing op:SQL Server

Hiermee bepaalt u de interpretatie van de SAFE, EXTERNAL_ACCESS, of UNSAFE machtiging in SQL Server. Zie Assemblages ontwerpen voor meer informatie over deze machtigingen.

Waarde Beschrijving
0 Uitgeschakeld. Voorzien voor compatibiliteit met eerdere versies. Het is niet raadzaam deze waarde in te 0 stellen.
1 Ingeschakeld. Zorgt ervoor dat de database-engine de PERMISSION_SET informatie over de assembly's negeert en deze altijd interpreteert als UNSAFE. In SQL Server 2017 (14.x) en latere versies 1 is dit de standaardwaarde.

Beveiliging van codetoegang wordt niet meer ondersteund

CLR maakt gebruik van CAS (Code Access Security) in .NET Framework, dat niet meer wordt ondersteund als een beveiligingsgrens. Een CLR-assembly die is gemaakt met PERMISSION_SET = SAFE kan mogelijk toegang krijgen tot externe systeembronnen, onbeheerde code aanroepen en sysadmin-bevoegdheden verkrijgen. In SQL Server 2017 (14.x) en latere versies worden clr strict securitySAFE en EXTERNAL_ACCESS assembly's behandeld alsof ze zijn gemarkeerd UNSAFE.

We raden aan alle assembly's te ondertekenen met een certificaat of asymmetrische sleutel, waarbij een bijbehorende login UNSAFE ASSEMBLY machtigingen heeft in de master-database. SQL Server-beheerders kunnen ook assembly's toevoegen aan een lijst met assembly's, die de Database Engine moet vertrouwen. Zie sys.sp_add_trusted_assemblyvoor meer informatie.

Opmerkingen

Wanneer deze optie is ingeschakeld, worden de PERMISSION_SET opties in de CREATE ASSEMBLY en ALTER ASSEMBLY instructies genegeerd tijdens de uitvoeringstijd, maar blijven de PERMISSION_SET opties behouden in metagegevens. Als u deze optie negeert, wordt de kans op het breken van bestaande coderegels geminimaliseerd.

CLR strict security is een advanced option.

Nadat u strikte beveiliging hebt ingeschakeld, kunnen alle assembly's die niet zijn ondertekend niet worden geladen. U moet elke assembly wijzigen of verwijderen en opnieuw maken, zodat deze is ondertekend met een certificaat of asymmetrische sleutel met een bijbehorende aanmelding met de UNSAFE ASSEMBLY machtiging op de server.

Machtigingen

Deze optie wijzigen

Hiervoor is een machtiging of lidmaatschap van de vaste serverfunctie CONTROL SERVER vereist.

Een CLR-assembly maken

De volgende machtigingen zijn vereist om een CLR-assembly te maken wanneer CLR strict security deze is ingeschakeld:

  • De gebruiker moet over de CREATE ASSEMBLY machtiging beschikken

  • Een van de volgende voorwaarden moet ook waar zijn:

    • De assembly wordt ondertekend met een certificaat of asymmetrische sleutel die een bijbehorende login heeft met de UNSAFE ASSEMBLY machtiging op de server. Het ondertekenen van de assemblage wordt aanbevolen.

    • De database heeft de TRUSTWORTHY eigenschap ingesteld op ON, en de database is het eigendom van een login met de UNSAFE ASSEMBLY machtiging op de server. Deze optie wordt niet aanbevolen.

Voorbeelden

In het volgende voorbeeld wordt eerst de huidige instelling van de clr strict security optie weergegeven en wordt vervolgens de optiewaarde 1 ingesteld op (ingeschakeld).

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