Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Applies to:SQL Server
Hanterad kod kompileras och distribueras sedan i enheter som kallas en CLR-sammansättning (Common Language Runtime). En sammansättning paketeras som en DLL- eller körbar (.exe) fil. En körbar fil kan köras på egen hand, men en DLL måste finnas i ett befintligt program. Hanterade DLL-sammansättningar kan läsas in i och hanteras av SQL Server. SQL Server kräver att du registrerar sammansättningen i en databas med hjälp av CREATE ASSEMBLY-instruktionen innan den kan läsas in i processen och användas. Sammansättningar kan också uppdateras från en nyare version med hjälp av ALTER ASSEMBLY-instruktionen eller tas bort från SQL Server med hjälp av DROP ASSEMBLY-instruktionen.
Sammansättningsinformation lagras i tabellen sys.assembly_files i databasen där sammansättningen är installerad. Tabellen sys.assembly_files innehåller följande kolumner.
| Column | Description |
|---|---|
assembly_id |
Identifieraren som definierats för sammansättningen. Det här numret tilldelas till alla objekt som är relaterade till samma sammansättning. |
name |
Namnet på objektet. |
file_id |
Ett tal som identifierar varje objekt, där det första objektet är associerat med en viss assembly_id ges värdet 1. Om flera objekt är associerade med samma assembly_idökas varje efterföljande file_id värde med 1. |
content |
Den hexadecimala representationen av sammansättningen eller filen. |
I det här avsnittet
| Article | Description |
|---|---|
| Skapa en sammansättning | Diskuterar hur du skapar SAFE, EXTERNAL_ACCESSoch UNSAFE CLR-sammansättningar i SQL Server |
| Ändra en sammansättning | Beskriver uppdatering av CLR-sammansättningar i SQL Server |
| Ta bort en sammansättning | Diskuterar att släppa CLR-sammansättningar från SQL Server |
Kodåtkomstsäkerhet stöds inte längre
CLR använder Code Access Security (CAS) i .NET Framework, som inte längre stöds som en säkerhetsgräns. En CLR-sammansättning som skapats med PERMISSION_SET = SAFE kan komma åt externa systemresurser, anropa ohanterad kod och hämta sysadmin-privilegier. I SQL Server 2017 (14.x) och senare versioner förbättrar alternativet sp_configure, strikt säkerhet, säkerheten för CLR-sammansättningar.
clr strict security är aktiverat som standard och behandlar SAFE och EXTERNAL_ACCESS sammansättningar som om de hade markerats UNSAFE. Alternativet clr strict security kan inaktiveras för bakåtkompatibilitet, men rekommenderas inte.
Vi rekommenderar att du signerar alla sammansättningar med ett certifikat eller en asymmetrisk nyckel, med en motsvarande inloggning som har beviljats UNSAFE ASSEMBLY behörighet i master-databasen. SQL Server-administratörer kan också lägga till sammansättningar i en lista över sammansättningar som databasmotorn bör lita på. For more information, see sys.sp_add_trusted_assembly.