Attributs de protection de l’hôte et programmation d’intégration CLR
S'applique à :SQL Server
Le Common Language Runtime (CLR) fournit un mécanisme permettant d’annoter les interfaces de programmation d’applications managées (API) qui font partie du .NET Framework. Ces attributs peuvent être intéressants pour un hôte du CLR, tel que SQL Server. 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 statique).Synchronization
, 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 d’hpAs qui ne sont pas autorisés dans l’environnement hébergé par le biais de la sécurité d’accès au code (CAS). Les exigences du système d’administration centrale 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 s’exécutant 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éer un d’assembly et restrictions de modèle de programmation d’intégration CLR.
La HostProtectionAttribute
n’est pas une autorisation de sécurité autant qu’une façon d’améliorer la fiabilité, car elle identifie des constructions de code spécifiques, soit des types ou des méthodes, que l’hôte peut interdire. L’utilisation du 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 hpas identifient les types ou les membres qui ne correspondent pas au modèle de programmation hôte et représentent les niveaux croissants de menace de fiabilité suivants :
- 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 qui a un HostProtectionAttribute
qui spécifie une énumération System.Security.Permissions.HostProtectionResource
avec une valeur de 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 non autorisés
Les articles suivants identifient les types et les membres dont les valeurs HostProtectionResource
SQL Server ne sont pas autorisées.
Les listes de ces articles 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
Article | Description |
---|---|
types et membres non autorisés dans Microsoft.VisualBasic.dll | Répertorie les types et membres dans Microsoft.VisualBasic.dll dont les valeurs HPA sont rejetées. |
types et membres non autorisés 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 non autorisés dans System.Core.dll | Répertorie les types et membres dans System.Core.dll dont les valeurs HPA sont rejetées. |
Contenu connexe
- de sécurité d’accès au code d’intégration CLR
- restrictions du modèle de programmation d’intégration CLR
- Créer un d’assembly