Droits d’accès

Un droit d’accès est le droit d’effectuer une opération particulière sur l’objet. Par exemple, le droit d’accès FILE_READ_DATA spécifie le droit de lire à partir d’un fichier.

Lorsque vous ouvrez un handle sur un objet, vous spécifiez un ensemble de droits d’accès correspondant aux opérations qui peuvent être effectuées sur l’objet. Le système vérifie les droits d’accès spécifiés par rapport au descripteur de sécurité de l’objet pour voir si chaque opération est autorisée pour l’utilisateur actuel. (Pour plus d’informations, consultez Descripteurs de sécurité.)

Les droits d’accès sont de deux types :

Un droit d’accès spécifique est un droit d’effectuer une seule opération. Des droits d’accès spécifiques peuvent dépendre du type d’objet.

Un droit d’accès générique est un droit d’effectuer l’une d’un ensemble d’opérations similaires. Les droits d’accès génériques sont indépendants du type d’objet.

Les droits d’accès standard sont des droits d’accès spécifiques qui s’appliquent à tous les types d’objets. Par exemple, le droit d’accès DELETE est le droit de supprimer un objet, quel que soit son type. Pour plus d’informations sur les droits d’accès standard disponibles, consultez ACCESS_MASK.

Les objets disposent également de droits d’accès spécifiques qui dépendent du type de l’objet. Par exemple, le FILE_READ_DATA représente le droit de lire à partir d’un fichier, tandis que le KEY_QUERY_VALUE représente le droit de lire les entrées de valeur pour une clé de Registre.

Un type d’objet peut avoir zéro, un ou plusieurs droits d’accès qui correspondent à la notion générale de lecture ou d’écriture dans un objet. Par exemple, en plus de FILE_READ_DATA, les objets de fichier ont le droit d’accès FILE_READ_ATTRIBUTES, qui représente la lecture des métadonnées d’un fichier (comme l’heure de création du fichier). Les objets clés ont à la fois KEY_QUERY_VALUE et KEY_ENUMERATE_SUBKEYS, ce qui représente le droit de lire les sous-clés d’une clé.

Pour simplifier la spécification de tous les droits d’accès qui correspondent à une notion générale telle que la lecture ou l’écriture, le système fournit des droits d’accès génériques. Le système mappe un droit d’accès générique à l’ensemble approprié de droits d’accès spécifiques pour l’objet.

Le système fournit les droits d’accès génériques suivants :

  • GENERIC_READ

  • GENERIC_WRITE

  • GENERIC_EXECUTE

  • GENERIC_ALL

Ainsi, le système mappe GENERIC_READ à un ensemble de droits comprenant FILE_READ_DATA et FILE_READ_ATTRIBUTES pour un fichier, et KEY_QUERY_VALUE et KEY_ENUMERATE_SUBKEYS pour une clé. Pour plus d’informations sur chaque droit d’accès générique, consultez ACCESS_MASK.