2012-06-13 42 views
0

我试图从远程服务器(调用过程UPDATE_PROC)视图中创建表,如下所示:SQL服务器 - 作业调用过程和程序的区别

SELECT * 
INTO table 
FROM [remote_server\database].DATABASE.dbo.view 

而且它完美的作品。 问题是,当我尝试创建一个新的工作,这是调用以前工作的存储过程UPDATE_PROC

exec UPDATE_PROC 

它不工作和报告:

Executed as user: NT AUTHORITY\SYSTEM. The OLE DB provider "SQLNCLI10" for linked server "remote_server\database" does not contain the table ""DATABASE"."dbo"."view"". The table either does not exist or the current user does not have permissions on that table. [SQLSTATE 42000] (Error 7314). The step failed 

所以它似乎是相同的,但事实并非如此。我做错了什么?

UPDATE:

远程服务器是SQL Server 2005中,工作是SQL Server 2008上

我记录为SA用户。程序同样可以工作,任务调用存储过程从未

工作是跑不了sa用户,但我不知道哪些用户应该在哪里被定义为执行作业属性格式....

+0

你运行第一个查询的用户是什么?看起来这个作业是以本地系统用户的身份运行的 - 我怀疑他对远程服务器有权限。 – Bridge

+0

我正在尝试sa用户。程序始终在工作,工作调用程序从不 – gaffcz

+0

是否启用了RPC? – user1166147

回答

3

它在我看来,这是一个安全问题。在其下运行作业的用户无权访问远程服务器上的表。

+0

哟,但我是一个用户和程序本身总是工作... :( – gaffcz

+0

@gaffcz当你从SSMS运行它你'是' (这是为你工作),但工作在NT AUTHORITY \ SYSTEM下运行,这是你本地的Windows用户。 –

+0

aha,你是对的...我会尝试它运行为最后, – gaffcz

相关问题