Als u de foutmelding Msg 15281, niveau 16 in SQL Server krijgt, is de kans groot dat u een ad-hoc gedistribueerde query probeert uit te voeren, maar dat u ad-hoc gedistribueerde query's niet hebt ingeschakeld.
Dit kan eenvoudig worden opgelost door ad-hoc gedistribueerde zoekopdrachten in te schakelen.
Voorbeeld van de fout
Hier is een voorbeeld van code die de fout veroorzaakt.
SELECT * FROM OPENROWSET(
'SQLNCLI',
'Server=Homer;Trusted_Connection=yes;',
'SELECT * FROM Music.dbo.vAlbums');
Resultaat:
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.
Zoals de foutmelding aangeeft, kan een systeembeheerder ad-hoc gedistribueerde zoekopdrachten inschakelen met behulp van de sp_configure
systeem opgeslagen procedure.
Oplossing
Voer de volgende code uit om het probleem op te lossen.
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO
Het eerste deel schakelt de geavanceerde opties voor weergeven in, die de sp_configure
. tonen systeem opgeslagen procedure geavanceerde opties. Als dit niet is ingeschakeld, krijgt u nog een foutmelding (waarschijnlijk foutbericht 15123), waarin staat dat de configuratieoptie niet bestaat of dat het een geavanceerde optie is.
Het tweede deel gebruikt sp_configure
om de optie ad-hoc gedistribueerde zoekopdrachten in te schakelen.
Als je die code eenmaal hebt uitgevoerd, zou je ad-hoc gedistribueerde zoekopdrachten moeten kunnen uitvoeren.
Geavanceerde opties verbergen
Zodra u ad-hoc gedistribueerde zoekopdrachten heeft ingeschakeld, moet u waarschijnlijk de geavanceerde opties voor weergeven weer verbergen.
EXEC sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO