Поделиться через


Права доступа

Право доступа — это право на выполнение определенной операции с объектом. Например, право доступа 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.