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. |
Související obsah
- průvodce instalací rozhraní .NET Framework
- Výkon architektury integrace CLR