Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Поправете „SQL Server блокира достъпа до STATEMENT „OpenRowset/OpenDatasource“ на компонент „Ad Hoc разпределени заявки“

Ако получите съобщение за грешка 15281, ниво 16 в SQL Server, има вероятност да се опитвате да изпълните ad hoc разпределена заявка, но не сте активирали ad hoc разпределени заявки.

Това може да се поправи лесно чрез активиране на ad hoc разпределени заявки.

Пример за грешката

Ето пример за код, който създава грешката.

SELECT * FROM OPENROWSET(
    'SQLNCLI', 
    'Server=Homer;Trusted_Connection=yes;', 
    'SELECT * FROM Music.dbo.vAlbums');

Резултат:

Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online.

Както се казва в съобщението за грешка, системният администратор може да активира ad hoc разпределени заявки, като използва sp_configure системна съхранена процедура.

Решение

Изпълнете следния код, за да отстраните проблема.

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

Първата част дава възможност за показване на разширени опции, което показва sp_configure Разширени опции за запаметени процедури в системата. Ако това не е активирано, ще получите друга грешка (вероятно съобщение за грешка 15123), в която се посочва, че опцията за конфигурация или не съществува, или че може да е разширена опция.

Втората част използва sp_configure за да активирате опцията за ad hoc разпределени заявки.

След като изпълните този код, трябва да можете да изпълнявате ad hoc разпределени заявки.

Скриване на разширените опции

След като активирате ad hoc разпределените заявки, вероятно трябва отново да скриете разширените опции за показване.

EXEC sp_configure 'show advanced options', 0;  
GO
RECONFIGURE;  
GO

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да архивирате или създадете нова таблица от съществуваща таблица на SQL Server в SQL Server - SQL Server / TSQL урок, част 105

  2. Таблици със списък на SQL Server:Как да покажа всички таблици

  3. Времето за изчакване на заявката при изпълнение от уеб, но супер бързо, когато се изпълнява от SSMS

  4. Цикъл на SQL Server - как да преглеждам набор от записи

  5. MVC4:UserIsInRole - Не може да се свърже с база данни на SQL Server