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;