Настройка экземпляра 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';