Wenn Sie die Fehlermeldung 15281, Ebene 16 in SQL Server erhalten, versuchen Sie möglicherweise, eine verteilte Ad-hoc-Abfrage auszuführen, aber Sie haben verteilte Ad-hoc-Abfragen nicht aktiviert.
Dies kann leicht behoben werden, indem verteilte Ad-hoc-Abfragen aktiviert werden.
Beispiel für den Fehler
Hier ist ein Codebeispiel, das den Fehler erzeugt.
SELECT * FROM OPENROWSET(
'SQLNCLI',
'Server=Homer;Trusted_Connection=yes;',
'SELECT * FROM Music.dbo.vAlbums');
Ergebnis:
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.
Wie die Fehlermeldung besagt, kann ein Systemadministrator verteilte Ad-hoc-Abfragen aktivieren, indem er sp_configure
verwendet gespeicherte Systemprozedur.
Lösung
Führen Sie den folgenden Code aus, um das Problem zu beheben.
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO
Der erste Teil aktiviert die erweiterten Optionen anzeigen, die sp_configure
anzeigen erweiterte Optionen für gespeicherte Systemprozeduren. Wenn dies nicht aktiviert ist, erhalten Sie einen weiteren Fehler (wahrscheinlich Fehlernachricht 15123), der besagt, dass die Konfigurationsoption entweder nicht vorhanden ist oder dass es sich möglicherweise um eine erweiterte Option handelt.
Der zweite Teil verwendet sp_configure
, um die Option für verteilte Ad-hoc-Abfragen zu aktivieren.
Nachdem Sie diesen Code ausgeführt haben, sollten Sie in der Lage sein, verteilte Ad-hoc-Abfragen auszuführen.
Erweiterte Optionen ausblenden
Sobald Sie verteilte Ad-hoc-Abfragen aktiviert haben, sollten Sie wahrscheinlich die erweiterten Optionen anzeigen wieder ausblenden.
EXEC sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO