Як увімкнути поширені запити


105

Коли я запускаю запит OPENROWSETу SQL Server 2000, він працює.

Але той самий запит у SQL Server 2008 генерує таку помилку:

SQL Server заблокував доступ до STATEMENT "OpenRowset / OpenDatasource" компонента "Спеціальні розподілені запити", оскільки цей компонент вимкнено як частина конфігурації безпеки для цього сервера. Системний адміністратор може дозволити використовувати "Спеціальні розподілені запити" за допомогою sp_configure


До речі, вам було б краще прислухатися до попередження та змінити свій SQL-код, щоб використовувати пов'язані сервери замість OPENROWSET.
RBarryYoung

2
@RBarryYoung насправді це не "попередження" - це лише повідомлення, в якому сказано, що це не ввімкнено. Яка небезпека ввімкнути це?
Конрад

1
якщо зловмисний користувач зміг ввести кудись SQL, увімкнення цієї опції може дозволити їм перевірити файли даних за власним вибором. Якщо ви налаштували його як пов'язаний сервер, піддаються дії лише конкретні файли - пов'язані сервери (і у вас є інтегрована безпека SQL Server, яку ви могли б використовувати тощо).
Майк М

але мені подобається цей варіант мого внутрішнього тестування та міграції даних ... отже, шукаю, як його знову використовувати :)
Mike M

Відповіді:


217

Наступна команда може вам допомогти ..

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

14

Ви можете перевірити наступну команду

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO  --Added        
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
     'SELECT GroupName, Name, DepartmentID
      FROM AdventureWorks2012.HumanResources.Department
      ORDER BY GroupName, Name') AS a;
GO

Або це посилання на документацію


5
вам потрібно додати "GO" після 1-го "RECONFIGURE;" інакше це ідеальне рішення

1
вам не потрібно підключати сервер до вашого SELECT?
Себастьян Х.

3

Якщо спеціальні оновлення системного каталогу "не підтримуються", або якщо ви отримуєте "Msg 5808", вам знадобиться налаштувати переопрацювання таким чином:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE with override
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE with override
GO

2
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

Вам не потрібен GO після кожного рядка
Роб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.