Configuration du serveur : clr activé

S’applique à : SQL Server

Utilisez l’option clr enabled pour spécifier si SQL Server peut exécuter des assemblys utilisateur. L'option clr enabled fournit les valeurs suivantes :

Valeur Description
0 L'exécution de l'assembly n'est pas autorisée sur SQL Server.
1 L'exécution de l'assembly est autorisée sur SQL Server.

Pour WOW64 uniquement : redémarrez les serveurs WOW64 pour appliquer ces modifications. Le redémarrage n’est pas nécessaire pour les autres types de serveurs.

Quand vous exécutez l’instruction RECONFIGURE et que la valeur d’exécution de l’option clr enabled est modifiée de 1 à 0, tous les domaines d’application contenant des assemblys utilisateur sont immédiatement déchargés.

Limites

L’exécution du Common Language Runtime (CLR) n’est pas prise en charge dans le cadre du regroupement léger

Désactivez l’une des deux options suivantes : clr enabled ou lightweight pooling. Les fonctionnalités qui reposent sur le CLR et qui ne fonctionnent pas correctement en mode fibre incluent le type de données hierarchyid, la fonction FORMAT, la réplication et la gestion basée sur des stratégies. Pour plus d’informations, consultez Option de configuration du serveur : regroupement léger.

Bien que l’option de configuration clr enabled soit activée dans Azure SQL Database, le développement de fonctions utilisateur CLR n’est pas pris en charge dans Azure SQL Database.

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, l’option sp_configure,sécurité clr stricte, améliore la sécurité des assemblys CLR. clr strict security est activée par défaut et traite les assemblys SAFE et EXTERNAL_ACCESS comme s’ils étaient marqués UNSAFE. L’option clr strict security peut être désactivée pour assurer une compatibilité descendante, mais cela n’est pas recommandé.

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.

Exemples

L'exemple suivant affiche tout d'abord le paramètre actuel de l'option clr enabled, puis active l'option en lui attribuant la valeur 1. Pour désactiver l'option, affectez-lui la valeur 0.

EXEC sp_configure 'clr enabled';
EXEC sp_configure 'clr enabled' , '1';
RECONFIGURE;