SQL服务器 - 作业调用程序和程序差异

时间:2012-06-13 13:31:16

标签: sql-server sql-server-2008

我正在尝试从远程服务器(调用过程UPDATE_PROC)的视图创建表,如下所示:

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

所以看起来是一样的,但事实并非如此。我做错了什么?

更新:

远程服务器是SQL Server 2005,作业在SQL Server 2008上

我以 sa 用户身份登录。程序始终有效,作业调用存储过程永远不会

Job不是以sa用户身份运行的,但我不知道应该在哪个用户和哪里定义执行作业....

1 个答案:

答案 0 :(得分:3)

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