Sdílet prostřednictvím


Integrace modulu CLR (Common Language Runtime)

platí pro:SQL Serverazure SQL Managed Instance

SQL Server a azure SQL Managed Instance umožňují implementovat některé funkce v jazycích .NET pomocí integrace modulu CLR (Native Common Language Runtime) jako moduly na straně serveru SQL Serveru (procedury, funkce a triggery). CLR poskytuje spravovaný kód se službami, jako je integrace mezi jazyky, zabezpečení přístupu kódu, správa doby života objektů a podpora ladění a profilace.

Pro uživatele a vývojáře aplikací SQL Serveru integrace CLR znamená, že můžete psát uložené procedury, triggery, uživatelem definované typy, uživatelem definované funkce (skalární a tabulkové hodnoty) a uživatelem definované agregační funkce pomocí libovolného jazyka .NET Framework, včetně jazyka C# Visual Basic .NET. SQL Server obsahuje předinstalovaný .NET Framework verze 4.

Toto 6minutové video ukazuje, jak používat CLR ve službě Azure SQL Managed Instance:

 

Zabezpečení přístupu kódu se už nepodporuje.

CLR používá v rozhraní .NET Framework zabezpečení přístupu kódu (CAS), který se už nepodporuje jako hranice zabezpečení. Sestavení CLR vytvořené s PERMISSION_SET = SAFE může mít přístup k externím systémovým prostředkům, volání nespravovaného kódu a získání oprávnění správce systému. V SQL Serveru 2017 (14.x) a novějších verzích sp_configure možnost striktní zabezpečení, vylepšuje zabezpečení sestavení CLR. clr strict security je ve výchozím nastavení povolen a považuje SAFE a EXTERNAL_ACCESS sestavení, jako by byly označeny UNSAFE. Možnost clr strict security může být zakázaná kvůli zpětné kompatibilitě, ale nedoporučuje se.

Doporučujeme podepsat všechna sestavení certifikátem nebo asymetrickým klíčem s odpovídajícím přihlášením, které bylo uděleno UNSAFE ASSEMBLY oprávnění v databázi master. Správci SQL Serveru mohou také přidat sestavení do seznamu sestavení, kterým má databázový stroj důvěřovat. Další informace naleznete v tématu sys.sp_add_trusted_assembly.

Kdy použít moduly CLR

Integrace CLR umožňuje implementovat složité funkce, které jsou dostupné v rozhraní .NET Framework, jako jsou regulární výrazy, kód pro přístup k externím prostředkům (servery, webové služby, databáze), vlastní šifrování atd. Mezi výhody integrace CLR na straně serveru patří:

  • Lepší programovací model. Jazyky rozhraní .NET Framework jsou v mnoha ohledech bohatší než jazyk Transact-SQL a nabízejí konstrukty a možnosti, které dříve nebyly k dispozici vývojářům SQL Serveru. Vývojáři mohou také využít sílu knihovny rozhraní .NET Framework, která poskytuje rozsáhlou sadu tříd, které lze použít k rychlému a efektivnímu řešení programovacích problémů.

  • Lepší bezpečnost a zabezpečení. Spravovaný kód běží v prostředí běhu společného jazyka hostovaného databázovým strojem. SQL Server to používá k zajištění bezpečnější a bezpečnější alternativy k rozšířeným uloženým procedurm dostupným v dřívějších verzích SQL Serveru.

  • Možnost definovat datové typy a agregační funkce Uživatelem definované typy a uživatelem definované agregace jsou dva nové spravované databázové objekty, které rozšiřují možnosti úložiště a dotazování SQL Serveru.

  • Efektivnější vývoj prostřednictvím standardizovaného prostředí. Vývoj databází je integrovaný do budoucích verzí vývojového prostředí sady Visual Studio .NET. Vývojáři používají stejné nástroje pro vývoj a ladění databázových objektů a skriptů, které používají k zápisu komponent a služeb rozhraní .NET Framework střední vrstvy nebo klientské vrstvy.

  • Potenciál pro zvýšení výkonu a škálovatelnosti V mnoha situacích přináší modely kompilace a spouštění jazyka .NET Framework lepší výkon oproti jazyku Transact-SQL.

sql Server Language Extensions poskytují alternativní spouštěcí prostředí pro moduly runtime v blízkosti databázového stroje. Diskuzi o rozdílech mezi jazykovými rozšířeními SQL CLR a SQL najdete v tématu Porovnání jazykových rozšíření SQL Serveru s sql CLR.

Následující tabulka uvádí články v této části.

Článek Popis
Přehled integrace CLR Popisuje typy objektů, které je možné sestavit pomocí integrace CLR. Také zkontroluje požadavky na vytváření databázových objektů pomocí integrace CLR.
Co je nového v integraci CLR? Popisuje nové funkce v této verzi.
architektura integrace CLR – hostované prostředí CLR Popisuje cíle návrhu integrace CLR.
Povolení integrace CLR Popisuje, jak povolit integraci CLR.