在openrowset中使用存储过程会引发login_mapping错误

时间:2018-10-08 17:59:33

标签: sql-server linked-server openrowset

因为我需要用动态数据填充视图,所以我编写了一个存储过程来收集数据并使用OPENROWSET('SQLNCLI','server = ....; trusted_connection = yes','EXEC Stored_Procedure' )作为视图定义。

据我所知,您不能在视图定义中使用变量,所以这就是我选择此路线的原因。

存储过程从链接的服务器源收集数据,并与本机SQL Server数据组合。 linked_server具有针对远程用户的适当权限设置,可以从外部SQL Server成功查询。

在本地上下文中效果很好,但是当我尝试在PostGreSQL外部表中使用视图时,出现ODBC错误。第一个错误涉及调用者的用户帐户执行存储过程的权限。之后,我被卡住了。似乎与服务器的连接具有足够的访问权限,但是执行存储过程的OPENROWSET调用没有(没有login_mapping)。

但是,如果我将OPENROWSET命令中的SQL更改为简单的select语句(从db.schema.table中选择*),则可以正常工作。

我试图将OPENROWSET中的服务器更改为本地服务器本身的数据源,让远程用户可以模拟,但也没有运气。相同的login_mapping错误。

我的猜测是,这与用户安全上下文不是OPENROWSET命令使用的上下文有关吗?

我环顾了四周,但找不到解决方案。你能帮我吗?

0 个答案:

没有答案