Рейтинг:0

Как запустить службу без смены пароля

флаг ng

Мы разработали программное обеспечение для резервного копирования для SQL Server (2019), которое работает на Windows Server 2019, для клиента.
Приложение (.net Windows Forms) имеет интерфейс для настройки резервного копирования (например, выбор дня для резервного копирования, ежедневное время резервного копирования и т. д.) и дальнейшей настройки (данные на SMTP-сервер, список рассылки почты и т. д.). Далее клиент содержит функции для восстановления базы данных. Резервное копирование запускается по таймеру.
Приложение работает нормально, но должно работать 24/7/365.
Описание проблемы:
Приложение запускается на клиентском сервере, и клиент не разрешает учетные записи, срок действия пароля которых не истекает.
Далее сервер (как минимум) автоматически перезагружается каждые две недели. Итак... мы должны получить доступ к серверу и запускать наш клиент заново, по крайней мере, каждые две недели, что нехорошо.
Поэтому мы думаем о том, чтобы «разделить» приложение резервного копирования на две части:

  • Клиент Windows (с деактивированными функциями резервного копирования и электронной почты)
  • Служба Windows (чтение файлов конфигурации при запуске, создание резервных копий, отправка электронных писем)

=> Цель: Служба резервного копирования запускается автоматически после перезагрузки сервера (нет необходимости запускать вручную).
Потребности:
Сервис должен иметь доступ к локальному диску (чтение (.ini) файла конфигурации, хранение резервных копий), к SQL-серверу (установленному на том же сервере) и к SMTP-серверу (расположенному на другом клиентском сервере) для иметь возможность отправлять электронные письма.
Как упоминалось выше, целью является использование «системной учетной записи». без пароль (который необходимо периодически менять).
Мы разработчики, а не системщики... поэтому "начальные вопросы":
Насколько нам известно, существуют системные учетные записи для «Локальная система», «Локальная служба» и «Сетевая служба» (может быть, есть еще...).
Вопрос:
Имеет ли одна из вышеупомянутых учетных записей все необходимые права (или есть другая)?

Спасибо!

Рейтинг:1
флаг cn

Да, вам абсолютно необходимо разделить интерактивную "конфигурацию" и "сервисную" часть. Сервисная часть должна работать постоянно, а конфигурационная часть — только по мере необходимости.

Идея иметь приложение, работающее «на консоли» Windows Server в наши дни, в лучшем случае проблематична, и становится все труднее с каждой версией Windows. Создав службы Windows, которые все еще находятся в производстве 20 лет спустя, я немного удивлен, что вы не столкнулись с этой «проблемой» во время разработки и тестирования.

Но в любом случае ...

Приложение запускается на клиентском сервере, и клиент не разрешает учетные записи, срок действия пароля которых не истекает.

Учитывая, что Windows поддерживает множество «системных» учетных записей, срок действия пароля которых никогда не истекает, это странное «требование» к вашему приложению.

Вопрос: Это «Требование» на самом деле? Соответствующий?
Чтобы использовать приложение «конфигурация», вам нужно будет войти в систему, поэтому вы будете использовать любые учетные данные, которые вам были предоставлены для этой цели — эти, интерактивные, пользовательские, учетные данные. должен периодически истекают.

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

Службе необходимо иметь доступ к локальному диску (чтение (.ini) файла конфигурации, сохранение резервных копий)...

Да, конечно.
Любой из «Сервисных» аккаунтов должен иметь этот уровень доступа.

... и на SMTP-сервер ... для отправки электронной почты.

Доступ ко всему «вне коробки» требует Сетевой учетная запись.
Сетевая служба, вероятно, ваш лучший выбор.

... на SQL-сервер (установлен на том же сервере) ...

Опасность, Уилл Робинсон!
Вы серьезно говорите, что ваша "резервная" утилита берет и хранение Резервные копии SQL Server на та же машина как сам экземпляр SQL Server?

Это подрывает все ваше решение.

Если вы потеряли машину, на которой работал SQL Server, вы также потеряли резервные копии вашей базы данных, а также, поскольку Только Причина, по которой существуют резервные копии, состоит в том, чтобы гарантировать, что вы сможете вернуть базу данных независимо от того, какие происходит ужасно, ужасно неправильно, тогда ваше «резервное решение» полностью скомпрометировано.
Ты абсолютно должен получить резервные копии с этого сервера и на другую машину, далеко из баз данных, которые они защищают.

FredyWenger avatar
флаг ng
Спасибо за ответ. Итак.. Я думаю, мне следует пойти с сетевой службой. По поводу резервных копий на той же машине: Вы в принципе правы, но сервер - это ВИРТУАЛЬНЫЙ сервер, резервное копирование которого выполняется каждый час с ИТ заказчика. Итак... у нас уже был бы бэкап (всего сервера), но ИТ заказчика обязательно заранее хотел логического бэкапа. Так что резервное копирование резервных копий гарантировано.
Phill  W. avatar
флаг cn
База данных != Файл. Резервная копия сервера действительна только на момент времени, когда она была сделана. Резервные копии SQL Server обеспечивают /намного более высокую/ степень детализации восстановления. И только потому, что что-то является гостевой ВМ, НЕ защищает ее от того, что *Контроллер ВМ* однажды решит случайным образом "нацарапать" все свои диски - те же самые диски, которые содержат образы дисков работающих гостевых машин ВМ, полностью уничтожая их в процессе! Был там. Видел это. Не красиво. Я бы предположил, что ваша стратегия восстановления нуждается в небольшой «тонкой настройке».
FredyWenger avatar
флаг ng
Теперь я успешно разработал службу Windows и запустил ее в сетевой службе. Все работает, но мне пришлось дать сетевому сервису дополнительно некоторые права в файловой системе. Я принял ваш ответ сейчас. Еще раз спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.