RTh*_*mas 9 sql-server-2008 sql-server logins
今天早上我注意到我的 SQL 日志充满了以下消息:
在队列 'msdb.dbo.syspolicy_event_queue' 上运行的激活过程 '[dbo].[sp_syspolicy_events_reader]' 输出以下内容:
'无法作为数据库主体执行,因为主体“##MS_PolicyEventProcessingLogin##”不存在,这种类型的主体不能被冒充,或者您没有权限。
运行以下EXEC sp_change_users_login 'report'显示登录实际上已被孤立。
我能够按照此 MSDN 帖子中的建议运行以下命令来修复它。
EXEC sp_change_users_login
'Auto_Fix', '##MS_PolicyEventProcessingLogin##',
NULL, 'fakepassword'
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在:究竟是什么原因导致这位校长成为孤儿?谷歌搜索和研究表明其他人也有这个问题,但我还没有找到原因的描述。在错误开始出现的那一刻,我没有注意到任何值得注意的事情。
去年夏天,我们将整个服务器迁移到 SAN 存储模型,在迁移期间我们恢复了所有内容(包括 msdb),但那是几个月前的事情。只是最近的事情才使症状明显,因为它没有出现在几周前的日志中。
典型原因:有人删除登录名(认为他们正在清理错误的登录名)或恢复系统数据库之一。
不过事后很难猜测这是什么。在用户数据库中,您可以通过事务日志对其进行逆向工程,但您无法对主数据库进行日志备份,所以您运气不好。
| 归档时间: |
|
| 查看次数: |
9794 次 |
| 最近记录: |