Сегодня утром я заметил, что мой журнал SQL заполняется следующим сообщением:
Активированный процесс '[dbo]. [Sp_syspolicy_events_reader]', работающий в очереди 'msdb.dbo.syspolicy_event_queue', выводит следующее:
'Невозможно выполнить роль участника базы данных, поскольку принципал "## MS_PolicyEventProcessingLogin ##" не существует, этот тип Принципал не может быть выдан за другого, или у вас нет разрешения.
Запуск следующего EXEC sp_change_users_login 'report'
показал, что логин был фактически осиротевшим.
Я смог исправить это, выполнив следующее, как рекомендовано в этом сообщении MSDN .
EXEC sp_change_users_login
'Auto_Fix', '##MS_PolicyEventProcessingLogin##',
NULL, 'fakepassword'
Но остается вопрос: что в мире могло привести к тому, что этот директор был осиротевшим? Поиск в Google и исследования показывают, что у других была эта проблема, но я еще не нашел описание причины. Ничего особенного, что мне известно, не произошло в тот момент, когда появилась ошибка.
Прошлым летом мы перенесли весь сервер в модель хранилища SAN, во время этого перемещения мы восстановили все (включая msdb), но это было несколько месяцев назад. Только недавно появилось проявление симптома, так как он не появился в журнале ранее, чем пару недель назад.