sql >> Databáze >  >> RDS >> Sqlserver

Oprava „SQL Server zablokoval přístup k STATEMENT ‚OpenRowset/OpenDatasource‘ komponenty ‚Ad Hoc Distributed Queries‘

Pokud se zobrazí chybová zpráva 15281, úroveň 16 na serveru SQL Server, je pravděpodobné, že se pokoušíte spustit distribuovaný dotaz ad hoc, ale nepovolili jste distribuované dotazy ad hoc.

To lze snadno opravit povolením distribuovaných dotazů ad hoc.

Příklad chyby

Zde je příklad kódu, který způsobuje chybu.

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

Výsledek:

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.

Jak uvádí chybová zpráva, správce systému může povolit distribuované dotazy ad hoc pomocí sp_configure systémová uložená procedura.

Řešení

Problém vyřešíte spuštěním následujícího kódu.

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

První část umožňuje zobrazit pokročilé možnosti, které zobrazí sp_configure rozšířené možnosti systémové uložené procedury. Pokud toto není povoleno, zobrazí se další chyba (pravděpodobně chybová zpráva 15123), která uvádí, že možnost konfigurace buď neexistuje, nebo že se může jednat o pokročilou možnost.

Druhá část používá sp_configure povolit možnost ad hoc distribuovaných dotazů.

Jakmile tento kód spustíte, měli byste být schopni spouštět distribuované dotazy ad hoc.

Skrýt pokročilé možnosti

Jakmile povolíte distribuované dotazy ad hoc, měli byste pravděpodobně znovu skrýt zobrazení rozšířených možností.

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

  1. přístup odepřen pro načtení datového vstupního souboru v MySQL

  2. Jak přidat podmíněný jedinečný index na PostgreSQL

  3. MySQL Jako více hodnot

  4. Jak definovat trigger ON COMMIT v Oracle?