Dela via


Hantera CLR-integreringssammansättningar

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.