Как очистить Ошибка 15404 после перезагрузки БД (помимо перезагрузки)

9

Время от времени (например, ~ месяцы) почасовое задание агента SQL Server начинает сообщать об ошибке 15404 и продолжает делать это, пока не вмешается.

[298] Ошибка SQLServer: 15404, Не удалось получить информацию о группе / пользователе Windows NT 'DOMAIN_NAME \ SomeDomainAccount', код ошибки 0x6e. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

Иногда первый сбой происходит сразу после ручного перезапуска служб SQL Server Engine и агента SQL Server. Проблема может быть устранена путем перезагрузки машины.

Владелец задания - это имя, указанное в сообщении об ошибке, и администратор SQL Server.

Учетная запись службы SQL Server Engine выглядит как служебная учетная запись (я полагаю, что это учетная запись установки по умолчанию (на один уровень лучше, чем универсальная NetworkService для предотвращения помех между экземплярами Engine / Agent):

   NT Service\MSSQL$INSTNAME

Было бы одно, если бы задание всегда терпело неудачу, но, поскольку задание успешно выполняется после перезагрузки, это заставляет меня думать, что учетная запись службы, как предполагается, должна работать, и что есть некоторая проблема синхронизации A / D или, возможно, ошибка. Когда ИТ-специалисты спрашивают о конфигурации A / D, ответом обычно является «ничего не изменилось».

  • Перезапуск службы ядра и агента может привести к сбою задания.
  • Перезагрузка машины устраняет проблему.
  • Немедленный последующий перезапуск двигателя и агента больше не приводит к сбою задания.

Ссылка: Как устранить ошибку SQL Server 8198

crokusek
источник
Обновление, это произошло еще два раза с момента публикации.
crokusek
Возможно, связано, у нас также периодически (еженедельно) не может генерировать проблемы SSPI на двух разных серверах.
crokusek
Я просто добавлю, что я случайно получил эту ошибку из сценария SQL, который работал вчера. Никаких изменений в скрипте, точно такой же машины, никаких явных ошибок в журналах Windows. Обидной строкой SQL была инструкция CREATE ASSEMBLY, AUTHORIZATION [dbo], PERMISSION_SET = EXTERNAL_ACCESS;
Redcalx
Больше информации. Перезапуск SQL Server не решил проблему, но перезагрузка компьютера сделала. Возможно, выход из системы мог бы сделать это, так как я подозреваю, что это небольшая проблема с моей учетной записью домена. Обратите внимание, что я недавно не менял свой пароль.
Redcalx

Ответы:

4

Не решение, но вы можете обойти эту проблему, сделав владельца задания учетной записью SQL.

Каждый раз, когда задание запускается, SQL Server проверяет личность владельца задания и проверяет, есть ли у него разрешение на выполнение задания. Если владельцем является учетная запись Windows, ядро ​​должно запросить Active Directory. Если по какой-либо причине произойдет сбой, задание не запустится. Это может быть связано с тем, что сервер AD занят, отключен или отключен от сети или что учетная запись службы SQL Server не имеет прав.

Поскольку он работает сразу после перезагрузки, это заставляет меня думать, что это может быть связано с кэшированными учетными данными. Windows сохранит учетные данные, которые ищет, для последующего использования. Этот кэш очищается при перезагрузке. Возможно, что-то портит кеш.

SQL Nerd
источник
Я считаю, что вы правы, это кэшированные учетные данные, перезагрузка заставляет войти в систему на активном сервере каталогов. Я получаю эту ошибку на диаграммах БД. Когда я отключаюсь от сети компании, я подключаюсь к ней, и ошибки нет. Отключи и мое разрешение потеряно. Я могу запросить, создать и т. Д. - просто не могу наметить. Ошибка 15404
StixO
0

У меня была проблема с экземпляром, перемещенным из домена A в домен B, и везде я проверял разрешения и предоставлял полный контроль везде. Изменили учетную запись службы, право собственности на работу, создали новую работу .... Ничего не работает. Обнаружено одно и то же имя пользователя службы B \ sqlservice и A \ sqlservice, существующего в качестве имени входа на SQL Server. После удаления имени входа A \ sqlservice все стало работать нормально. Это означает, что некоторые указатели окон были неправильными

Federico
источник
Чтобы уточнить, вы получили эту ошибку, и ошибка сообщила, что это B\sqlserviceбыла учетная запись, о которой он не мог получить информацию?
RDFozz