Attributs de protection de l'hôte et programmation de l'intégration CLR
S’applique à :SQL Server
Le Common Language Runtime (CLR) fournit un mécanisme pour annoter les interfaces de programmation d’applications managées (API) qui font partie du .NET Framework avec certains attributs susceptibles d’intéresser un hôte du CLR, comme SQL Server, à compter de SQL Server 2005 (9.x). Voici quelques exemples d'attributs de protection de l'hôte (HPA, Host Protection Attribute) :
SharedState, qui indique si l’API expose la possibilité de créer ou de gérer un état partagé (par exemple, des champs de classe statiques).
Synchronisation, qui indique si l’API expose la possibilité d’effectuer la synchronisation entre les threads.
ExternalProcessMgmt, qui indique si l’API expose un moyen de contrôler le processus hôte.
Compte tenu de ces attributs, SQL Server spécifie une liste de HPA qui ne sont pas autorisés dans l’environnement hébergé via la sécurité d’accès du code (CAS). Les exigences CAS sont spécifiées par l’un des trois jeux d’autorisations SQL Server : SAFE, EXTERNAL_ACCESS ou UNSAFE. L’un de ces trois niveaux de sécurité est spécifié lorsque l’assembly est inscrit sur le serveur, à l’aide de l’instruction CREATE ASSEMBLY . Le code exécuté dans les jeux d’autorisations SAFE ou EXTERNAL_ACCESS doit éviter certains types ou membres auxquels l’attribut System.Security.Permissions.HostProtectionAttribute est appliqué. Pour plus d’informations, consultez Création d’un assembly et restrictions de modèle de programmation d’intégration CLR.
HostProtectionAttribute n’est pas une autorisation de sécurité autant qu’un moyen d’améliorer la fiabilité, en ce sens qu’il identifie des constructions de code spécifiques, des types ou des méthodes, que l’hôte peut interdire. L’utilisation de HostProtectionAttribute applique un modèle de programmation qui permet de protéger la stabilité de l’hôte.
Attributs de protection de l'hôte
Les attributs de protection de l'hôte identifient des types ou des membres qui ne sont pas adaptés au modèle de programmation hôte et représentent les niveaux croissants suivants de menace en termes de fiabilité :
Sans gravité par ailleurs.
Susceptible de déstabiliser le code utilisateur géré par le serveur.
Susceptible de déstabiliser le processus serveur lui-même.
SQL Server interdit l’utilisation d’un type ou d’un membre doté d’un HostProtectionAttribute qui spécifie une énumération System.Security.Permissions.HostProtectionResource avec une valeur ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, SharedState, Synchronization ou UI . Cela empêche les assemblys d’appeler des membres qui activent l’état de partage, effectuent la synchronisation, peuvent entraîner une fuite de ressource à l’arrêt ou affectent l’intégrité du processus SQL Server.
Types et membres rejetés
Les rubriques suivantes identifient les types et les membres dont les valeurs HostProtectionResource sont interdites par SQL Server.
Notes
Les listes de ces rubriques ont été générées à partir des assemblys pris en charge. Pour plus d’informations, consultez Bibliothèques .NET Framework prises en charge.
Dans cette section
Types et membres interdits dans Microsoft.VisualBasic.dll
Répertorie les types et membres dans Microsoft.VisualBasic.dll dont les valeurs HPA sont rejetées.
Types et membres interdits dans mscorlib.dll
Répertorie les types et membres dans mscorlib.dll dont les valeurs HPA sont rejetées.
Types et membres non autorisés dans System.dll
Répertorie les types et membres dans System.dll dont les valeurs HPA sont rejetées.
Types et membres non autorisés dans System.Data.dll
Répertorie les types et membres dans System.Data.dll dont les valeurs HPA sont rejetées.
Types et membres interdits dans System.Core.dll
Répertorie les types et membres dans System.Core.dll dont les valeurs HPA sont rejetées.
Voir aussi
Sécurité d'accès du code de l'intégration du CLR
Restrictions du modèle de programmation de l'intégration du CLR
Création d'un assembly
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour