Права на безопасность и доступ к разделу реестра
Модель безопасности Windows позволяет управлять доступом к разделам реестра. Дополнительные сведения о безопасности см. в разделе Access-Controlмодели.
Вы можете указать дескриптор безопасности для раздела реестра при вызове функции RegCreateKeyEx или RegSetKeySecurity. Если указать NULL, ключ получает дескриптор безопасности по умолчанию. Списки управления доступом в дескрипторе безопасности по умолчанию для ключа наследуются от прямого родительского ключа.
Чтобы получить дескриптор безопасности раздела реестра, вызовите RegGetKeySecurity, GetNamedSecurityInfoили функцию GetSecurityInfo.
Допустимые права доступа для разделов реестра включают delete, READ_CONTROL, WRITE_DAC и WRITE_OWNER стандартные права доступа. Разделы реестра не поддерживают право доступа к стандарту SYNCHRONIZE.
В следующей таблице перечислены определенные права доступа для объектов раздела реестра.
Ценность | Значение |
---|---|
KEY_ALL_ACCESS (0xF003F) |
Объединяет STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY и права доступа KEY_CREATE_LINK. |
KEY_CREATE_LINK (0x0020) |
Зарезервировано для использования системы. |
KEY_CREATE_SUB_KEY (0x0004) |
Требуется для создания подраздела раздела реестра. |
KEY_ENUMERATE_SUB_KEYS (0x0008) |
Требуется перечислить подразделы раздела реестра. |
KEY_EXECUTE (0x20019) |
Эквивалент KEY_READ. |
KEY_NOTIFY (0x0010) |
Требуется запросить уведомления об изменениях для раздела реестра или подразделов раздела реестра. |
KEY_QUERY_VALUE (0x0001) |
Требуется для запроса значений раздела реестра. |
KEY_READ (0x20019) |
Объединяет значения STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS и KEY_NOTIFY. |
KEY_SET_VALUE (0x0002) |
Требуется для создания, удаления или задания значения реестра. |
KEY_WOW64_32KEY (0x0200) |
Указывает, что приложение на 64-разрядной платформе Windows должно работать в 32-разрядном представлении реестра. Этот флаг игнорируется 32-разрядной версией Windows. Дополнительные сведения см. в разделе доступ к альтернативному представлению реестра. Этот флаг необходимо объединить с помощью оператора OR с другими флагами в этой таблице, которые запрашивают или получают доступ к значениям реестра. Windows 2000: этот флаг не поддерживается. |
KEY_WOW64_64KEY (0x0100) |
Указывает, что приложение в 64-разрядной версии Windows должно работать в 64-разрядном представлении реестра. Этот флаг игнорируется 32-разрядной версией Windows. Дополнительные сведения см. в разделе доступ к альтернативному представлению реестра. Этот флаг необходимо объединить с помощью оператора OR с другими флагами в этой таблице, которые запрашивают или получают доступ к значениям реестра. Windows 2000: этот флаг не поддерживается. |
KEY_WRITE (0x20006) |
Объединяет STANDARD_RIGHTS_WRITE, KEY_SET_VALUE и KEY_CREATE_SUB_KEY права доступа. |
При вызове функции RegOpenKeyEx система проверяет запрошенные права доступа на дескриптор безопасности ключа. Если у пользователя нет правильного доступа к разделу реестра, операция открытия завершается ошибкой. Если администратору нужен доступ к ключу, решение должно включить права SE_TAKE_OWNERSHIP_NAME и открыть раздел реестра с WRITE_OWNER доступом. Дополнительные сведения см. в разделе Включение и отключение привилегий.
Вы можете запросить ACCESS_SYSTEM_SECURITY права доступа к разделу реестра, если вы хотите прочитать или записать список системного управления доступом ключа (SACL). Дополнительные сведения см. в Access-Control списков (ACL) и права доступа SACL.
Чтобы просмотреть текущие права доступа для ключа, включая стандартные ключи, используйте редактор реестра (Regedt32.exe). Перейдя к нужному ключу, перейдите в меню "Изменить" и выберите разрешения.