SQL SERVER修复孤立用户

版权归属:天凯科技
本文链接: https://blog.csdn.net/dbs_service/article/details/102675684

目前客户遇到一个这样的问题:

由于某种原因,当时把系统登录用户“##MS_PolicyEventProcessingLogin##”删除了,后在系统日志中发现大量如下提示,每5秒报一次错误。

消息:

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脚本重建##MS_PolicyEventProcessingLogin##用户,详情可见,http://www.itpub.net/thread-1737445-1-1.html

而我现在的疑问是:

目前客户数据库已用了其他简单方式建了这个##MS_PolicyEventProcessingLogin##用户,但报错依旧如上,如我按照上述方案运行此SQL脚本重建sql[2008R2SP2].sql,会对目前的数据库和集群状态有影响吗?  目前的运行环境是:SQL SERVER2012 Allways On集群,两节点。

经过进一步排查,最后解决方案:

分别进入msdb master模式,运行孤立用户修复:

EXEC sp_change_users_login 'Report'

exec sp_change_users_login 'AUTO_FIX','##MS_PolicyEventProcessingLogin##'

exec sp_change_users_login 'UPDATE_ONE','##MS_PolicyEventProcessingLogin##','##MS_PolicyEventProcessingLogin##'

天凯科技-数据库技术支持
7*24小时提供数据库运维与优化服务,十年DBA实战经验,长期服务于国内关键行业,深受好评!
服务热线/微信:13926108245
本企业定期分享DBA实战处理经验,同时分享精品视频教程,更多资源请点击访问"天凯运维资讯"获得! 

猜你喜欢

转载自blog.csdn.net/dbs_service/article/details/102675684