Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 security
SAFE
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 beschikkenEen 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 opON
, en de database is het eigendom van een login met deUNSAFE 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