configuration de serveur : clr strict security (sécurité clr stricte)
S’applique à : SQL Server
Contrôle l’interprétation de l’autorisation SAFE
, EXTERNAL_ACCESS
ou UNSAFE
dans SQL Server. Pour plus d’informations sur ces autorisations, consultez Conception d’assemblys.
Valeur | Description |
---|---|
0 |
Désactivé. Fourni pour la compatibilité ascendante. Définir cette valeur sur 0 n’est pas recommandé. |
1 |
Activé. Le moteur de base de données ignore les informations PERMISSION_SET sur les assemblys et les interprète toujours comme UNSAFE . Dans SQL Server 2017 (14.x) et versions ultérieures, 1 est la valeur par défaut. |
La sécurité d’accès du code n’est plus prise en charge
CLR utilise la sécurité d’accès du code (CAS) dans le .NET Framework, qui n’est plus pris en charge comme limite de sécurité. Un assembly CLR créé avec PERMISSION_SET = SAFE
pourrait être en mesure d’accéder à des ressources système externes, d’appeler du code non managé et d’acquérir des privilèges sysadmin. Dans SQL Server 2017 (14.x) et versions ultérieures, clr strict security
traite les assemblys SAFE
et EXTERNAL_ACCESS
comme s’ils sont marqués UNSAFE
.
Nous recommandons que tous les assemblys soient signés par un certificat ou une clé asymétrique avec une connexion correspondante à laquelle a été accordée l’autorisation UNSAFE ASSEMBLY
dans la base de données master
. Les administrateurs SQL Server peuvent également ajouter des assemblys à une liste d’assemblys, que le moteur de base de données doit approuver. Pour plus d’informations, consultez sys.sp_add_trusted_assembly.
Notes
Quand elle est activée, l’option PERMISSION_SET
dans les instructions CREATE ASSEMBLY
et ALTER ASSEMBLY
est ignorée au moment de l’exécution, mais les options PERMISSION_SET
sont conservées dans les métadonnées. Ignorer cette option réduit les risques de rupture des instructions de code existantes.
CLR strict security
est une advanced option
.
Une fois que vous avez activé la sécurité stricte, le chargement des assemblys non signés échoue. Vous devez modifier, ou bien supprimer et recréer, chaque assembly, de façon à ce qu’il soit signé avec un certificat ou une clé asymétrique qui a une connexion correspondante avec l’autorisation UNSAFE ASSEMBLY
sur le serveur.
Autorisations
Changer cette option
Requiert l’autorisation CONTROL SERVER
ou l’appartenance au rôle serveur fixe sysadmin (administrateur système).
Créer un assembly CLR
Les autorisations suivantes sont requises pour créer un assembly CLR quand CLR strict security
est activée :
L’utilisateur doit avoir l’autorisation
CREATE ASSEMBLY
L’une des conditions suivantes doit également être remplie :
L’assembly est signé avec un certificat ou une clé asymétrique qui a une connexion correspondante avec l’autorisation
UNSAFE ASSEMBLY
sur le serveur. Signer l’assembly est recommandé.La base de données a la propriété
TRUSTWORTHY
définie surON
, et elle est détenue par une connexion qui a l’autorisationUNSAFE ASSEMBLY
sur le serveur. Cette option n’est pas recommandée.
Exemples
L'exemple suivant affiche tout d'abord le paramètre actuel de l'option clr strict security
, puis définit la valeur de l'option sur 1
(activée).
EXEC sp_configure 'clr strict security';
GO
EXEC sp_configure 'clr strict security' , '1';
RECONFIGURE;
GO