SQLServer CDC报错:无法作为数据库主体执行,因为主体 "dbo" 不存在

SQLServer CDC的capture的作业报错:

无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。 [SQLSTATE 42000] (错误 15517)

这个库本来就有CDC,然后通过备份还原到其它服务器上去了,重新开启CDC就报错了。

查询 sys.server_principals:

select   from   sys.server_principals

select name,sid from [ Parameter].sys.database_principals where name='dbo'

根据sid查:

select name,sid from sys.server_principals where sid=0x0105000000000005150000007A1A03FB0B92AEDE767AC2B5F4010000

sid为空

给数据库Parameter指定所有者:sa。

ALTER   AUTHORIZATION   ON   DATABASE ::Parameter  TO   sa

问题解决,CDC作业可以正常捕获。



请使用浏览器的分享功能分享到微信等