Ошибка MS SQL 20028: не удалось запустить агент SQL Server (Service Account)
- Служба SQL Server Agent (Агент SQL Server) не запускается и выдает ошибку
Error 20028: The SQL Server Agent service failed to start. - В журнале Windows Event Log появляется ошибка
Служба Агент SQL Server завершилась из-за внутренней ошибки. - Перестают выполняться ночные резервные копии (бэкапы) и регламентные планы обслуживания баз 1С.
- После смены пароля администратора Windows служба СУБД перестала включаться.
Что такое SQL Server Agent и почему он падает?
SQL Server Agent — это встроенный планировщик задач Microsoft SQL Server. Именно он по расписанию делает бэкапы баз 1С, переиндексацию и очистку журнала транзакций. Ошибка 20028 возникает в 99% случаев из-за того, что учетная запись, под которой работает служба (Service Account), потеряла права на вход в сам SQL-сервер (sysadmin) или права на локальный запуск в Windows.
Шаг 1. Правильная настройка учетной записи службы через Configuration Manager
- На сервере откройте меню Пуск -> найдите и запустите SQL Server Configuration Manager (ни в коем случае не меняйте учетки через обычный
services.msc!). - В левой панели кликните на SQL Server Services.
- В правой части кликните правой кнопкой мыши по службе SQL Server Agent (MSSQLSERVER) -> выберите Properties (Свойства).
- На вкладке Log On (Вход в систему) выберите тип учетной записи:
- Рекомендуемый стандарт: выберите Built-in account -> укажите Network Service (или стандартную виртуальную учетную запись
NT Service\SQLSERVERAGENT).
- Рекомендуемый стандарт: выберите Built-in account -> укажите Network Service (или стандартную виртуальную учетную запись
- Нажмите Apply (Применить) и OK. Configuration Manager автоматически назначит учетной записи все необходимые права в системе Windows.
Шаг 2. Выдача прав администратора (sysadmin) внутри SQL Server
- Запустите программу SQL Server Management Studio (SSMS) и подключитесь к серверу под учетной записью Windows-администратора или
sa. - В дереве слева раскройте папку Security (Безопасность) -> Logins (Имена входа).
- Найдите учетную запись службы (например:
NT SERVICE\SQLSERVERAGENTилиNT AUTHORITY\NETWORK SERVICE). - Кликните по ней правой кнопкой мыши -> Properties (Свойства).
- Перейдите на вкладку Server Roles (Роли сервера).
- Убедитесь, что установлена галочка напротив роли sysadmin.
- Нажмите ОК.
Шаг 3. Запуск службы и проверка
- В SSMS кликните правой кнопкой мыши по значку SQL Server Agent -> выберите Start (Запустить).
- Значок агента должен загореться зеленым цветом, а ошибка 20028 исчезнет.
Частые вопросы (FAQ)
Почему нельзя запускать SQL Server Agent под учетной записью Local System (Локальная система)?
Local System обладает неограниченными правами на всем сервере Windows. Если злоумышленник внедрит вредоносный SQL-код через 1С, он получит полный контроль над ОС. Network Service или NT Service намного безопаснее.
Нужно ли запускать Агент SQL Server, если бэкапы делаются через сторонний софт (Veeam/Киберпротект)?
Да, потому что через SQL Agent выполняются критически важные регламентные задачи оптимизации баз 1С: обновление статистик и дефрагментация индексов.
Почему при смене пароля администратора Windows перестает работать SQL Agent?
Если служба была настроена на запуск от имени администратора, после смены пароля Windows блокирует вход службы. Используйте виртуальные учетные записи NT Service, у которых нет паролей.
Как посмотреть подробный журнал ошибок самого Агента?
В SSMS раскройте узел SQL Server Agent -> Error Logs (Журналы ошибок) -> дважды кликните по журналу Current, чтобы прочитать конкретный текст системного сбоя.