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/
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言