This morning I noticed my SQL Log was filling with the following message.
The activated proc '[dbo].[sp_syspolicy_events_reader]' running on queue 'msdb.dbo.syspolicy_event_queue' output the following: 'Cannot execute as the database principal because the principal "##MS_PolicyEventProcessingLogin##" does not exist, this type of principal cannot be impersonated, or you do not have permission.'
Running the following EXEC sp_change_users_login 'report' revealed that the login had in fact been orphaned.
I was able to fix it by running the following as recommended in this MSDN post.
EXEC sp_change_users_login 'Auto_Fix', '##MS_PolicyEventProcessingLogin##', NULL, 'fakepassword'
But the question remains. What in the world would have caused this principal to have been orphaned in the first place? Googling and researching reveal that others have had this problem but I have yet to find a description of cause. Nothing of note that I am aware of occured the moment the error began appearing.
msdbdatabase recently? – Thomas Stringer Jun 26 '12 at 17:00