Часто при работе с MS SQL Server, особенно после апгрейда с редакции Express до Developer, системные администраторы сталкиваются с тем, что служба SQLSERVERAGENT не запускается или работает некорректно. Это блокирует выполнение планов обслуживания и автоматических задач. Рассмотрим по шагам, как диагностировать и решить эту проблему.
Прежде всего, необходимо заглянуть в журналы ошибок. Если при попытке запустить службу вы видите ошибку, связанную с доступом к базе данных msdb, например: Запрещено разрешение EXECUTE на объект sp_sqlagent_update_agent_xps, это означает, что учетная запись, под которой работает служба, не обладает правами администратора (sysadmin) для выполнения внутренних процедур SQL Server.
Современные версии SQL Server используют виртуальные учетные записи для служб (например, NT SERVICE\SQLSERVERAGENT). Если эта запись не настроена корректно, Агент не сможет авторизоваться в системе.
SQL Server Management Studio.Безопасность -> Имена входа.NT SERVICE\SQLSERVERAGENT нет в списке, создайте ее вручную (щелкните правой кнопкой мыши -> Создать имя входа).NT SERVICE\SQLSERVERAGENT.Роли сервера и обязательно отметьте пункт sysadmin.Службы Windows (services.msc).SQL Server Agent, откройте ее Свойства.Вход в систему выберите С учетной записью и укажите NT SERVICE\SQLSERVERAGENT. Пароль оставьте пустым.Важно, чтобы служба самого SQL Server и служба Агента были настроены согласованно. Если SQL Server работает под системной учетной записью, можно временно попробовать переключить Агента на запуск от имени Локальная система (Local System), чтобы проверить работоспособность, однако для безопасности рекомендуется использовать именно NT SERVICE\SQLSERVERAGENT.
Если вы используете специфическую учетную запись пользователя для запуска служб (например, при настройке интеграции с 1С), помните, что политики безопасности Windows часто запрещают использование учетных записей с пустыми паролями для запуска системных служб. Если служба не стартует с ошибкой доступа, проверьте:
Локального администратора на сервере?Важное примечание: Если после всех манипуляций служба все равно не стартует или возникают критические ошибки, свидетельствующие о повреждении системных таблиц при апгрейде, самым надежным способом будет полное удаление экземпляра SQL Server (с очисткой папок и реестра) и установка версии Developer Edition «с чистого листа». Это исключит влияние старых настроек, унаследованных от Express версии.
Запуск SQL Server Agent — это стандартная задача, которая требует лишь корректной настройки прав доступа внутри SQL Server. Если вы добавили необходимую учетную запись в роль sysadmin базы msdb, Агент должен заработать корректно. Помните, что планы обслуживания требуют активного Агента, поэтому внимательно следите за настройками безопасности при первоначальном развертывании сервера.