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


Учетные записи пользователей службы

Каждая служба выполняется в контексте безопасности учетной записи пользователя. Имя пользователя и пароль учетной записи указываются функцией CreateService во время установки службы. Имя пользователя и пароль можно изменить с помощью функции ChangeServiceConfig . Функцию QueryServiceConfig можно использовать для получения имени пользователя (но не пароля), связанного с объектом службы. Диспетчер управления службами (SCM) автоматически загружает профиль пользователя.

При запуске службы SCM входит в учетную запись, связанную со службой. Если вход выполнен успешно, система создает маркер доступа и присоединяет его к новому процессу службы. Этот маркер идентифицирует процесс службы во всех последующих взаимодействиях с защищаемыми объектами (объектами, с которыми связан дескриптор безопасности). Например, если служба пытается открыть дескриптор для канала, система сравнивает маркер доступа службы с дескриптором безопасности канала перед предоставлением доступа.

SCM не поддерживает пароли учетных записей пользователей службы. Если срок действия пароля истек, вход в систему завершается сбоем, и служба не запускается. Системный администратор, назначающий учетные записи службам, может создавать учетные записи с паролями, срок действия которых не истекает. Администратор также может управлять учетными записями с паролями, срок действия которого истекает, с помощью программы настройки службы для периодического изменения паролей.

Если служба должна распознать другую службу, прежде чем предоставлять доступ к своим сведениям, вторая служба может использовать ту же учетную запись, что и первая служба, или выполняться в учетной записи, принадлежащей псевдониму, распознаваемому первой службой. Службы, которые должны выполняться распределенно по сети, должны работать в учетных записях на уровне домена.

Вместо учетной записи пользователя для службы можно указать одну из следующих специальных учетных записей: