Megosztás a következőn keresztül:


Közös nyelvi futtatókörnyezet (CLR) integrációja

A következőkre vonatkozik:SQL ServerFelügyelt Azure SQL-példány

Az SQL Server és Felügyelt Azure SQL-példány lehetővé teszik a .NET-nyelvek egyes funkcióinak implementálását az SQL Server kiszolgálóoldali moduljaiként (eljárások, függvények és triggerek) használó natív közös nyelvi futtatókörnyezeti (CLR) integrációval. A CLR olyan szolgáltatásokkal látja el a felügyelt kódot, mint a nyelvek közötti integráció, a kódhozzáférés biztonsága, az objektumok élettartamának kezelése, valamint a hibakeresés és a profilkészítés támogatása.

Az SQL Server felhasználói és alkalmazásfejlesztői számára a CLR-integráció azt jelenti, hogy tárolt eljárásokat, eseményindítókat, felhasználó által definiált típusokat, felhasználó által definiált függvényeket (skaláris és táblaértékkel) és felhasználó által definiált összesítő függvényeket írhat bármely .NET-keretrendszernyelv használatával, beleértve a C# Visual Basic .NET-t is. Az SQL Server tartalmazza az előre telepített .NET-keretrendszer 4-es verzióját.

Ez a 6 perces videó bemutatja, hogyan használhatja a CLR-t a felügyelt Azure SQL-példányban:

 

A kódhozzáférés biztonsága már nem támogatott

A CLR a .NET-keretrendszerben a Code Access Securityt (CAS) használja, amely már nem támogatott biztonsági határként. Előfordulhat, hogy egy PERMISSION_SET = SAFE létrehozott CLR-szerelvény hozzáférhet külső rendszererőforrásokhoz, meghívhatja a nem felügyelt kódot, és sysadmin-jogosultságokat szerezhet be. Az SQL Server 2017 (14.x) és újabb verzióiban a sp_configure lehetőség, clr szigorú biztonsági, növeli a CLR-szerelvények biztonságát. A clr strict security alapértelmezés szerint engedélyezve van, és úgy kezeli a SAFE és EXTERNAL_ACCESS szerelvényeket, mintha UNSAFEjelölték volna őket. A clr strict security lehetőség letiltható a visszamenőleges kompatibilitás érdekében, de nem ajánlott.

Javasoljuk, hogy az összes szerelvényt egy tanúsítvánnyal vagy aszimmetrikus kulccsal írja alá egy megfelelő bejelentkezéssel, amely UNSAFE ASSEMBLY engedélyt kapott az master adatbázisban. Az SQL Server rendszergazdái szerelvényeket is hozzáadhatnak a szerelvények listájához, amelyekben az adatbázismotornak megbízhatónak kell lennie. További információ: sys.sp_add_trusted_assembly.

Mikor érdemes CLR-modulokat használni?

A CLR-integráció lehetővé teszi a .NET-keretrendszerben elérhető összetett funkciók implementálását, például a reguláris kifejezéseket, a külső erőforrások (kiszolgálók, webszolgáltatások, adatbázisok) elérésére szolgáló kódot, egyéni titkosítást stb. A kiszolgálóoldali CLR-integráció néhány előnye:

  • Jobb programozási modell. A .NET-keretrendszer nyelvei sok szempontból gazdagabbak a Transact-SQL-nél, és olyan szerkezeteket és képességeket kínálnak, amelyek korábban nem érhetők el az SQL Server fejlesztői számára. A fejlesztők használhatják a .NET-keretrendszer könyvtárának erejét is, amely számos olyan osztályt biztosít, amelyek segítségével gyorsan és hatékonyan megoldhatók a programozási problémák.

  • Jobb biztonság és biztonság. A felügyelt kód az adatbázismotor által üzemeltetett közös nyelvi futtatókörnyezetben fut. Az SQL Server ezzel biztonságosabb és biztonságosabb alternatívát kínál az SQL Server korábbi verzióiban elérhető kiterjesztett tárolt eljárások helyett.

  • Adattípusok és összesítő függvények definiálásának képessége. A felhasználó által definiált típusok és a felhasználó által definiált összesítések két új felügyelt adatbázis-objektum, amelyek kibővítik az SQL Server tárolási és lekérdezési képességeit.

  • Egyszerűsített fejlesztés szabványosított környezetben. Az adatbázis-fejlesztés integrálva van a Visual Studio .NET fejlesztői környezet jövőbeli kiadásaiba. A fejlesztők ugyanazokat az eszközöket használják adatbázis-objektumok és szkriptek fejlesztéséhez és hibakereséséhez, mint a középső szintű vagy ügyfélszintű .NET-keretrendszer összetevőinek és szolgáltatásainak írásához.

  • A teljesítmény és a méretezhetőség javításának lehetősége. A .NET-keretrendszer nyelvi fordítási és végrehajtási modelljei sok esetben jobb teljesítményt nyújtanak a Transact-SQL-en keresztül.

SQL Server Nyelvi bővítmények alternatív végrehajtási környezetet biztosítanak az adatbázismotorhoz közeli futtatókörnyezetekhez. Az SQL CLR és az SQL nyelvi bővítmények közötti különbségekről a Az SQL Server nyelvi bővítményeinek összehasonlítása az SQL CLRcímű témakörben olvashat.

Az alábbi táblázat az ebben a szakaszban található cikkeket sorolja fel.

Cikk Leírás
CLR-integráció áttekintése A CLR-integrációval létrehozható objektumok típusait ismerteti. Emellett áttekinti az adatbázis-objektumok CLR-integrációval történő létrehozásának követelményeit is.
A CLR-integráció újdonságai A jelen kiadás új funkcióit ismerteti.
CLR-integrációs architektúra – CLR által üzemeltetett környezet A CLR-integráció tervezési céljait ismerteti.
CLR-integrációs engedélyezése A CLR-integráció engedélyezésének módját ismerteti.