链接服务器的链接服务器 OLE DB 提供程序 "SQLNCLI11"

linked server OLE DB provider "SQLNCLI11" for linked server

您好,我有 2 个不同的 SQL 服务器数据库。

它们通过链接服务器相互连接。链接服务器工作正常。

当我尝试时:

SELECT 
    * 
FROM 
    OPENQUERY
        ([192.168.1.170], 
        'SELECT MalCRM.dbo.ContractedNumber(1)')

我收到以下错误。我该如何解决?

OLE DB provider "SQLNCLI11" for linked server "192.168.1.170" returned message "Deferred prepare could not be completed.". Msg 229, Level 14, State 5, Line 1 The EXECUTE permission was denied on the object 'ContractedNumber', database 'MalCrm', schema 'dbo'.

梅尔哈巴伯罕,

我尝试了以下 sql 查询,效果非常好

SELECT * FROM OPENQUERY([myInstance], 'SELECT AdventureWorks.dbo.test(3)')

您是否检查过数据库功能的凭据是否有效? 这似乎是一个权限问题。 请检查 SQL Server linked server 安全上下文并检查它是否对数据库对象具有执行权限。 在参考教程中,在安全上下文中,您可以将源数据库用户映射到链接服务器上的其他用户。 这可能是问题所在