原文:sql server 2005 链接服务器:未将服务器 配置为用于 RPC
RPC: 远程过程调用(Remote Procedure Calls)
--LinkedServer.Rpc 属性: --获取或设置 Boolean 属性值,该值指定链接服务器是否支持远程过程调用 (RPC)。 --属性值 --类型:Boolean --一个 Boolean 值,该值指定该链接服务器是否支持 RPC。如果为 True,则可以在链接服务器上执行 RPC。 否则为 False(默认值)。 --LinkedServer.RpcOut 属性 --Boolean 属性值,该值指定链接服务器是否支持带有输出参数的远程过程调用 (RPC)。 --属性值 --类型:Boolean --一个 Boolean 值,该值指定该链接服务器是否支持带有输出参数的 RPC。如果为 True,则可以在链接服务器上执行带有输出参数的 RPC。 否则为 False(默认值)。
sql server 2005 在执行job时,由于存储过程中使用了链接服务器,报错误信息如下:
已以用户 xxx\dbservice 的身份执行。 未将服务器 'yyy' 配置为用于 RPC。 [SQLSTATE 42000] (错误 7411). 该步骤失败。
解决:
选择链接服务器yyy属性/服务器选项,在服务器选项里有一个RPC和RPC OUT,全部选择TRUE,再次调用作业成功执行之。 RPC和RPC OUT如果选择FALSE则不能远程调用该链接服务器所指向服务器上的存储过程,但可以执行相关的数据查询和插入更新删除操作,从安全性角度出发,对于不需要执行存储过称的远程调用应该关闭其RPC和RPC OUT选项。
--关于 PRC 和 PRC out 的问题,只須兩條代碼即可搞定: exec sp_serveroption @server='MYPROD' , @optname= 'rpc', @optvalue ='TRUE' exec sp_serveroption @server='MYPROD' , @optname= 'rpc out', @optvalue='TRUE'