2020年11月12日 星期四

SQL SERVER出現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.' 錯誤

在SQL SERVER的LOG上有發現這個錯誤訊息,每5秒出現一則,原因為msdb使用還原的方式且系統架構由C變為C、D 先使用以下命令檢查,會發現master和msdb的SID不一樣 USE master SELECT * FROM sys.database_principals WHERE [name] = '##MS_PolicyEventProcessingLogin##' go USE msdb SELECT * FROM sys.database_principals WHERE [name] = '##MS_PolicyEventProcessingLogin##' go 使用以下命令來修正 use [master] go exec sp_change_users_login 'Auto_Fix', '##MS_PolicyEventProcessingLogin##'; go use [msdb] go exec sp_change_users_login 'Auto_Fix', '##MS_PolicyEventProcessingLogin##'; go 再使用以下命令來檢查是否有修正 USE master SELECT * FROM sys.database_principals WHERE [name] = '##MS_PolicyEventProcessingLogin##' go USE msdb SELECT * FROM sys.database_principals WHERE [name] = '##MS_PolicyEventProcessingLogin##' go 參考資料 https://dbamohsin.wordpress.com/2017/01/12/cannot-execute-as-the-database-principal-because-the-principal-ms_policyeventprocessinglogin/

沒有留言:

張貼留言