访问权限

访问权限是对对象执行特定操作的权利。 例如,FILE_READ_DATA访问权限指定从文件读取权限。

打开对象的句柄时,可以指定一组访问权限,这些权限对应于可对该对象执行的操作。 系统根据对象的安全描述符检查指定的访问权限,以查看当前用户是否允许每个操作。 (有关详细信息,请参阅 安全描述符.)

访问权限有两种类型:

特定访问权限是执行单个操作的权利。 特定访问权限取决于对象的类型。

通用访问权限是执行一组类似操作之一的权利。 一般访问权限独立于对象的类型。

标准访问权限 是应用于所有类型的对象的特定访问权限。 例如,无论类型如何,DELETE 访问权限都是删除对象的权限。 有关可用标准访问权限的详细信息,请参阅 ACCESS_MASK

对象还具有取决于对象类型的特定访问权限。 例如,FILE_READ_DATA表示读取文件的权利,而KEY_QUERY_VALUE表示读取注册表项的值条目的权利。

对象类型可以具有零个、一个或多个访问权限,这些权限对应于读取或写入对象的一般概念。 例如,除了FILE_READ_DATA,文件对象还具有FILE_READ_ATTRIBUTES访问权限,该权限表示读取文件的元数据 (,例如文件创建时间) 。 键对象具有KEY_QUERY_VALUE和KEY_ENUMERATE_SUBKEYS,表示读取键子项的权利。

为了简化指定与一般概念(如读取或写入)相对应的所有访问权限,系统提供了通用访问权限。 系统将一般访问权限映射到对象的相应特定访问权限集。

系统提供以下通用访问权限:

  • GENERIC_READ

  • GENERIC_WRITE

  • GENERIC_EXECUTE

  • GENERIC_ALL

因此,系统会将GENERIC_READ映射到一组权限,这些权限包括文件的FILE_READ_DATA和FILE_READ_ATTRIBUTES,以及KEY_QUERY_VALUE键和KEY_ENUMERATE_SUBKEYS。 有关每个泛型访问权限的详细信息,请参阅 ACCESS_MASK