Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Felü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 UNSAFE
jelö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. |