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

时间:2022-08-17 01:07:43

SQLServer CDC的capture的作业报错:

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

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

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

查询 sys.server_principals:

select   from   sys.server_principals

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

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

根据sid查:

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

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

sid为空

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

ALTER   AUTHORIZATION   ON   DATABASE ::Parameter  TO   sa

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

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

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

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