使用 OPENROWSET、OPENQUERY 为数据访问配置 SQL Server 实例

Tim*_*Tim 1 windows-authentication sql-authentication openquery openrowset sql-server-2012

我在运行 Windows 7 x-64 的独立非联网开发 PC 上安装了 SQL Server 2012 完整版。假设 FOO 是我的 PC 的名称,而我的 SQL Server 命名实例是 FOO\SQL2012。

我正在尝试按照此处的示例进行操作,这些示例展示了如何使用存储过程作为数据源创建新的临时表。

我想执行这些查询中的任何一个,但我收到了显示的错误。

   SELECT * into #temp FROM OPENQUERY("FOO\SQL2012", 'exec MySchema.MyStoredProc')

   **ERROR: Server 'FOO\SQL2012' is not configured for DATA ACCESS.**
Run Code Online (Sandbox Code Playgroud)

或此查询:

  SELECT * INTO #temp FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2012;Trusted_Connection=yes;',
 ' EXEC MySchema.MyStoredProc')

 **ERROR: Msg 11529, Level 16, State 1, Procedure sp_describe_first_result_set, Line 1
Run Code Online (Sandbox Code Playgroud)

无法确定元数据,因为每个代码路径都会导致错误;请参阅其中一些以前的错误。**

我将如何配置 SQL Server 实例以允许当前经过身份验证的用户(无论它可能是谁)对本地实例使用 OPENROWSET、OPENQUERY?

通过 Windows 进行身份验证的用户和通过 SQL Server 进行身份验证的用户是否需要这些查询的单独版本?

Aar*_*and 5

您应该只需要为每个链接服务器执行一次此操作(我建议始终引用FOO\或始终引用(local)\...保持一致!)。

EXEC sp_serveroption 'FOO\SQL2012', 'DATA ACCESS', 'true';
Run Code Online (Sandbox Code Playgroud)