Настройка экземпляра SQL Server для доступа к данным с использованием OPENROWSET, OPENQUERY

У меня установлена ​​полная версия SQL Server 2012 на автономном ПК для разработки, не подключенном к сети, под управлением Windows 7 x-64. Допустим, FOO - это имя моего компьютера, а мой экземпляр SQL Server называется FOO\SQL2012.

Я пытаюсь следовать приведенным здесь примерам, которые показывают, как создать новую временную таблицу, используя хранимую процедуру в качестве источника данных.

Я хотел бы выполнить любой из этих запросов, но я получаю сообщения об ошибках.

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

   **ERROR: Server 'FOO\SQL2012' is not configured for DATA ACCESS.**

или этот запрос:

  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

Метаданные не могут быть определены, потому что каждый путь кода приводит к ошибке; см. предыдущие ошибки для некоторых из них.**

Как мне настроить экземпляр SQL Server, чтобы позволить аутентифицированному в настоящее время пользователю, кем бы он ни был, использовать OPENROWSET, OPENQUERY против локального экземпляра?

Требуются ли отдельные версии этих запросов для пользователей, прошедших проверку подлинности через Windows, и для пользователей, прошедших проверку подлинности через SQL Server?

1 ответ

Решение

Вы должны сделать это только один раз для каждого связанного сервера (и я рекомендую либо всегда ссылаться FOO\ или всегда ссылаясь (local)\... быть последовательным!).

EXEC sp_serveroption 'FOO\SQL2012', 'DATA ACCESS', 'true';
Другие вопросы по тегам