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


Kiszolgálókonfiguráció: a clr szigorú biztonsága

A következőkre vonatkozik:SQL Server

Az SQL Serverben az SAFE, EXTERNAL_ACCESSvagy UNSAFE engedély értelmezését szabályozza. Ezekről az engedélyekről további információt a Tervezési szerelvények című témakörben talál.

Érték Leírás
0 Fogyatékos. Visszamenőleges kompatibilitást biztosít. Ennek az értéknek 0-re való beállítása nem ajánlott, mivel biztonsági rést okozhat.
1 Engedélyezve. Az Adatbázismotor figyelmen kívül hagyja a PERMISSION_SET szerelvények adatait, és mindig UNSAFE-ként értelmezi őket. Az SQL Server 2017 (14.x) és újabb verzióiban 1 az alapértelmezett érték.

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 rendszer úgy kezeli a clr strict security és SAFE szerelvényeket, mintha EXTERNAL_ACCESS megjelölést kaptak volna UNSAFE-ként.

Javasoljuk, hogy az összes összetevőt egy tanúsítvánnyal vagy aszimmetrikus kulccsal írja alá, amelyhez tartozik egy megfelelő jogosultsággal rendelkező bejelentkezés, amely UNSAFE ASSEMBLY engedélyt kapott az master adatbázisban. Az SQL Server rendszergazdái könyvtárakat is hozzáadhatnak egy listához, amelyekben az adatbázismotornak meg kell bíznia. További információ: sys.sp_add_trusted_assembly.

Megjegyzések

Ha engedélyezve van, a PERMISSION_SET opció az CREATE ASSEMBLY és ALTER ASSEMBLY utasításokban futásidőben figyelmen kívül marad, de a PERMISSION_SET opciók megmaradnak a metaadatokban. Ha ezt a beállítást figyelmen kívül hagyja, azzal minimálisra csökkenti a meglévő kódkivonatok feltörését.

CLR strict security egy advanced option .

Miután engedélyezi a szigorú biztonságot, minden aláíratlan összeállítás betöltése sikertelen lesz. Módosítania vagy el kell dobnia és újra létre kell hoznia az egyes szerelvényeket, hogy egy tanúsítvánnyal vagy aszimmetrikus kulccsal legyenek aláírva, amelyhez tartozik egy megegyező bejelentkezés a kiszolgálón UNSAFE ASSEMBLY engedéllyel.

Engedélyek

A beállítás módosítása

Engedélyre vagy tagságra van szükség CONTROL SERVER a sysadmin rögzített kiszolgálói szerepkörben.

CLR-szerelvény létrehozása

Ha engedélyezve van, a következő engedélyek szükségesek a CLR-szerelvény CLR strict security létrehozásához:

  • A felhasználónak rendelkeznie kell az CREATE ASSEMBLY engedéllyel

  • Az alábbi feltételek egyikének is teljesülnie kell:

    • A szerelvény egy tanúsítvánnyal vagy aszimmetrikus kulccsal van aláírva, amelyhez tartozik egy olyan bejelentkezés, amely rendelkezik UNSAFE ASSEMBLY engedéllyel a kiszolgálón. Ajánlott aláírni a szerelvényt.

    • Az adatbázis tulajdonsága a TRUSTWORTHY értékre van beállítva, és az adatbázis tulajdonosa egy bejelentkezés, amely rendelkezik a ON engedéllyel a kiszolgálón. Ez a beállítás nem ajánlott.

Példák

Az alábbi példa először a beállítás aktuális beállítását clr strict security jeleníti meg, majd a beállítás értékét 1 (engedélyezve) állítja be.

EXECUTE sp_configure 'clr strict security';
GO

EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO