Почему не запускается Агент SQL Server и как это исправить?

Системный администратор IT и автоматизация бизнеса
← На главную

Часто при работе с MS SQL Server, особенно после апгрейда с редакции Express до Developer, системные администраторы сталкиваются с тем, что служба SQLSERVERAGENT не запускается или работает некорректно. Это блокирует выполнение планов обслуживания и автоматических задач. Рассмотрим по шагам, как диагностировать и решить эту проблему.

Диагностика источника проблемы

Прежде всего, необходимо заглянуть в журналы ошибок. Если при попытке запустить службу вы видите ошибку, связанную с доступом к базе данных msdb, например: Запрещено разрешение EXECUTE на объект sp_sqlagent_update_agent_xps, это означает, что учетная запись, под которой работает служба, не обладает правами администратора (sysadmin) для выполнения внутренних процедур SQL Server.

Метод 1: Настройка прав для виртуальной учетной записи

Современные версии SQL Server используют виртуальные учетные записи для служб (например, NT SERVICE\SQLSERVERAGENT). Если эта запись не настроена корректно, Агент не сможет авторизоваться в системе.

  1. Откройте SQL Server Management Studio.
  2. Перейдите в раздел Безопасность -> Имена входа.
  3. Если записи NT SERVICE\SQLSERVERAGENT нет в списке, создайте ее вручную (щелкните правой кнопкой мыши -> Создать имя входа).
  4. В поле имени входа введите NT SERVICE\SQLSERVERAGENT.
  5. Перейдите в раздел Роли сервера и обязательно отметьте пункт sysadmin.
  6. После создания учетной записи перейдите в Службы Windows (services.msc).
  7. Найдите службу SQL Server Agent, откройте ее Свойства.
  8. На вкладке Вход в систему выберите С учетной записью и укажите NT SERVICE\SQLSERVERAGENT. Пароль оставьте пустым.
  9. Перезапустите службу.

Метод 2: Проверка соответствия учетных записей

Важно, чтобы служба самого SQL Server и служба Агента были настроены согласованно. Если SQL Server работает под системной учетной записью, можно временно попробовать переключить Агента на запуск от имени Локальная система (Local System), чтобы проверить работоспособность, однако для безопасности рекомендуется использовать именно NT SERVICE\SQLSERVERAGENT.

Метод 3: Проблема с пустыми паролями

Если вы используете специфическую учетную запись пользователя для запуска служб (например, при настройке интеграции с 1С), помните, что политики безопасности Windows часто запрещают использование учетных записей с пустыми паролями для запуска системных служб. Если служба не стартует с ошибкой доступа, проверьте:

Важное примечание: Если после всех манипуляций служба все равно не стартует или возникают критические ошибки, свидетельствующие о повреждении системных таблиц при апгрейде, самым надежным способом будет полное удаление экземпляра SQL Server (с очисткой папок и реестра) и установка версии Developer Edition «с чистого листа». Это исключит влияние старых настроек, унаследованных от Express версии.

Заключение

Запуск SQL Server Agent — это стандартная задача, которая требует лишь корректной настройки прав доступа внутри SQL Server. Если вы добавили необходимую учетную запись в роль sysadmin базы msdb, Агент должен заработать корректно. Помните, что планы обслуживания требуют активного Агента, поэтому внимательно следите за настройками безопасности при первоначальном развертывании сервера.

← На главную