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 Ontwerpassemblages voor nadere details 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 ASSEMBLYmachtiging 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 ASSEMBLYmachtiging op de server. Het ondertekenen van de assemblage wordt aanbevolen.De database heeft de
TRUSTWORTHYeigenschap ingesteld opON, en de database is het eigendom van een login met deUNSAFE ASSEMBLYmachtiging 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).
EXECUTE sp_configure 'clr strict security';
GO
EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO