对于数据库中请求的用户dbo,EXECUTE AS USER失败

时间:2013-11-18 15:16:35

标签: sql-server sql-server-2008

使用sql server 2008。

首先,我不是DBA。但是当谈到sp,触发器,表,创建和规范化时,我可以绕过数据库。我是开发人员。

但是通过这项新工作,我继承了一个包含许多工作的大型数据库。

我的前任的帐户被禁用,当然一些工作开始失败。

在搜索并测试并失败之后,我现在需要发布有关此问题的一些输入。

执行存储过程时作业失败,我已经检查过了。它正在更新有问题的数据库。

首先,我更改了工作的所有者:

 EXEC MSDB.dbo.sp_update_job 
 @job_name = 'MyJob', 
 @owner_login_name = 'NT AUTHORITY\SYSTEM' 
 GO 

我尝试了sa帐户,sqlserveragent和其他人,但发生了同样的错误。我确保这些新所有者拥有该数据库的正确权限。

对于数据库MyDB中请求的用户dbo,EXECUTE AS USER失败。

即使我更改了作业所有者,用户也永远不会更改来自dbo用户的错误消息。

有没有人有任何其他我可能忽略的建议?

谢谢,

更新:

问题已解决。今天学到了新东西!

看一下这篇文章:http://blog.strictly-software.com/2009/09/database-owner-sid-recorded-in-master.html

我希望将来可以帮助别人,因为我浪费了一些时间来解决这个问题,并且需要一小段sql来修复它。似乎总是那样,不是吗?

2 个答案:

答案 0 :(得分:1)

Make the Database Trustworthy on your server

ALTER DATABASE AdventureWorks2012 SET TRUSTWORTHY ON

Make the Job's owner be the same login that owns the Database

USE AdventureWorks2012
GO
EXEC sp_changedbowner 'Nathan'
GO

答案 1 :(得分:0)

问题已经解决了。今天学到了新东西!

看一下这篇文章:http://blog.strictly-software.com/2009/09/database-owner-sid-recorded-in-master.html

我希望将来可以帮助别人,因为我浪费了一些时间来解决这个问题,并且需要一小段sql来修复它。似乎总是那样,不是吗?