Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 通过SQL作业运行时,SQL链接服务器不返回任何行_Sql Server_Stored Procedures_Permissions_Jobs - Fatal编程技术网

Sql server 通过SQL作业运行时,SQL链接服务器不返回任何行

Sql server 通过SQL作业运行时,SQL链接服务器不返回任何行,sql-server,stored-procedures,permissions,jobs,Sql Server,Stored Procedures,Permissions,Jobs,我有一个TSQL存储过程,当我通过SSMS查询窗口执行时,它运行得很好。此存储过程使用链接的服务器 但是,当我通过SQL作业运行存储过程时,无论是按需运行还是按计划运行,它都会返回0个结果(所有选择都来自链接服务器)。但是,作业确实会运行,因为SP中的第一行截断了表。当我查看工作历史时,它会说这是成功的 我猜这是一个权限问题,但我不知道该怎么办。任何帮助都将不胜感激 正如您所提到的,这听起来像是一个权限问题-您可以在SSMS中正常运行,因为您的登录名(可能)可以访问两台服务器,但默认的SQL A

我有一个TSQL存储过程,当我通过SSMS查询窗口执行时,它运行得很好。此存储过程使用链接的服务器

但是,当我通过SQL作业运行存储过程时,无论是按需运行还是按计划运行,它都会返回0个结果(所有选择都来自链接服务器)。但是,作业确实会运行,因为SP中的第一行截断了表。当我查看工作历史时,它会说这是成功的


我猜这是一个权限问题,但我不知道该怎么办。任何帮助都将不胜感激

正如您所提到的,这听起来像是一个权限问题-您可以在SSMS中正常运行,因为您的登录名(可能)可以访问两台服务器,但默认的SQL Agent Server登录名无法访问链接服务器-因此它可以运行存储过程,但无法访问链接服务器,因此不会返回任何数据

我将考虑创建一个SQL Server代理代理帐户——这允许您使用一个SQL作业的登录名,该作业既有权运行存储过程,也有权访问链接服务器。只要确保您使用的任何登录在两台服务器上都具有正确的访问权限

以下是有关如何创建代理帐户的MS TechNet链接:


问题是由于SQL代理没有权限访问Dynamics CRM 2011筛选视图。我们将绕过筛选的视图并点击直接表,将链接的服务器属性更改为具有权限的CRM用户,或者为SQL代理用户创建CRM用户

没有比“它有时工作,而不是其他”更多的细节,我们也不能做任何帮助。当我通过SSMS查询运行存储过程时,它工作,但当我通过SQL作业运行它时,它不工作。根据作业历史记录,它在技术上是“成功的”,但它无法从链接服务器获取数据。我不知道你还需要什么信息。请告诉我您丢失了哪些信息。您是否作为作业的用户在SSMS中运行了这些信息?这将是调试此程序的第一步。也许参数不同?谁知道呢?我看不到你的屏幕,所以我甚至不知道如何在这里引导你。如果是权限问题,您应该会收到一条错误消息。或者您的sql作业是否具有防止任何错误日志记录的错误处理程序?这可能有很多东西。嗨,杰里科,谢谢你的回复。我忘了提到,链接服务器实际上只是同一SQL server上的另一个实例。我们在默认实例上有CRM数据,作业和存储过程在\BI实例上。这两种情况都有影响SQLadmin@mydomain.local设置为SQL Server代理的“登录身份”。