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.
Applies to:SQL Server
Beheerde code wordt gecompileerd en vervolgens geïmplementeerd in eenheden die een CLR-assembly (Common Language Runtime) worden genoemd. Een assembly is verpakt als een DLL- of uitvoerbaar bestand (.exe). Hoewel een uitvoerbaar bestand zelfstandig kan worden uitgevoerd, moet een DLL worden gehost in een bestaande toepassing. Beheerde DLL-assembly's kunnen worden geladen in en gehost door SQL Server. SQL Server vereist dat u de assembly in een database registreert met behulp van de CREATE ASSEMBLY-instructie, voordat deze in het proces kan worden geladen en gebruikt. Assembly's kunnen ook worden bijgewerkt vanuit een recentere versie met behulp van de ALTER ASSEMBLY-instructie of verwijderd uit SQL Server met behulp van de DROP ASSEMBLY-instructie.
Assembly-informatie wordt opgeslagen in de sys.assembly_files tabel in de database waarop de assembly is geïnstalleerd. De tabel sys.assembly_files bevat de volgende kolommen.
| Column | Description |
|---|---|
assembly_id |
De id die is gedefinieerd voor de assembly. Dit nummer wordt toegewezen aan alle objecten die betrekking hebben op dezelfde assembly. |
name |
De naam van het object. |
file_id |
Een getal waarmee elk object wordt geïdentificeerd, waarbij het eerste object dat is gekoppeld aan een gegeven assembly_id de waarde 1 krijgt. Als meerdere objecten aan dezelfde assembly_idzijn gekoppeld, wordt elke volgende file_id waarde met 1 verhoogd. |
content |
De hexadecimale weergave van de assembly of het bestand. |
In deze sectie
| Article | Description |
|---|---|
| Een assembly maken | Het maken van SAFE, EXTERNAL_ACCESSen UNSAFE CLR-assembly's in SQL Server |
| een assembly- wijzigen | Beschrijft het bijwerken van CLR-assembly's in SQL Server |
| een assembly verwijderen | Behandelt het verwijderen van CLR-assembly's van SQL Server |
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 verbetert de sp_configure optie, strikte beveiliging, de beveiliging van CLR-assembly's.
clr strict security is standaard ingeschakeld en behandelt SAFE en EXTERNAL_ACCESS assembly's alsof ze zijn gemarkeerd als UNSAFE. De optie clr strict security kan worden uitgeschakeld voor achterwaartse compatibiliteit, maar wordt niet aanbevolen.
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. For more information, see sys.sp_add_trusted_assembly.