SQL Server主体“dbo”不存在,

我收到以下错误

Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. 

我读了关于ALTER AUTHORIZATION ,但是我不知道这个数据库正在发生什么。这个错误非常频繁地出现,并且每天增加大约1GB的错误日志。

我通过设置数据库所有者来解决此问题。 我的数据库在这个问题之前没有任何拥有者。

 USE [<dbname>] GO sp_changedbowner '<user>' -- you can use 'sa' as a quick fix in databases with SQL authentication 

KB913423 – 在SQL Server 2005中还原数据库之后,无法运行包含EXECUTE AS子句的语句或模块

在这里输入图像说明

做graphics。

数据库右键 – >属性 – >文件 – >select数据库所有者 – >select[sa] – 确定

当数据库是从不同的SQL服务器或实例进行恢复时,也可能发生这种情况。 在这种情况下,数据库中的安全主体“dbo”与恢复数据库的SQL服务器上的安全主体不同。 不要问我怎么知道这个…

如果上述不起作用,请尝试以下操作。 它解决了我的问题,甚至当所有者被定义为数据库。

SQL Server 2008复制失败:进程无法执行“sp_replcmds”